[
https://issues.apache.org/jira/browse/QPIDJMS-425?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16681202#comment-16681202
]
Robbie Gemmell commented on QPIDJMS-425:
----------------------------------------
ServiceBus advertising a 240sec idle-timeout in its Open frame actually means
the client must send something in 240sec, not 120sec. The AMQP spec says peers
SHOULD advertise half their actual timeout, so as to avoid spurious timeouts.
The client (or rather, proton-j) typically pessimistically assumes they have
not and so typically sends at half the advertised period, which is where the
120sec intervals come from. However, given its calculations, the way it works
generally, and the way we use it, it seems that isnt happening on the first
heartbeat and the actual point of it being sent is being influenced by both the
actual time we need to send one (240sec here) as well as the point it is
checking to see if one was received from the peer if needed.
For consistency I think we should see if we can change this behaviour but it is
not actually wrong as-is, just inconsistent with the later heartbeats.
Does ServiceBus have an issue with this or are you just reporting from your own
observations/expectations? If it did have an issue then I would actually say it
should be changed, to advertise things like the AMQP spec recommends.
> First heartbeat (Empty) frame is sent too late
> ----------------------------------------------
>
> Key: QPIDJMS-425
> URL: https://issues.apache.org/jira/browse/QPIDJMS-425
> Project: Qpid JMS
> Issue Type: Bug
> Components: qpid-jms-client
> Affects Versions: 0.37.0
> Reporter: David De Franco
> Priority: Major
> Attachments: heartbeat-120000.log, heartbeat-150000.log,
> heartbeat-300000.log, heartbeat-40000.log, heartbeat-60000.log
>
>
> We use Qpid JMS for commucation with the Azure Service Bus.
> In the Open frame from Azure the idleTimeout field has value 240000.
> Based on this we expect heartbeat frames are send by Qpid JMS every 2 minutes.
> This is correct for the second heartbeat frame and the following frames. But
> not for the first heartbeat frame. Which is sent later than after 2 minutes.
> And it depends on the client idle timeout setting. The time after which the
> first heartbeat frame is sent is for the following client idle timeout
> settings:
> 40000 -> 2 minutes 40 seconds
> 60000 -> 3 minutes
> 120000 -> 4 minutes
> 150000 -> 4 minutes
> 300000 -> 4 minutes
> Also see the attached log files.
--
This message was sent by Atlassian JIRA
(v7.6.3#76005)
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]