I do not see any transfers to the python client - or, really, anything at
all other than the occasional empty frame.
Sorry for the dump here, I hope this is helpful:
PYTHON STARTUP
[0x7f8906cedea0]: -> SASL
[0x7f8906cedea0]: <- SASL
[0x7f8906cedea0]:0 <- @sasl-mechanisms(64)
[sasl-server-mechanisms=@PN_SYMBOL[:PLAIN, :ANONYMOUS]]
[0x7f8906cedea0]:0 -> @sasl-init(65) [mechanism=:PLAIN,
initial-response=b"xxx"]
[0x7f8906cedea0]:0 <- @sasl-outcome(68) [code=0]
[0x7f8906cedea0]: -> AMQP
[0x7f8906cedea0]:0 -> @open(16) [container-id="xxx", hostname="xxx",
channel-max=32767, idle-time-out=500000]
[0x7f8906cedea0]:0 -> @begin(17) [next-outgoing-id=0,
incoming-window=2147483647, outgoing-window=2147483647]
[0x7f8906cedea0]:0 -> @attach(18) [name="xxx", handle=0, role=true,
snd-settle-mode=2, rcv-settle-mode=0, source=@source(40) [address="xxx",
durable=0, timeout=0, dynamic=false, distribution-mode=:copy],
target=@target(41) [durable=0, timeout=0, dynamic=false],
initial-delivery-count=0, max-message-size=0]
[0x7f8906cedea0]:0 -> @flow(19) [incoming-window=2147483647,
next-outgoing-id=0, outgoing-window=2147483647, handle=0, delivery-count=0,
link-credit=10, drain=false]
[0x7f8906cedea0]: <- AMQP
[0x7f8906cedea0]:0 <- @open(16) [container-id="localhost",
max-frame-size=4294967295, channel-max=32767, idle-time-out=15000,
offered-capabilities=@PN_SYMBOL[:"ANONYMOUS-RELAY", :"DELAYED_DELIVERY"],
properties={:product="ActiveMQ", :"topic-prefix"="topic://",
:"queue-prefix"="queue://", :version="5.15.2", :platform="Java/1.8.0_181"}]
[0x7f8906cedea0]:0 <- @begin(17) [remote-channel=0, next-outgoing-id=1,
incoming-window=2147483647, outgoing-window=2147483647, handle-max=65535]
[0x7f8906cedea0]:0 <- @attach(18) [name="xxx", handle=0, role=false,
snd-settle-mode=2, rcv-settle-mode=0, source=@source(40) [address="xxx",
durable=0, expiry-policy=:"session-end", timeout=0, dynamic=false,
distribution-mode=:copy], target=@target(41) [],
incomplete-unsettled=false, initial-delivery-count=0]
[0x7f8906cedea0]:0 <- @transfer(20) [handle=0, delivery-id=0,
delivery-tag=b"\x00", message-format=0] (1592) "..."
JAVA STARTUP
[2040136358:0] -> SASL
[2040136358:0] <- SASL
[2040136358:0] <- SaslMechanisms{saslServerMechanisms=[PLAIN, ANONYMOUS]}
[2040136358:0] -> SaslInit{mechanism=PLAIN, initialResponse=xxx,
hostname='xxx'}
[2040136358:0] <- SaslOutcome{_code=OK, _additionalData=null}
[2040136358:0] -> AMQP
[2040136358:0] -> Open{ containerId='xxx', hostname='xxx',
maxFrameSize=1048576, channelMax=32767, idleTimeOut=30000,
outgoingLocales=null, incomingLocales=null, offeredCapabilities=null,
desiredCapabilities=[sole-connection-for-container, DELAYED_DELIVERY,
ANONYMOUS-RELAY, SHARED-SUBS], properties={product=QpidJMS, version=0.47.0,
platform=JVM: 13, 13+33, AdoptOpenJDK, OS: Mac OS X, 10.14.5, x86_64}}
[2040136358:0] <- AMQP
[2040136358:0] <- Open{ containerId='localhost', hostname='null',
maxFrameSize=4294967295, channelMax=32767, idleTimeOut=15000,
outgoingLocales=null, incomingLocales=null,
offeredCapabilities=[ANONYMOUS-RELAY, DELAYED_DELIVERY],
desiredCapabilities=null, properties={product=ActiveMQ,
topic-prefix=topic://, queue-prefix=queue://, version=5.15.2,
platform=Java/1.8.0_181}}
[2040136358:0] -> Begin{remoteChannel=null, nextOutgoingId=1,
incomingWindow=2047, outgoingWindow=2147483647, handleMax=65535,
offeredCapabilities=null, desiredCapabilities=null, properties=null}
[2040136358:0] <- Begin{remoteChannel=0, nextOutgoingId=1,
incomingWindow=2147483647, outgoingWindow=2147483647, handleMax=65535,
offeredCapabilities=null, desiredCapabilities=null, properties=null}
[2040136358:1] -> Begin{remoteChannel=null, nextOutgoingId=1,
incomingWindow=2047, outgoingWindow=2147483647, handleMax=65535,
offeredCapabilities=null, desiredCapabilities=null, properties=null}
[2040136358:1] <- Begin{remoteChannel=1, nextOutgoingId=1,
incomingWindow=2147483647, outgoingWindow=2147483647, handleMax=65535,
offeredCapabilities=null, desiredCapabilities=null, properties=null}
[2040136358:1] -> Attach{name='qpid-jms:receiver:xxx', handle=0,
role=RECEIVER, sndSettleMode=UNSETTLED, rcvSettleMode=FIRST,
source=Source{address='xxx', durable=NONE, expiryPolicy=LINK_DETACH,
timeout=0, dynamic=false, dynamicNodeProperties=null,
distributionMode=null, filter=null,
defaultOutcome=Modified{deliveryFailed=true, undeliverableHere=null,
messageAnnotations=null}, outcomes=[amqp:accepted:list, amqp:rejected:list,
amqp:released:list, amqp:modified:list], capabilities=[queue]},
target=Target{address='null', durable=NONE, expiryPolicy=SESSION_END,
timeout=0, dynamic=false, dynamicNodeProperties=null, capabilities=null},
unsettled=null, incompleteUnsettled=false, initialDeliveryCount=null,
maxMessageSize=null, offeredCapabilities=null, desiredCapabilities=null,
properties=null}
[2040136358:1] <- Attach{name='qpid-jms:receiver:xxx', handle=0,
role=SENDER, sndSettleMode=UNSETTLED, rcvSettleMode=FIRST,
source=Source{address='xxx', durable=NONE, expiryPolicy=LINK_DETACH,
timeout=0, dynamic=false, dynamicNodeProperties=null,
distributionMode=null, filter=null,
defaultOutcome=Modified{deliveryFailed=true, undeliverableHere=null,
messageAnnotations=null}, outcomes=[amqp:accepted:list, amqp:rejected:list,
amqp:released:list, amqp:modified:list], capabilities=[queue]},
target=Target{address='null', durable=NONE, expiryPolicy=SESSION_END,
timeout=0, dynamic=false, dynamicNodeProperties=null, capabilities=null},
unsettled=null, incompleteUnsettled=false, initialDeliveryCount=0,
maxMessageSize=null, offeredCapabilities=null, desiredCapabilities=null,
properties=null}
[2040136358:1] -> Flow{nextIncomingId=1, incomingWindow=2047,
nextOutgoingId=1, outgoingWindow=2147483647, handle=0, deliveryCount=0,
linkCredit=1000, available=null, drain=false, echo=false, properties=null}
[2040136358:1] <- Transfer{handle=0, deliveryId=0, deliveryTag=\x00,
messageFormat=0, settled=null, more=false, rcvSettleMode=null, state=null,
resume=false, aborted=false, batchable=false} (1592) "..."
On Mon, Nov 18, 2019 at 7:31 AM Gordon Sim <[email protected]> wrote:
> On 18/11/2019 12:07 pm, Mike Longfritz wrote:
> > It's the latter, unfortunately. I set self.expected to zero and
> > self.timeout to something big so that poll_for_messages() runs basically
> > indefinitely - and new messages are not seen.
> >
> > With PN_TRACE_FRM set to true, I see empty frames being sent one way
> every
> > ~15 seconds, but not the other way:
> > [0x7f98cfb002e0]:0 -> (EMPTY FRAME)
> >
> > In contrast, with my java-equivalent poller, when it's idly waiting for
> > more messages, I see 2 empty frames in one direction and one in the other
> > direction every ~15 seconds:
> > [1584536876:0] -> Empty Frame
> > [1584536876:0] -> Empty Frame
> > [1584536876:0] <- Empty Frame
> >
> > This makes me suspect that the connection is being dropped in the python
> > version, though I'm not sure how to prevent that.
>
> That is not necessarily the case. The heartbeats in each direction are
> independently requested. By default the python client does not request
> one. However it is sending them as requested by broker which is what is
> important.
>
> Can you compare the attach frames sent by the python program and the
> java one? Is there any noticeable difference there?
>
> And just to confirm, you don't see any transfers to the python client
> that represent the 'missing messages', which are not then being passed
> to the appropriate callback?
>
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: [email protected]
> For additional commands, e-mail: [email protected]
>
>