You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@qpid.apache.org by "Robbie Gemmell (JIRA)" <ji...@apache.org> on 2018/11/09 10:12:00 UTC

[jira] [Commented] (QPIDJMS-425) First heartbeat (Empty) frame is sent too late

    [ 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: dev-unsubscribe@qpid.apache.org
For additional commands, e-mail: dev-help@qpid.apache.org