<div dir="ltr"><div class="gmail_extra"><div class="gmail_quote"><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left-width:1px;border-left-color:rgb(204,204,204);border-left-style:solid;padding-left:1ex">
<div lang="EN-US" link="blue" vlink="purple"><div><p class="MsoNormal"><span style="font-size:11pt;font-family:Arial,sans-serif">We do receive an ExecutionReport. The problem is that our service is running 24x7.</span></p>
</div></div></blockquote><div><br></div><div>You mentioned that the FIX session ends at 4pm and doesn't resume until 10am the following day. Does the service need to be running 24x7 for some other reason?</div><div>
</div>
<blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left-width:1px;border-left-color:rgb(204,204,204);border-left-style:solid;padding-left:1ex"><div lang="EN-US" link="blue" vlink="purple"><div><p class="MsoNormal">
<span style="font-size:11pt;font-family:Arial,sans-serif"> So the question is how do we know that an EOD or BOD has occurred?</span></p></div></div></blockquote><div><br></div><div>The short, on-topic answer is: I think you'd have to use the OnLogout/OnLogon callbacks. Or, you could modify the QF/n Session.Reset method to invoke a new OnReset callback.</div>
<div><br></div><div>And now to go off-topic: Triggering events like EOD/BOD can be achieved by designing services such that they can be shutdown and then back come up at a known time in a known state via cron or scheduled task. Various EOD/BOD tasks (e.g. a script that sweeps your database) can be executed after services shutdown, and before they come back up. If that is not possible because the service *really* needs to be running 24x7, then you broadcast a message to the services to indicate e.g. an EOD/BOD event. The publishing of this message would again be driven by cron or scheduled task. FIX applications are naturally quite event-driven, so this model fits nicely.</div>
<div><br></div><div>The motivation for all this is an operational one: you want to be able to re-run or preempt or re-compose the running of such processes as needed for routine maintenance (e.g. during your upgrade window) or due to a problem. It's harder to do that if the logic for EOD/BOD begin/end is embedded in the FIX engine.</div>
<div><br></div><div>Cheers,</div><div>--</div><div>Mike </div></div></div></div>