[ 
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]

Reply via email to