Lorenz Quack created QPIDJMS-296:
------------------------------------

             Summary: JMS client does not assign unique deliveryTag for 
messages sent on the same link
                 Key: QPIDJMS-296
                 URL: https://issues.apache.org/jira/browse/QPIDJMS-296
             Project: Qpid JMS
          Issue Type: Bug
          Components: qpid-jms-client
    Affects Versions: 0.23.0
            Reporter: Lorenz Quack


I am creating a {{MessageProducer}} and sending two messages. In the protocol 
trace I can see that the two transfers are using the same deliveryTag. This is 
in violation of the AMQP1.0 specification. [Section 
2.7.5|http://docs.oasis-open.org/amqp/core/v1.0/os/amqp-core-transport-v1.0-os.html#type-transfer]
 states with regards to the {{delivery-tag}}:
bq. Uniquely identifies the delivery attempt for a given message on this link. 
This field MUST be specified for the first transfer of a multi-transfer message 
and can only be omitted for continuation transfers.

This a snippet of code:
{code}
Connection connection = getConnectionWithPrefetch(0);
connection.start();
Session session = connection.createSession(false, Session.AUTO_ACKNOWLEDGE);
Queue queue = session.createQueue("testQueue");
MessageProducer producer = session.createProducer(queue);
producer.send(session.createMessage());
producer.send(session.createMessage());
{code}

Excerpt from the protocol trace:
{noformat}
[1583014487:1] -> 
Attach{name='qpid-jms:sender:ID:0172b04b-3bc8-4e30-a589-57a9dae031aa:1:1:2:ZeroPrefetchTest-testZeroPrefetch',
 handle=1, role=SENDER, sndSettleMode=UNSETTLED, rcvSettleMode=FIRST, 
source=Source{address='ID:0172b04b-3bc8-4e30-a589-57a9dae031aa:1:1:2', 
durable=NONE, expiryPolicy=SESSION_END, timeout=0, dynamic=false, 
dynamicNodeProperties=null, distributionMode=null, filter=null, 
defaultOutcome=null, outcomes=[amqp:accepted:list, amqp:rejected:list, 
amqp:released:list, amqp:modified:list], capabilities=null}, 
target=Target{address='ZeroPrefetchTest-testZeroPrefetch', durable=NONE, 
expiryPolicy=SESSION_END, timeout=0, dynamic=false, dynamicNodeProperties=null, 
capabilities=[queue]}, unsettled=null, incompleteUnsettled=false, 
initialDeliveryCount=0, maxMessageSize=null, offeredCapabilities=null, 
desiredCapabilities=[DELAYED_DELIVERY], properties=null}
[1583014487:1] <- 
Attach{name='qpid-jms:sender:ID:0172b04b-3bc8-4e30-a589-57a9dae031aa:1:1:2:ZeroPrefetchTest-testZeroPrefetch',
 handle=1, role=RECEIVER, sndSettleMode=UNSETTLED, rcvSettleMode=FIRST, 
source=Source{address='ID:0172b04b-3bc8-4e30-a589-57a9dae031aa:1:1:2', 
durable=NONE, expiryPolicy=SESSION_END, timeout=0, dynamic=false, 
dynamicNodeProperties=null, distributionMode=null, filter=null, 
defaultOutcome=null, outcomes=[amqp:accepted:list, amqp:rejected:list, 
amqp:released:list, amqp:modified:list], capabilities=null}, 
target=Target{address='ZeroPrefetchTest-testZeroPrefetch', durable=NONE, 
expiryPolicy=SESSION_END, timeout=0, dynamic=false, dynamicNodeProperties=null, 
capabilities=[REJECT_UNROUTABLE, DELAYED_DELIVERY]}, unsettled={}, 
incompleteUnsettled=false, initialDeliveryCount=null, maxMessageSize=null, 
offeredCapabilities=[REJECT_UNROUTABLE, DELAYED_DELIVERY], 
desiredCapabilities=null, properties={}}
[1583014487:1] <- Flow{nextIncomingId=2, incomingWindow=8192, nextOutgoingId=0, 
outgoingWindow=2048, handle=1, deliveryCount=0, linkCredit=20000, 
available=null, drain=false, echo=false, properties=null}
[1583014487:1] -> Transfer{handle=1, deliveryId=1, deliveryTag=0, 
messageFormat=0, settled=null, more=false, rcvSettleMode=null, state=null, 
resume=false, aborted=false, batchable=false} (165) 
"\x00Sp\xc0\x02\x01A\x00Sr\xc1)\x04\xa3\x0ex-opt-jms-destQ\x00\xa3\x12x-opt-jms-msg-typeQ\x00\x00Ss\xc0k\x0a\xa1/ID:0172b04b-3bc8-4e30-a589-57a9dae031aa:1:1:2-1\xa0\x05guest\xa1!ZeroPrefetchTest-testZeroPrefetch@@@@@@\x83\x00\x00\x01\x5c\xc6\x0c\x04\xe3"
[1583014487:1] <- Disposition{role=RECEIVER, first=1, last=1, settled=true, 
state=Accepted{}, batchable=false}
[1583014487:1] -> Transfer{handle=1, deliveryId=2, deliveryTag=0, 
messageFormat=0, settled=null, more=false, rcvSettleMode=null, state=null, 
resume=false, aborted=false, batchable=false} (165) 
"\x00Sp\xc0\x02\x01A\x00Sr\xc1)\x04\xa3\x0ex-opt-jms-destQ\x00\xa3\x12x-opt-jms-msg-typeQ\x00\x00Ss\xc0k\x0a\xa1/ID:0172b04b-3bc8-4e30-a589-57a9dae031aa:1:1:2-2\xa0\x05guest\xa1!ZeroPrefetchTest-testZeroPrefetch@@@@@@\x83\x00\x00\x01\x5c\xc6\x0c\x04\xf1"
[1583014487:1] <- Disposition{role=RECEIVER, first=2, last=2, settled=true, 
state=Accepted{}, batchable=false}
{noformat}



--
This message was sent by Atlassian JIRA
(v6.4.14#64029)

---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to