[ 
https://issues.apache.org/jira/browse/QPID-4302?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Keith Wall updated QPID-4302:
-----------------------------

    Description: 
In 0-8..0-9-1 protocols, message acknowledgement (BasicAck) is async by design. 
 There is no BasicAckOk.   This presents a problem for JMS CLIENT_ACK mode. 
When Message#acknowledge() returns the spec requires that the Broker has 
processed the ack and the client won't see the message(s) again.

Currently calling  Message#acknowledge() merely puts the command in buffer to 
be put on the wire later by the IoSender. There is no assurance that the Broker 
has even received the command let alone process it successfully.

The client should be changed to sync() once before returning the the client to 
give assurance that the Broker has received and processed the commands.







For the 0-8..0-9-1 code paths acknowledgement of messages in CLIENT_ACK mode 
might not happen immediately in Message#acknowledge. It should be updated to 
acknowledge messages synchronously.   There will be a system property to allow 
the old behaviour to be restored if so desired.

  was:For the 0-8..0-9-1 code paths acknowledgement of messages in CLIENT_ACK 
mode might not happen immediately in Message#acknowledge. It should be updated 
to acknowledge messages synchronously.   There will be a system property to 
allow the old behaviour to be restored if so desired.

        Summary: 0-8..0-9-1 client should sync after message.acknowledge()  
(was: make sure the 0-8..0-9-1 client message.acknowledge() does so 
synchronously)
    
> 0-8..0-9-1 client should sync after message.acknowledge()
> ---------------------------------------------------------
>
>                 Key: QPID-4302
>                 URL: https://issues.apache.org/jira/browse/QPID-4302
>             Project: Qpid
>          Issue Type: Bug
>          Components: Java Broker
>    Affects Versions: 0.6, 0.8, 0.10, 0.12, 0.14, 0.16, 0.18
>            Reporter: Keith Wall
>            Assignee: Keith Wall
>             Fix For: 0.19
>
>
> In 0-8..0-9-1 protocols, message acknowledgement (BasicAck) is async by 
> design.  There is no BasicAckOk.   This presents a problem for JMS CLIENT_ACK 
> mode. When Message#acknowledge() returns the spec requires that the Broker 
> has processed the ack and the client won't see the message(s) again.
> Currently calling  Message#acknowledge() merely puts the command in buffer to 
> be put on the wire later by the IoSender. There is no assurance that the 
> Broker has even received the command let alone process it successfully.
> The client should be changed to sync() once before returning the the client 
> to give assurance that the Broker has received and processed the commands.
> For the 0-8..0-9-1 code paths acknowledgement of messages in CLIENT_ACK mode 
> might not happen immediately in Message#acknowledge. It should be updated to 
> acknowledge messages synchronously.   There will be a system property to 
> allow the old behaviour to be restored if so desired.

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see: http://www.atlassian.com/software/jira

---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscr...@qpid.apache.org
For additional commands, e-mail: dev-h...@qpid.apache.org

Reply via email to