Resend Failure

Imported from previous forum

Hi,

Can anyone advice me on the alternative path to be taken when application fails to process a resend request from counter party.This can happen when application is not able to access the message source (DB instance not started).

Regards,
Venkatesan T

Can anyone advice me on the alternative path to be taken when
application fails to process a resend request from counter party.This
can happen when application is not able to access the message source
(DB instance not started).

The Sequence Reset message (MsgType = 4) could be used to mark the place of the message which will not be resent. The GapFillFlag (Tag = 123) should be set to “Y”, the MsgSeqNum (34) should conform to standard message sequencing rules.

Regards,
Onixs / www.onixs.biz

Can anyone advice me on the alternative path to be taken when
application fails to process a resend request from counter
party.This can happen when application is not able to access the
message source (DB instance not started).

The Sequence Reset message (MsgType = 4) could be used to mark the place
of the message which will not be resent. The GapFillFlag (Tag = 123)
should be set to “Y”, the MsgSeqNum (34) should conform to standard
message sequencing rules.

Regards, Onixs / www.onixs.biz

Does it mean that the counter party will request for a resend again or the application need to know that there is a resend failure and process it when the source is available.

Can anyone advice me on the alternative path to be taken when
application fails to process a resend request from counter
party.This can happen when application is not able to access the
message source (DB instance not started).

The Sequence Reset message (MsgType = 4) could be used to mark the
place of the message which will not be resent. The GapFillFlag (Tag =
123) should be set to “Y”, the MsgSeqNum (34) should conform to
standard message sequencing rules.

Regards, Onixs / www.onixs.biz .

Does it mean that the counter party will request for a resend again or
the application need to know that there is a resend failure and process
it when the source is available.

The second case.

Even when the source is available, the application could still decide to not resend the message (e.g. an aged order).

Can anyone advice me on the alternative path to be taken when
application fails to process a resend request from counter
party.This can happen when application is not able to access
the message source (DB instance not started).

The Sequence Reset message (MsgType = 4) could be used to mark the
place of the message which will not be resent. The GapFillFlag
(Tag =
123) should be set to “Y”, the MsgSeqNum (34) should conform to
standard message sequencing rules.

Regards, Onixs / www.onixs.biz .

Does it mean that the counter party will request for a resend again or
the application need to know that there is a resend failure and
process it when the source is available.

The second case.

Even when the source is available, the application could still decide to
not resend the message (e.g. an aged order).

OK. Let us assume that the resend is from 10 to 15 sequence of messages(Here DB instance not up). The reset sequence has happened to make sure that the message flow is normal. my current sequence is 100 and I process the resend at this point of time (DB Up). Will this create a sequence mismatch problem ?

Can anyone advice me on the alternative path to be taken when
application fails to process a resend request from counter
party.This can happen when application is not able to access
the message source (DB instance not started).

The Sequence Reset message (MsgType = 4) could be used to mark the
place of the message which will not be resent. The GapFillFlag
(Tag =
123) should be set to “Y”, the MsgSeqNum (34) should conform to
standard message sequencing rules.

Regards, Onixs / www.onixs.biz .

Does it mean that the counter party will request for a resend again
or the application need to know that there is a resend failure and
process it when the source is available.

The second case.

Even when the source is available, the application could still decide
to not resend the message (e.g. an aged order).

OK. Let us assume that the resend is from 10 to 15 sequence of
messages(Here DB instance not up). The reset sequence has happened to
make sure that the message flow is normal. my current sequence is 100
and I process the resend at this point of time (DB Up). Will this create
a sequence mismatch problem ?

As long as the fields of Sequence Reset (MsgType = 4) are set properly there should be no sequence mismatch problem.

For example:

GapFillFlag (tag = 123) = “Y”
MsgSeqNum (tag = 34) = 10
NewSeqNo (tag = 36) = 16
PossDupFlag (tag = 43) = “Y”

Can anyone advice me on the alternative path to be taken when
application fails to process a resend request from counter
party.This can happen when application is not able to access
the message source (DB instance not started).

The Sequence Reset message (MsgType = 4) could be used to mark the
place of the message which will not be resent. The GapFillFlag
(Tag =
123) should be set to “Y”, the MsgSeqNum (34) should conform to
standard message sequencing rules.

Regards, Onixs / www.onixs.biz .

Does it mean that the counter party will request for a resend again
or the application need to know that there is a resend failure and
process it when the source is available.

The second case.

Even when the source is available, the application could still decide
to not resend the message (e.g. an aged order).

OK. Let us assume that the resend is from 10 to 15 sequence of
messages(Here DB instance not up). The reset sequence has happened to
make sure that the message flow is normal. my current sequence is 100
and I process the resend at this point of time (DB Up). Will this create
a sequence mismatch problem ?

i think it would as your counterparty will now not be expecting you to resend those messages.

You could send them with new sequence numbers though, but that has to be thought through carefully as the order of which messages are received is important within FIX.

Best would be to stop everything if your DB is not up. It depends on the scenario though.

Hi,

not too much you can do with 4.0.

you can logout with a reason.

Or reject with reason and then force logout to prevent a loop of resend-requests. If you dont reply then the requesting counterparty should logout anyway.

Otherwise you can set up a user defined tag and implement some sort of protocol with your counter-party - If they want to do this. Like App not ready please wait.

Or you want your app to prevent logon and/or logoff on its own and stay that way until the DB is correct internally…

my 2p
Byron

Hi,

Can anyone advice me on the alternative path to be taken when
application fails to process a resend request from counter party.This
can happen when application is not able to access the message source
(DB instance not started).

Regards, Venkatesan T

“not too much you can do with 4.0”

does any of the later versions has a solution ?

Regards,
Venkatesan T

Hi,

not too much you can do with 4.0.

you can logout with a reason.

Or reject with reason and then force logout to prevent a loop of resend-
requests. If you dont reply then the requesting counterparty should
logout anyway.

Otherwise you can set up a user defined tag and implement some sort of
protocol with your counter-party - If they want to do this. Like App not
ready please wait.

Or you want your app to prevent logon and/or logoff on its own and stay
that way until the DB is correct internally…

my 2p Byron

Hi,

Can anyone advice me on the alternative path to be taken when
application fails to process a resend request from counter
party.This can happen when application is not able to access the
message source (DB instance not started).

Regards, Venkatesan T

Well it wont help you out too much as I see you want to keep on processing (which is dangerous as some data will be missing…)

but the business message reject which appears from 4.2 has a value of 4 which means app not ready. You could explore that.

Byron
Net2s

“not too much you can do with 4.0”

does any of the later versions has a solution ?

Regards, Venkatesan T

Hi,

not too much you can do with 4.0.

you can logout with a reason.

Or reject with reason and then force logout to prevent a loop of resend-
requests. If you dont reply then the requesting counterparty should
logout anyway.

Otherwise you can set up a user defined tag and implement some sort of
protocol with your counter-party - If they want to do this. Like App
not ready please wait.

Or you want your app to prevent logon and/or logoff on its own and
stay that way until the DB is correct internally…

my 2p Byron

Hi,

Can anyone advice me on the alternative path to be taken when
application fails to process a resend request from counter
party.This can happen when application is not able to access the
message source (DB instance not started).

Regards, Venkatesan T