You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@activemq.apache.org by "ASF GitHub Bot (JIRA)" <ji...@apache.org> on 2017/03/20 20:49:41 UTC

[jira] [Commented] (ARTEMIS-60) Transactionally consumed AMQP messages are settled without any disposition state.

    [ https://issues.apache.org/jira/browse/ARTEMIS-60?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15933518#comment-15933518 ] 

ASF GitHub Bot commented on ARTEMIS-60:
---------------------------------------

GitHub user tabish121 opened a pull request:

    https://github.com/apache/activemq-artemis/pull/1109

    ARTEMIS-60 Validate AMQP sender applied TransactionState

    Update the AMQP test client to allow for better inspection of the
    delivery updates that happen during normal use.  Use those modification
    to check that when the broker's sender accepts and settles a non-settled
    disposition it adds a proper TransactionState disposition with the
    correct outcome and txn-id in that state.

You can merge this pull request into a Git repository by running:

    $ git pull https://github.com/tabish121/activemq-artemis ARTEMIS-60

Alternatively you can review and apply these changes as the patch at:

    https://github.com/apache/activemq-artemis/pull/1109.patch

To close this pull request, make a commit to your master/trunk branch
with (at least) the following in the commit message:

    This closes #1109
    
----

----


> Transactionally consumed AMQP messages are settled without any disposition state.
> ---------------------------------------------------------------------------------
>
>                 Key: ARTEMIS-60
>                 URL: https://issues.apache.org/jira/browse/ARTEMIS-60
>             Project: ActiveMQ Artemis
>          Issue Type: Bug
>          Components: AMQP
>    Affects Versions: 1.0.0
>            Reporter: Robbie Gemmell
>             Fix For: 2.next
>
>
> When the broker receives an unsettled disposition frame from a consumer accepting a message using TransactionalState to make it part of a transaction, it settles the message but does so with no state at all. This process causes a settled disposition frame to be sent to the client which contains no state. The message should retain TransactionalState linking it to the transaction and its outcome.
> Similar issue to AMQ-5456 for ActiveMQ 5.
> The issue can be seen in the protocol trace below:
> {noformat}
> <TCP time="17:55:01.374487" seqno="576785035" size="38">
>   <source host="127.0.0.1" port="53919"/>
>   <target host="127.0.0.1" port="5455"/>
>   
>   <frame size="38" doff="2" chan="1"> 
>     
>     <small-descriptor code="0x0:0x15"/> # disposition
>     <list8 size="25" count="5"> # disposition
>       <true/> # role
>       <uint0/> # first
>       <uint0/> # last
>       <false/> # settled
>       <small-descriptor code="0x0:0x34"/> # state      <<<< TransactionalState
>       <list8 size="15" count="2"> # state
>         <bin8 size="8"> # txn-id
>           00 00 00 00 00 00 00 0d 
>         </bin8>
>         <small-descriptor code="0x0:0x24"/> # outcome
>         <list0/> # accepted
>       </list8>
>       # <null/> batchable [false]
>     </list8>
>     
>   </frame>
>   
> </TCP>
> {noformat}
> {noformat}
> <TCP time="17:55:01.377185" seqno="78417459" size="20">
>   <source host="127.0.0.1" port="5455"/>
>   <target host="127.0.0.1" port="53919"/>
>   
>   <frame size="20" doff="2" chan="1"> 
>     
>     <small-descriptor code="0x0:0x15"/> # disposition
>     <list8 size="7" count="4"> # disposition
>       <true/> # role
>       <small-uint> 1 </small-uint> # first
>       <small-uint> 1 </small-uint> # last
>       <true/> # settled
>       # <null/> state                                    <<<< No state
>       # <null/> batchable [false]
>     </list8>
>     
>   </frame>
>   
> </TCP>
> {noformat}



--
This message was sent by Atlassian JIRA
(v6.3.15#6346)