Acknowledgement for Transaction id <x> exists in the store already

Hi,

I'm running a single imq broker (3.5 SP1) on my server and am seeing intermittent problems when my consumer tries to read messages from one of the queues:

[24/Aug/2006:07:31:56 BST] ERROR [B3062]: Acknowledgement [808836-10.220.96.24(c9:55:80:7:ac:3d)-2797-1156375575692]2224511304649162496[consumer:2224511304649162496]:0[consumer:0]for Transaction id 2224511304652031488 exists in the store already

[24/Aug/2006:07:31:56 BST] ERROR [B3100]: Unexpected Broker Internal Error : [-Internal Error: Invalid Acknowledge Packet processing [808836-10.220.96.24(c9:55:80:7:ac:3d)-2797-1156375575692:0:2224511304649118464[conuid:2224511304649118464]]

Packet: ACKNOWLEDGE(24):1956-10.220.96.24(99:2c:bf:12:43:bd)-4633-1156401116501

Magic/Version: 469754818/301Size: 128 Type: ACKNOWLEDGE(24)

Expiration: 0Timestamp: 1156401116501

Source IP: 10.220.96.24(99:2c:bf:12:43:bd) Port: 4633Sequence: 1956

Property Offset: 88Property Size: 0

Encryption: 0Priority: 5

Flags: AconsumerID: 1912

TransactionID: 2224511304652031488

MessageID: 1956-10.220.96.24(99:2c:bf:12:43:bd)-4633-1156401116501

Properties:null

Message Body: 40 bytes [2224511304649162496:808836-10.220.96.24(c9:55:80:7:ac:3d)-2797-1156375575692]

Internal Buffers (useDirect=false):

Fixed Header Buffer:java.nio.HeapByteBuffer[pos=0 lim=72 cap=72]

--] :

com.sun.messaging.jmq.jmsserver.util.BrokerException: Acknowledgement [808836-10.220.96.24(c9:55:80:7:ac:3d)-2797-1156375575692]2224511304649162496[consumer:2224511304649162496]:0[consumer:0]for Transaction id 2224511304652031488 exists in the store already

at com.sun.messaging.jmq.jmsserver.persist.file.TxnAckList.storeAck(TxnAckList.java:178)

at com.sun.messaging.jmq.jmsserver.persist.file.TidList.storeTransactionAck(TidList.java:443)

at com.sun.messaging.jmq.jmsserver.persist.file.FileStore.storeTransactionAck(FileStore.java:1141)

at com.sun.messaging.jmq.jmsserver.data.TransactionList.addAcknowledgement(TransactionList.java:239)

at com.sun.messaging.jmq.jmsserver.data.TransactionList.addAcknowledgement(TransactionList.java:224)

at com.sun.messaging.jmq.jmsserver.data.handlers.AckHandler.handle(AckHandler.java:134)

at com.sun.messaging.jmq.jmsserver.data.PacketRouter.handleMessage(PacketRouter.java:146)

at com.sun.messaging.jmq.jmsserver.service.imq.IMQConnection.readData(IMQConnection.java:1747)

at com.sun.messaging.jmq.jmsserver.service.imq.IMQConnection.process(IMQConnection.java:791)

at com.sun.messaging.jmq.jmsserver.service.imq.OperationRunnable.process(OperationRunnable.java:135)

at com.sun.messaging.jmq.jmsserver.util.pool.BasicRunnable.run(BasicRunnable.java:455)

at java.lang.Thread.run(Thread.java:534)

The two errors always come out togther..

I can find various posts about the above two error messages in isolation but none that detail the two together. Has anyone any ideas as to what could be happening here ?

Any help greatly apreciated!!!

[3228 byte] By [raggle] at [2007-11-26 9:40:42]
# 1

Hi,

Could you post the Exception stack trace on the consumer client? The exception shown on broker should have a paired client exception. A high level description about the JMS message consumer usage is always welcome and helpful to identify the root cause.

The application should call Session.rollback() to rollback a transaction when encounters Exception/Error in a transaction. Messages received and not committed will be redelivered to the message consumer.

Assume that this is a MQ product bug in 3.5sp1, it is likely that the bug is fixed in the latest release (currently MQ3.6sp3). You may verify this by downloading a latest version:

http://www.sun.com/download/products.xml?id=43387399

Thanks.

chiaming

chiamingyang at 2007-7-7 0:38:14 > top of Java-index,Application & Integration Servers,Sun Java System Message Queue...
# 2

Hi chiaming,

Thanks for your response.

Unfortunately the client side of things is locked down and I don't have access to what it is doing (no visibility of source code).

The only thing I can see from the client side logs is:

com.sun.messaging.jms.JMSException: [C4036]: A server error occurred.

..which from what I can tell is a generic error message, there's nothing else logged.

Thanks for your help!

raggle at 2007-7-7 0:38:14 > top of Java-index,Application & Integration Servers,Sun Java System Message Queue...