[
https://issues.apache.org/jira/browse/QPID-1816?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12759590#action_12759590
]
Martin Ritchie commented on QPID-1816:
--------------------------------------
This trace shows multiple acks are sent but the Java broker ignores the
duplicate.
In a real app the first ack would be for a much higher delivery tag and so
would fail.
main 2009-09-25 16:31:04,163 DEBUG [qpid.client.AMQSession.Dispatcher] Set
Dispatcher Connection Started: Currently Started
main 2009-09-25 16:32:14,501 DEBUG [apache.qpid.client.AMQSession] Sending ack
for delivery tag 1 on channel 1
main 2009-09-25 16:32:14,530 DEBUG [apache.qpid.framing.AMQDataBlockEncoder]
Encoded frame byte-buffer is '0x0100010000000d003c0050000000000000000100ce'
pool-1-thread-4 2009-09-25 16:32:14,572 DEBUG
[qpid.server.protocol.AMQProtocolSession] Frame Received: Frame channelId: 1,
bodyFrame: [BasicAckBodyImpl: deliveryTag=1, multiple=false]
pool-1-thread-4 2009-09-25 16:32:14,879 DEBUG
[qpid.server.handler.BasicAckMethodHandler] Ack(Tag:1:Mult:false) received on
channel 1
pool-1-thread-4 2009-09-25 16:32:14,881 DEBUG
[qpid.server.txn.LocalTransactionalContext] Starting transaction on message
store: org.apache.qpid.server.txn.localtransactionalcont...@159d10
main 2009-09-25 16:32:31,661 DEBUG [apache.qpid.client.AMQSession] Sending ack
for delivery tag 1 on channel 1
main 2009-09-25 16:32:31,697 DEBUG [apache.qpid.framing.AMQDataBlockEncoder]
Encoded frame byte-buffer is '0x0100010000000d003c0050000000000000000100ce'
pool-1-thread-3 2009-09-25 16:32:32,071 DEBUG
[qpid.server.protocol.AMQProtocolSession] Frame Received: Frame channelId: 1,
bodyFrame: [BasicAckBodyImpl: deliveryTag=1, multiple=false]
pool-1-thread-3 2009-09-25 16:32:32,072 DEBUG
[qpid.server.handler.BasicAckMethodHandler] Ack(Tag:1:Mult:false) received on
channel 1
main 2009-09-25 16:32:46,049 DEBUG [apache.qpid.framing.AMQDataBlockEncoder]
Encoded frame byte-buffer is '0x01000100000004005a0014ce'
pool-1-thread-2 2009-09-25 16:32:46,098 DEBUG
[qpid.server.protocol.AMQProtocolSession] Frame Received: Frame channelId: 1,
bodyFrame: [TxCommitBodyImpl: ]
pool-1-thread-2 2009-09-25 16:32:46,129 DEBUG
[qpid.server.handler.TxCommitHandler] Commit received on channel 1
pool-1-thread-2 2009-09-25 16:32:46,153 DEBUG
[qpid.server.txn.LocalTransactionalContext] Committing transactional context:
org.apache.qpid.server.txn.localtransactionalcont...@159d10
pool-1-thread-2 2009-09-25 16:32:46,194 DEBUG [qpid.server.txn.TxnBuffer]
Committing 2 ops to commit.:[org.apache.qpid.server.ack.tx...@f32dde,
org.apache.qpid.server.txn.storemessageoperat...@1487b8b]
pool-1-thread-2 2009-09-25 16:32:46,235 DEBUG
[qpid.server.store.MemoryMessageStore] Removing message with id 1
pool-1-thread-2 2009-09-25 16:32:46,262 DEBUG
[qpid.server.txn.LocalTransactionalContext] Performing post commit delivery
pool-1-thread-3 2009-09-25 16:32:46,293 DEBUG
[apache.qpid.framing.AMQDataBlockEncoder] Encoded frame byte-buffer is
'0x01000100000004005a0015ce'
pool-1-thread-3 2009-09-25 16:32:46,327 DEBUG
[qpid.server.protocol.AMQPFastProtocolHandler] Message sent: DirectBuffer[pos=0
lim=12 cap=16: 01 00 01 00 00 00 04 00 5A 00 15 CE]
pool-1-thread-3 2009-09-25 16:32:46,364 DEBUG
[qpid.server.protocol.AMQPFastProtocolHandler] Message sent: Frame channelId:
1, bodyFrame: [TxCommitOkBodyImpl: ]
pool-1-thread-4 2009-09-25 16:32:46,367 DEBUG
[qpid.client.protocol.AMQProtocolHandler] (14133705)Method frame received:
[TxCommitOkBodyImpl: ]
> Unable to acknowledge messages after failover
> ---------------------------------------------
>
> Key: QPID-1816
> URL: https://issues.apache.org/jira/browse/QPID-1816
> Project: Qpid
> Issue Type: Bug
> Components: Java Client
> Reporter: Martin Ritchie
> Assignee: Martin Ritchie
> Priority: Critical
>
> Summary:
> If messages have been consumed during a session but not acknowledged and
> failover occurs it is not possible to acknowledge subsequent messages.
> In the transacted case calling rollback after failover clears the 'dirty'
> state of the connection.
> However calling recover does not do the same work so the dirty session
> remains and users are unable to acknowledge messages.
> This occurred on a CLIENT_ACK session but I have not yet investigated the
> other Acking modes so they may be unaffected.
--
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.
---------------------------------------------------------------------
Apache Qpid - AMQP Messaging Implementation
Project: http://qpid.apache.org
Use/Interact: mailto:[email protected]