Re: message pick up issues from queue
Tim Anderson <[email protected]> Wed, 17 Oct 2007 17:42:07 +1000
| Newsgroups | gmane.comp.java.openjms.user |
|---|---|
| Message-ID | <[email protected]> |
See inline. Govinda Rao Deyyam wrote: > Hi Tim, > > We are getting some strange problems of not picking up the messages from queues when we call receive method. We have been using the same code and same JMS server version 0.7.5 for past 3 years and we never faced this problem. Past one month JMS is behaving weirdly. > > Issues: > 1. The messages are not getting picked up from queue. Due to this the queues are getting clogged. When we check in cocomAdmin and database there is a difference in the message count (difference is 1)...means the first message got picked up by the application but not able to process the message hence not able to pickup the next message. The message is still lying in the session. > WorkAround: we delete the first message in messages and message_hamdles table based on createTime and restarted the application then it's started processing the messages. > You mean the application is receiving a message which it fails to acknowledge before closing the session, or is rolling back? If so, then yes, you'd expect to get the same message again, but with its JMSRedelivered flag set. > 2. We are recently getting the garbage collecting message in JMS logs frequently...attached the same message below > "18:16:07.218 INFO [EventManager-Worker-3] - GC Collecting Garbage Free Heap below 20 " > We have not got this message in last 3 years. > a. Is this because of the diskspace problem? The Diskspace of the Lilnux box is reaching 100% frequently. > b. In java we can set the memory parameters while running the program like -Xms and -Xmx in order to allocate the memory for this process. > What is the default memory value on JMS server is running? > How to increase the memory value for JMS server? > How to increase the heap value from 20 to some other value? > It means that JVM free memory has fallen below 20%, so the server runs its garbage collector to dipose of expired messages and persisent messages cached in memory. See http://openjms.sourceforge.net/config/gc.html for more details. You can increase memory to the server by setting the environment variable JAVA_OPTS. This is passed to the JVM by the openjms.bat script. E.g: set JAVA_OPTS=-Xmx256m > > 3. Our application is using JMS for Topic Messages as well. Since we are not clearing the topic messages there are more then 2 lacks messages lying in JMS tables in messages and message handles. > Actually we don't need these messages and wants to delete...but that can be done. > Is there any possibility that these unwanted junk data creating the above mentioned problems? > > Is there any utility to purge these unwanted or expired messages? How to check whether the messages are expired or not? > > Can you please through some light on this? > > Many Thanks > Govinda Rao > There is currently no way to do this. You'd need to write one yourself. -Tim ------------------------------------------------------------------------- This SF.net email is sponsored by: Splunk Inc. Still grepping through log files to find problems? Stop. Now Search log events and configuration files using AJAX and a browser. Download your FREE copy of Splunk now >> http://get.splunk.com/