users@glassfish.java.net

Re: JMS BrokerException

From: Amy Kang <amy.kang_at_oracle.com>
Date: Thu, 12 Aug 2010 08:22:39 -0700

  A message sent to client can be removed by broker under conditions,
e.g. message expired, destination limit reached with REMOVE_OLDEST
behavior, remote message rerouted due to consumer closing .. When that
happens, the following JMSException simply instructs the transaction
manager to rollback the transaction, which is expected. Please check
the broker log to see any log message indicates reason for the message
removal.

The broker exception can also occur if the client side was concurrently
using a XA session. Which GlassFish version/build# are you using ?
What is the version shown at beginning of MQ broker log ? Are you using
GlassFish or MQ cluster or single instance ?

amy

On 08/10/2010 04:32 AM, saikiranp wrote:
> We have been getting JMS exceptions and we are in the process of finding the
> root cause for this issue.
>
> From the server.log, we observed that there were logs regarding the MDB
> invocation errors.
>
> [#|2010-07-23T01:54:41.731+0200|INFO|sun-glassfish-comms-server1.5|javax.enterprise.system.container.ejb.mdb|_ThreadID=385;_ThreadName
> =p: thread-pool-1; w:
> 60;backend-ear-0.0.0.1-SNAPSHOT:MessageProcessor;javax.ejb.EJBException:
> Transaction aborted; nested exception
> is: javax.transaction.RollbackException;|MDB00037:
> [backend-ear-0.0.0.1-SNAPSHOT:MessageProcessor]: Message-driven bean
> invocation ex
> ception: [javax.ejb.EJBException: Transaction aborted; nested exception is:
> javax.transaction.RollbackException]|#]
>
>
>
> We suspected that the broker was removing the messages even before the
> acknowledgement is received from the MDB due to the TTL being set for some
> types of messages. Hence, we changed the TTL value to 0. However, even after
> making the TTL to 0, we still see that the exceptions are still being thrown
>
>
>
> [#|2010-08-05T11:10:34.136+0200|WARNING|sun-glassfish-comms-server1.5|javax.jms|_ThreadID=435;_ThreadName=p:
> thread-pool-1; w:
> 109;_RequestID=c71cd362-db29-413b-bcd0-ffeb7a864865;|[I500]: Caught JVM
> Exception: com.sun.messaging.jms.JMSException: [ACKNOWLEDGE_REPLY(25)]
> [C4036]: A broker error occurred. :[409] [B1290]: Transaction
> acknowledgement could not be processed because message
> 2720528-192.168.0.4(c7:69:53:86:9e:d4)-59781-1280998929518[[consumer:2274927222597296128,
> type=NONE]:[consumer:0, type=CLIENT_ACKNOWLEDGE]]TUID=2274927222650419200
> reference is gone user=guest, broker=localhost:37676(43191)|#]
>
>
>
> [#|2010-08-05T11:10:34.136+0200|WARNING|sun-glassfish-comms-server1.5|javax.enterprise.system.stream.err|_ThreadID=435;_ThreadName=p:
> thread-pool-1; w: 109;_RequestID=c71cd362-db29-413b-bcd0-ffeb7a864865;|
>
> MQRA:OMR:run:JMSException on message acknowledgement:Rolling back if in
> txn|#]
>
>
>
> [#|2010-08-05T11:10:34.137+0200|WARNING|sun-glassfish-comms-server1.5|javax.enterprise.system.stream.err|_ThreadID=435;_ThreadName=p:
> thread-pool-1; w: 109;_RequestID=c71cd362-db29-413b-bcd0-ffeb7a864865;|
>
> com.sun.messaging.jms.JMSException: [ACKNOWLEDGE_REPLY(25)] [C4036]: A
> broker error occurred. :[409] [B1290]: Transaction acknowledgement could not
> be processed because message
> 2720528-192.168.0.4(c7:69:53:86:9e:d4)-59781-1280998929518[[consumer:2274927222597296128,
> type=NONE]:[consumer:0, type=CLIENT_ACKNOWLEDGE]]TUID=2274927222650419200
> reference is gone user=guest, broker=localhost:37676(43191)
>
> at
> com.sun.messaging.jmq.jmsclient.ProtocolHandler.throwServerErrorException(ProtocolHandler.java:4019)
>
> at
> com.sun.messaging.jmq.jmsclient.ProtocolHandler.acknowledge(ProtocolHandler.java:2607)
>
> at
> com.sun.messaging.jmq.jmsclient.SessionImpl.doAcknowledge(SessionImpl.java:1442)
>
> at
> com.sun.messaging.jmq.jmsclient.SessionImpl.acknowledgeFromRAEndpoint(SessionImpl.java:1097)
>
> at
> com.sun.messaging.jms.ra.OnMessageRunner.run(OnMessageRunner.java:267)
>
> at
> com.sun.enterprise.connectors.work.OneWork.doWork(OneWork.java:76)
>
> at
> com.sun.corba.ee.impl.orbutil.threadpool.ThreadPoolImpl$WorkerThread.run(ThreadPoolImpl.java:555)
>
> Caused by: com.sun.messaging.jms.JMSException: [ACKNOWLEDGE_REPLY(25)]
> [C4036]: A broker error occurred. :[409] [B1290]: Transaction
> acknowledgement could not be processed because message
> 2720528-192.168.0.4(c7:69:53:86:9e:d4)-59781-1280998929518[[consumer:2274927222597296128,
> type=NONE]:[consumer:0, type=CLIENT_ACKNOWLEDGE]]TUID=2274927222650419200
> reference is gone user=guest, broker=localhost:37676(43191)
>
> at
> com.sun.messaging.jmq.jmsclient.ProtocolHandler.throwServerErrorException(ProtocolHandler.java:4003)
>
> ... 6 more
>
> |#]
>
> Can anybody give me some information on the root cause of this issue?
>