[
https://issues.apache.org/jira/browse/AMQ-5374?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Timothy Bish resolved AMQ-5374.
-------------------------------
Resolution: Fixed
Assignee: Timothy Bish
We are now on 0.8 which has the fixes needed for this
> AMQP delivery-count header set to the wrong value following a rollback
> ----------------------------------------------------------------------
>
> Key: AMQ-5374
> URL: https://issues.apache.org/jira/browse/AMQ-5374
> Project: ActiveMQ
> Issue Type: Bug
> Components: AMQP
> Reporter: Robbie Gemmell
> Assignee: Timothy Bish
> Fix For: 5.11.0
>
>
> The delivery-count field in the AMQP 1.0 message header tracks prior
> unsuccessful delivery attempts and so should go 0,1,2. In testing against the
> 5.11-SNAPSHOT I see the value going from 0 (unset, default) initially, to 2,
> then 3, etc, following repeated rollbacks. I have tracked this to a defect in
> the proton-jms contrib artifact and corrected it via PROTON-704, for
> inclusion in Proton 0.8.
> The issue can be seen in the below snippets of protocol trace (at the lines
> marked <<<<<). When the message is first transfered to the client, the
> delivery count field is null / not set, giving the default value of 0. Later
> when the message is sent again after a rollback, the delivery-count header
> has incremented to 2 rather than 1.
> {noformat}
> <TCP time="15:22:55.967963" seqno="1705009155" size="186">
> <source host="127.0.0.1" port="37703"/>
> <target host="127.0.0.1" port="39557"/>
>
> <frame size="186" doff="2" chan="1">
>
> <small-descriptor code="0x0:0x14"/> # transfer
> <list8 size="8" count="4"> # transfer
> <small-uint> 1 </small-uint> # handle
> <uint0/> # delivery-id
> <bin8 size="1"> # delivery-tag
> "0"
> </bin8>
> <uint0/> # message-format
> # <null/> settled
> # <null/> more [false]
> # <null/> rcv-settle-mode
> # <null/> state
> # <null/> resume [false]
> # <null/> aborted [false]
> # <null/> batchable [false]
> </list8>
>
> <small-descriptor code="0x0:0x70"/> # header
> <list8 size="4" count="2"> # header
> <true/> # durable
> <ubyte> 4 </ubyte> # priority
> # <null/> ttl
> # <null/> first-acquirer
> # <null/> delivery-count <<<<<
> </list8>
>
> <small-descriptor code="0x0:0x72"/> # message-annotations
> <map8 size="23" count="2"> # message-annotations
> <sym8 size="13">
> "x-opt-to-type"
> </sym8>
> <str8-utf8 size="5">
> "queue"
> </str8-utf8>
> </map8>
>
> <small-descriptor code="0x0:0x73"/> # properties
> <list8 size="104" count="10"> # properties
> <str8-utf8 size="54"> # message-id
> "ID:localhost.localdo"
> "main-56080-141200416"
> "5134-2:1:2:1:1"
> </str8-utf8>
> <null/> # user-id
> <str8-utf8 size="29"> # to
> "queue://testJMSXDeli"
> "veryCount"
> </str8-utf8>
> <null/> # subject
> <null/> # reply-to
> <null/> # correlation-id
> <null/> # content-type
> <null/> # content-encoding
> <null/> # absolute-expiry-time
> <time t="1412004165442"/>#2014/9/29 15:22:45.442 # creation-time
> # <null/> group-id
> # <null/> group-sequence
> # <null/> reply-to-group-id
> </list8>
>
> <small-descriptor code="0x0:0x77"/> # amqp-value
> <str8-utf8 size="14"> # amqp-value
> "TextMessage: 0"
> </str8-utf8>
>
> </frame>
>
> </TCP>
> {noformat}
> {noformat}
> <TCP time="15:22:56.033807" seqno="1705009397" size="215">
> <source host="127.0.0.1" port="37703"/>
> <target host="127.0.0.1" port="39557"/>
>
> <frame size="24" doff="2" chan="1">
>
> <small-descriptor code="0x0:0x15"/> # disposition
> <list8 size="11" count="5"> # disposition
> <true/> # role
> <small-uint> 1 </small-uint> # first
> <small-uint> 1 </small-uint> # last
> <true/> # settled
> <small-descriptor code="0x0:0x24"/> # state
> <list0/> # accepted
> # <null/> batchable [false]
> </list8>
>
> </frame>
>
> <frame size="191" doff="2" chan="1">
>
> <small-descriptor code="0x0:0x14"/> # transfer
> <list8 size="9" count="4"> # transfer
> <small-uint> 1 </small-uint> # handle
> <small-uint> 1 </small-uint> # delivery-id
> <bin8 size="1"> # delivery-tag
> "1"
> </bin8>
> <uint0/> # message-format
> # <null/> settled
> # <null/> more [false]
> # <null/> rcv-settle-mode
> # <null/> state
> # <null/> resume [false]
> # <null/> aborted [false]
> # <null/> batchable [false]
> </list8>
>
> <small-descriptor code="0x0:0x70"/> # header
> <list8 size="8" count="5"> # header
> <true/> # durable
> <ubyte> 4 </ubyte> # priority
> <null/> # ttl
> <null/> # first-acquirer
> <small-uint> 2 </small-uint> # delivery-count <<<<<
> </list8>
>
> <small-descriptor code="0x0:0x72"/> # message-annotations
> <map8 size="23" count="2"> # message-annotations
> <sym8 size="13">
> "x-opt-to-type"
> </sym8>
> <str8-utf8 size="5">
> "queue"
> </str8-utf8>
> </map8>
>
> <small-descriptor code="0x0:0x73"/> # properties
> <list8 size="104" count="10"> # properties
> <str8-utf8 size="54"> # message-id
> "ID:localhost.localdo"
> "main-56080-141200416"
> "5134-2:1:2:1:1"
> </str8-utf8>
> <null/> # user-id
> <str8-utf8 size="29"> # to
> "queue://testJMSXDeli"
> "veryCount"
> </str8-utf8>
> <null/> # subject
> <null/> # reply-to
> <null/> # correlation-id
> <null/> # content-type
> <null/> # content-encoding
> <null/> # absolute-expiry-time
> <time t="1412004165442"/>#2014/9/29 15:22:45.442 # creation-time
> # <null/> group-id
> # <null/> group-sequence
> # <null/> reply-to-group-id
> </list8>
>
> <small-descriptor code="0x0:0x77"/> # amqp-value
> <str8-utf8 size="14"> # amqp-value
> "TextMessage: 0"
> </str8-utf8>
>
> </frame>
>
> </TCP>
> {noformat}
--
This message was sent by Atlassian JIRA
(v6.3.4#6332)