i have developed aplication using openjms server. and
openjms is very good and easy to use.
but, i am getting one error. i explain with one example.
i have written jms client who is subscriber and
publisher and also queue sender and receiver.
let us say i have instantiated 5 clients a, b, c, d,
e.
if a publishes mesasage to others then erratically,
sometimes happens that b and c fails to receive the
message that is onmessage is not getting called (this
happens sometimes with any of the client randomly and
sometimes it behaves very properly).
the case is though b and c are failing to receive the
messages, then can send or publish the messages to
others.
i have not used durable subscribers. messages are
persistent. and subscribers are listening with message
selectors.
the exception which may be coming in the log of jms
server is ( i am just providing the info which may be
helpful in finding out the root cause of problem):
14:54:18.649 ERROR [Scheduler-Worker-8] -
java.util.ConcurrentModificationException
java.util.ConcurrentModificationException
at
java.util.TreeMap$EntryIterator.nextEntry(TreeMap.java:1022)
at
java.util.TreeMap$KeyIterator.next(TreeMap.java:1047)
at
org.exolab.jms.messagemgr.QueueDestinationCache.getMessage(Unknown
Source)
at
org.exolab.jms.messagemgr.QueueConsumerEndpoint.run(Unknown
Source)
at
org.exolab.core.threadPool.ThreadPoolWorker.runIt(ThreadPoolWorker.java:186)
at
org.exolab.core.threadPool.ThreadPoolWorker.runWork(ThreadPoolWorker.java:173)
at
org.exolab.core.threadPool.ThreadPoolWorker.access$000(ThreadPoolWorker.java:67)
at
org.exolab.core.threadPool.ThreadPoolWorker$1.run(ThreadPoolWorker.java:117)
at java.lang.Thread.run(Thread.java:536)
14:54:38.047 ERROR [Scheduler-Worker-2] -
org.exolab.jms.server.ClientDisconnectionException:
Server returned HTTP response code: 500 for URL:
http://127.0.0.1:8080/openjms/OpenJMSClient org.exolab.jms.server.ClientDisconnectionException:
Server returned HTTP response code: 500 for URL:
http://127.0.0.1:8080/openjms/OpenJMSClient at
org.exolab.jms.server.http.HttpJmsSessionSender.onMessage(Unknown
Source)
at
org.exolab.jms.server.JmsServerSession.onMessage(Unknown
Source)
at
org.exolab.jms.messagemgr.QueueConsumerEndpoint.run(Unknown
Source)
at
org.exolab.core.threadPool.ThreadPoolWorker.runIt(ThreadPoolWorker.java:186)
at
org.exolab.core.threadPool.ThreadPoolWorker.runWork(ThreadPoolWorker.java:173)
at
org.exolab.core.threadPool.ThreadPoolWorker.access$000(ThreadPoolWorker.java:67)
at
org.exolab.core.threadPool.ThreadPoolWorker$1.run(ThreadPoolWorker.java:117)
at java.lang.Thread.run(Thread.java:536)
i am confused about this. please guide me in this
regards and thanks in advance for that !!!