Imported from previous forum
Hello,
In a FIX 4.2 implementation, what is supposed to be the period of time a fix engine should send a testrequest message to test a counteparty inactivity?? I have read in the 4.3 specifications, volume 2, that is preset heartbeat interval (HeartBeatInt field) + "some reasonable period of time" (use 20% of HeartBeatInt field).
Is this a mandatory rule? What’s for 4.2?
thanks a lot
Antonio.
I think the "reasonable period of time" recommendation in FIX 4.3 is a good one for 4.2 as well.
> Hello,
> In a FIX 4.2 implementation, what is supposed to be the period of time a fix engine should send a testrequest message to test a counteparty inactivity?? I have read in the 4.3 specifications, volume 2, that is preset heartbeat interval (HeartBeatInt field) + “some reasonable period of time” (use 20% of HeartBeatInt field).
>
> Is this a mandatory rule? What’s for 4.2?
>
> thanks a lot
> Antonio.
>
>
Thanks a lot for your reply. Do you think that following the algorithm (HeartBeatInterval + HeartBeatInterval/2) is not enough? Keep in mind that this is a new rule. How could all FIX engines working with 4.2, 4.1 or even 4.0 implement it?? In my opinion new rules to implement should consider previous behaviours at session level.
> I think the “reasonable period of time” recommendation in FIX 4.3 is a good one for 4.2 as well.
>
> > Hello,
> > In a FIX 4.2 implementation, what is supposed to be the period of time a fix engine should send a testrequest message to test a counteparty inactivity?? I have read in the 4.3 specifications, volume 2, that is preset heartbeat interval (HeartBeatInt field) + “some reasonable period of time” (use 20% of HeartBeatInt field).
> >
> > Is this a mandatory rule? What’s for 4.2?
> >
> > thanks a lot
> > Antonio.
> >
> >
>
The algorithm you have suggested ( HeartBeatInt + (HeartBeatInt / 2) ) is actually greater than (thus "is enough") the 20% documented in the Session-level Test Cases and Expected Behavior. The key here is that if your heart beat interval is say 30 seconds, then if 30.0 seconds have elapses since you last received a message from the counterparty, you do not want to send a TestRequest message because the Heartbeat is likely "in flight". The "reasonable period of time" is related to your tolerance in receiving messages from your counterparty making the assumption that an idle connection will not send the Heartbeat message earlier (more frequent) than the HeartBeatInt value. You should attempt to send your Heartbeat messages "on the interval", just be tolerant (for "reasonable period of time") before initiating the Test Request. This avoids "thrashing" back-and-forth.
> Thanks a lot for your reply. Do you think that following the algorithm (HeartBeatInterval + HeartBeatInterval/2) is not enough? Keep in mind that this is a new rule. How could all FIX engines working with 4.2, 4.1 or even 4.0 implement it?? In my opinion new rules to implement should consider previous behaviours at session level.
>
>
>
> > I think the “reasonable period of time” recommendation in FIX 4.3 is a good one for 4.2 as well.
> >
> > > Hello,
> > > In a FIX 4.2 implementation, what is supposed to be the period of time a fix engine should send a testrequest message to test a counteparty inactivity?? I have read in the 4.3 specifications, volume 2, that is preset heartbeat interval (HeartBeatInt field) + “some reasonable period of time” (use 20% of HeartBeatInt field).
> > >
> > > Is this a mandatory rule? What’s for 4.2?
> > >
> > > thanks a lot
> > > Antonio.
> > >
> > >
> >
>