Win a copy of The Java Performance Companion this week in the Performance forum!
  • Post Reply
  • Bookmark Topic Watch Topic
  • New Topic

OutOfMemoryError client JMS

 
Jhonnathan Emilio Cardona Saineda
Ranch Hand
Posts: 38
Android Eclipse IDE Java
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
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:

http://pastebin.com/WZbz8VNN

thank you very much for the help
 
Lucas Smith
Ranch Hand
Posts: 808
1
Android Eclipse IDE Java
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
Howdy!

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.
 
  • Post Reply
  • Bookmark Topic Watch Topic
  • New Topic