It's not a secret anymore!
The moose likes EJB and other Java EE Technologies and the fly likes OutOfMemoryError client JMS Big Moose Saloon
  Search | Java FAQ | Recent Topics | Flagged Topics | Hot Topics | Zero Replies
Register / Login

Win a copy of Java Interview Guide this week in the Jobs Discussion forum!
JavaRanch » Java Forums » Java » EJB and other Java EE Technologies
Bookmark "OutOfMemoryError client JMS " Watch "OutOfMemoryError client JMS " New topic

OutOfMemoryError client JMS

Jhonnathan Emilio Cardona Saineda
Ranch Hand

Joined: Jan 24, 2012
Posts: 38

Hi everyone,
i'm working with JMS. I did a simple class than send 500.000 messages to a queue.
After sending, i close the resouces. the problem is that when it send a message, increases memory space. When this has sent 14,500 messages throws an exception:
Exception in thread "Timer-0" java.lang.OutOfMemoryError: Java heap space
at java.nio.ByteBuffer.wrap(Unknown Source)
at java.lang.StringCoding$StringDecoder.decode(Unknown Source)
at java.lang.StringCoding.decode(Unknown Source)
at java.lang.String.<init>(Unknown Source)
this is the class:

thank you very much for the help

Sorry for my English, I'll improve
Lucas Smith
Ranch Hand

Joined: Apr 20, 2009
Posts: 808


I wonder why you perform all of the initial 'stuff' (performing JNDI lookup of the connection factory, queue, etc.) in the loop. It is not opptimal.

The second case is that such memory consumption can be a natural situation. You send a big bunch of messages so your heap can grow bigger. The most important thing here is to check if after the messages consumption the memory usage will drop down. If not - we may have some memory leak.

My recipe:
- please try to enlarge heap size. Try to set -Xmx=2048m.

I agree. Here's the link:
subject: OutOfMemoryError client JMS
It's not a secret anymore!