Hello, It is not clear, how to achieve message acceptance on client.
Following OASIS AMQP1.0 docs, I assume that I have to setup sender-settle-mode - unsettled (0) receiver-settle-mode - second (1) in order to use accept/modify/reject methods, but it does not work as expected. Scenario 1. start activemq and ensure that the're no queues registered 2. run sender 2a. send message 3. run receiver 3a. get message and modify 4. run receiver 4a. get message Log for (2) === amqp10:link undefined:0: Transitioning from DETACHED to ATTACHING due to sendAttach +4ms amqp10:link attach CH=1, Handle=0 +0ms amqp10:framing sending frame: @attach(18) [name='test_d5c61642-99b0-4315-bef5-7bffdf0f8d64' handle=0 role=false senderSettleMode=0 receiverSettleMode=1 source=@source(40) [address='localhost' durable=0 expiryPolicy='session-end' timeout=0 dynamic=false dynamicNodeProperties={} distributionMode=null filter={} defaultOutcome=null outcomes=null capabilities=null] target=@target(41) [address='test' durable=0 expiryPolicy='session-end' timeout=0 dynamic=false dynamicNodeProperties={} capabilities=null] unsettled={} incompleteUnsettled=false initialDeliveryCount=1 maxMessageSize=0 offeredCapabilities=null desiredCapabilities=null properties={}] +1ms amqp10:trace raw: [0000009602000001005312c0890ea129746573745f64356336313634322d393962302d343331352d626566352d376266666466306638643634434250005001005328c0260ba1096c6f63616c686f737443a30b73657373696f6e2d656e644342c1010040c10100404040005329c01b07a1047465737443a30b73657373696f6e2d656e644342c1010040c10100425201444040c10100] +0ms amqp10:connection Rx: 0000008602000000005312c07907a129746573745f64356336313634322d393962302d343331352d626566352d376266666466306638643634434150025000005328c02308a1096c6f63616c686f737443a30b73657373696f6e2d656e644342c1010040c10100005329c01a06a1047465737443a30b73657373696f6e2d656e644342c101000000002402000000005313c017075201707fffffff5201707fffffff43520170000003e8 +1ms amqp10:framing received frame: @attach(18) [name='test_d5c61642-99b0-4315-bef5-7bffdf0f8d64' handle=0 role=true senderSettleMode=2 receiverSettleMode=0 source=@source(40) [address='localhost' durable=0 expiryPolicy='session-end' timeout=0 dynamic=false dynamicNodeProperties={} distributionMode=null filter={} defaultOutcome=null outcomes=null capabilities=null] target=@target(41) [address='test' durable=0 expiryPolicy='session-end' timeout=0 dynamic=false dynamicNodeProperties={} capabilities=null] unsettled={} incompleteUnsettled=false initialDeliveryCount=null maxMessageSize=0 offeredCapabilities=null desiredCapabilities=null properties={}] +2ms amqp10:trace raw: [005312c07907a129746573745f64356336313634322d393962302d343331352d626566352d376266666466306638643634434150025000005328c02308a1096c6f63616c686f737443a30b73657373696f6e2d656e644342c1010040c10100005329c01a06a1047465737443a30b73657373696f6e2d656e644342c10100] +0ms amqp10:link test_d5c61642-99b0-4315-bef5-7bffdf0f8d64:0: Transitioning from ATTACHING to ATTACHED due to attachReceived +0ms amqp10:link test_d5c61642-99b0-4315-bef5-7bffdf0f8d64: attached CH=[1=>0], Handle=[0=>0] +0ms amqp10:framing received frame: @flow(19) [nextIncomingId=1 incomingWindow=2147483647 nextOutgoingId=1 outgoingWindow=2147483647 handle=0 deliveryCount=1 linkCredit=1000 available=null drain=false echo=false properties={}] +1ms amqp10:trace raw: [005313c017075201707fffffff5201707fffffff43520170000003e8] +0ms amqp10:session New Incoming Window (known id): 2147483647 = 1 + 2147483647 - 1 +0ms === It shows that ActiveMQ ignores 'senderSettleMode=1 receiverSettleMode=2' and sets 'senderSettleMode=2 and receiverSettleMode=0' on link. Log for (2a) === amqp10:link:sender setting credits (1001,2147483647) +0ms amqp10:link:sender canSend(1001,2147483647) = true +1ms amqp10:link:sender sending: { behavior: 2 } +0ms amqp10:framing sending frame: @transfer(20) [handle=0 deliveryId=1 deliveryTag=<Buffer 31> messageFormat=0 settled=false more=false rcvSettleMode=0 state=null resume=false aborted=false batchable=false] +1ms amqp10:trace raw: [0000004e02000001005314c0100b435201a00131434242500040424242005370c00705415004404243005373c00e0d40404040404040404040404040005377c10d02a1086265686176696f725202] +1ms amqp10:connection Rx: 0000001802000000005315c00b0541520152014100532445 +46ms amqp10:framing received frame: @disposition(21) [role=true first=1 last=1 settled=true state=@accepted(36) [] batchable=false] +1ms amqp10:trace raw: [005315c00b0541520152014100532445] +0ms === It shows that despite the fact that there's no consumer connected to the queue I receive 'settled=true state=accepted' for the message sent Log for (3) is the same as for (2), shows the same property Log for (3a) === amqp10:framing sending frame: @flow(19) [nextIncomingId=1 incomingWindow=200 nextOutgoingId=1 outgoingWindow=100 handle=0 deliveryCount=0 linkCredit=100 available=0 drain=false echo=false properties={}] +1ms amqp10:trace raw: [0000002002000001005313c0130b520152c85201526443435264434242c10100] +0ms amqp10:connection Rx: 0000004502000000005314c007044343a0013043005370c00705415004404243005373c00e0d40404040404040404040404040005377c10d02a1086265686176696f725202 +9s amqp10:framing received frame: @transfer(20) [handle=0 deliveryId=0 deliveryTag=<Buffer 30> messageFormat=0 settled=null more=false rcvSettleMode=0 state=null resume=false aborted=false batchable=false] +0ms amqp10:trace raw: [005314c007044343a0013043005370c00705415004404243005373c00e0d40404040404040404040404040005377c10d02a1086265686176696f725202] +1ms amqp10:link:receiver Rx message 0 on test_16ba362b-5bef-42e4-8d54-64eceb13edbe, 99 credit, 199 window left. +0ms amqp10:link:receiver received from (test_16ba362b-5bef-42e4-8d54-64eceb13edbe): [object Object] +1ms amqp10:framing sending frame: @disposition(21) [role=true first=0 last=0 settled=true state=@modified(39) [deliveryFailed=false undeliverableHere=true messageAnnotations=null] batchable=false] +1ms amqp10:trace raw: [0000001c02000001005315c00f0641434341005327c0040342414042] +1ms === Here I'm trying to modify message with 'undeliverable-here' resolution. Log for (4) is the same as for (2). Log for (4a) does not exist because message disappears from queue after (3a) and falls to DLQ because it is durable. What am I doing wrong here? ActiveMQ: v5.4.14 amqp10: v3.5.0 -- View this message in context: http://activemq.2283324.n4.nabble.com/How-to-setup-policy-for-client-side-message-acceptance-tp4724961.html Sent from the ActiveMQ - User mailing list archive at Nabble.com.