On 09/09/2013 02:42 PM, Zhemzhitsky Sergey wrote:
HI qpid gurus,Recently we have faced with following exception 2013-09-09 17:38:23,874 | ERROR | IoReceiver - locahost/10.20.26.150:5672 | org.apache.qpid.client.AMQConnectionDelegate_0_10 | | 217 - qpid - 0.18.0.1 | connection exception: conn:21aa419a org.apache.qpid.transport.ConnectionException: Queue test_queue: async_dequeue() failed: jexception 0x0b02 wmgr::dequeue_check() threw JERR_MAP_LOCKED: Record ID locked by a pending transaction. (drid=0xde12a) (MessageStoreImpl.cpp:1419) at org.apache.qpid.transport.Connection.closeCode(Connection.java:531)[217:qpid:0.18.0.1] at org.apache.qpid.transport.ConnectionDelegate.connectionClose(ConnectionDelegate.java:75)[217:qpid:0.18.0.1] at org.apache.qpid.transport.ConnectionDelegate.connectionClose(ConnectionDelegate.java:40)[217:qpid:0.18.0.1] at org.apache.qpid.transport.ConnectionClose.dispatch(ConnectionClose.java:91)[217:qpid:0.18.0.1] at org.apache.qpid.transport.ConnectionDelegate.control(ConnectionDelegate.java:49)[217:qpid:0.18.0.1] at org.apache.qpid.transport.ConnectionDelegate.control(ConnectionDelegate.java:40)[217:qpid:0.18.0.1] at org.apache.qpid.transport.Method.delegate(Method.java:163)[217:qpid:0.18.0.1] at org.apache.qpid.transport.Connection.received(Connection.java:376)[217:qpid:0.18.0.1]
To be honest, this sounds like it must be a bug of some kind. A message should be acquired by only one subscriber at a time and either dequeued or released by that subscriber.
It seems that there is a pending transaction here – “Record ID locked by a pending transaction. (drid=0xde12a)”. Is there any known way to abort such a transaction manually?
Are you using XA? If so the transaction manager may offer tools to list transactions. You can do it using AMQP 0-10 directly, but not through the recommended APIs. Worst case I could give you a little script.
If not using XA, the transaction would be tied to a session and ending the session without a commit would abort the transaction.
However, as I say, I fear this may be a bug of some kind and if it is in the broker, that may then mean the state is somehow inconsistent which may mean it can't be corrected.
--------------------------------------------------------------------- To unsubscribe, e-mail: [email protected] For additional commands, e-mail: [email protected]
