[ https://issues.apache.org/jira/browse/PROTON-1067?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15056301#comment-15056301 ]
ASF subversion and git services commented on PROTON-1067: --------------------------------------------------------- Commit 1da4b120121463170030ab762ff52815657dd152 in qpid-proton's branch refs/heads/master from [~aconway] [ https://git-wip-us.apache.org/repos/asf?p=qpid-proton.git;h=1da4b12 ] PROTON-1067: python messenger: cannot acknowledge messages, messenger forces auto-ack or pre-settled. Change send-settle-mode defaults on outgoing links (but respect user settings if there are any) - sender: if outgoing_window, default to PN_SND_MIXED - let the application decide. - reciever: if incoming_window, default to PN_SND_UNSETTLED - let the app settle. Clearly if the app sets an incoming window, they want to settle messages manually so requesting "UNSETTLED" by default makes no sense. It works with existing messenger tests and examples because links are always established from the sending end, but making a receiving (subscribing) link to a broker such as qpidd shows the problem: messenger always requests SND_SETTLED, the broker obliges, so it is impossible for the receiver to control settlement. > python messenger: cannot acknowledge messages, messenger forces auto-ack or > pre-settled. > ---------------------------------------------------------------------------------------- > > Key: PROTON-1067 > URL: https://issues.apache.org/jira/browse/PROTON-1067 > Project: Qpid Proton > Issue Type: Bug > Components: python-binding > Affects Versions: 0.11 > Reporter: Alan Conway > Assignee: Alan Conway > Attachments: recv.py > > > In order to manually acknowledge received messages messenger requires you to: > 1. set "incoming_window" > 0, otherwise messenger auto-settles all messages. > 2. set "snd_settled_mode" to SND_UNSETTLED so that the remote end does not > pre-settle messages. > However the python binding (and I think all the bindings) for messenger do > not allow you to call pn_messenger_set_snd_settled_mode, which defaults to > SND_SETTLED. Thus it is impossible to manually accept messages because either > (with incoming_window==0) messenger auto-settles them or (with > incoming_window > 0) messenger's subscribe requests SND_SETTLED on the > incoming link so the other end sends pre-settled messages. -- This message was sent by Atlassian JIRA (v6.3.4#6332)