{{Quickfixn}} Force close quickfixn

Ruaan Viljoen ruaanv at estuarys.co.za
Mon Sep 10 23:27:32 PDT 2012


I would also be very interested in this, as I think there have been a lot of community workarounds to get that initiator thread to shutdown properly. Rather than going around and doing another unpublished workaround, we
could work towards a long overdue fix at the core of the problem?

-Ruaan

From: quickfixn-bounces at lists.quickfixn.com [mailto:quickfixn-bounces at lists.quickfixn.com] On Behalf Of Grant Birchmeier
Sent: 10 September 2012 06:08 PM
To: Mailing list for QuickFIX/n
Subject: Re: {{Quickfixn}} Force close quickfixn

I think it should probably be built into the stop method as well.

I would love to see the code for your Dispose method.


On Mon, Sep 10, 2012 at 11:02 AM, <Christian.Jungers at sungard.com<mailto:Christian.Jungers at sungard.com>> wrote:
I haven't gone digging into the history of conversations about Stop(...) ... but I do have something to add.

Recently, for our FIX service based on QuickFixN, we were working on the ability to remotely control the service to spin up and spin down on-demand. What we found was that it was simple enough to do, but we could not get a new initiator from QuickFixN when it spun back up. The reason was because the old thread was holding onto handles to files that weren't being properly disposed of.

So I push IDisposable around a bit in the code. Rather than build that into the Stop method (which I feel is the natural place for it / intent of it), I built an additional method called Dispose which does the work. That way you can choose if you want to actually properly dispose of things or not. I'm happy to share the changes and then perhaps others with more history on the project could consider how best to make sure the system properly disposes of handles and threads and such?

                                - Christian


From: quickfixn-bounces at lists.quickfixn.com<mailto:quickfixn-bounces at lists.quickfixn.com> [mailto:quickfixn-bounces at lists.quickfixn.com<mailto:quickfixn-bounces at lists.quickfixn.com>] On Behalf Of Ruaan Viljoen
Sent: Monday, September 10, 2012 10:52 AM

To: Mailing list for QuickFIX/n
Subject: Re: {{Quickfixn}} Force close quickfixn

I have been poking around in the Quickfix source to try and see what the issue is with the initiator.Stop(true) not actually logging out or ending the thread.
I found something that I don't quite understand:

In AbstractInitiator.cs

public void Stop(bool force)
{
...
isStopped_ = true;
                OnStop();
                thread_.Join(5000);
                thread_ = null;

                foreach (Session session in enabledSessions)
                                session.Logon();
}

What is this 'session.Logon();' doing in here?

Also regarding the issue that sessions are not logging out on Stop(true):
                public void Logout()
                {
                                                Logout("");
                }

                public void Logout(string reason)
                {
                                                state_.IsEnabled = false;
                                                state_.LogoutReason = reason;
                }
I don't quite see where the actual logout is being sent. Could this be one of the issues. I realize this might be asking you guys to get more involved that you have time for right now, but perhaps someone else can help shed some light.

Thanks
Ruaan
From: quickfixn-bounces at lists.quickfixn.com<mailto:quickfixn-bounces at lists.quickfixn.com> [mailto:quickfixn-bounces at lists.quickfixn.com]<mailto:[mailto:quickfixn-bounces at lists.quickfixn.com]> On Behalf Of Grant Birchmeier
Sent: 07 September 2012 04:14 PM
To: Mailing list for QuickFIX/n
Subject: Re: {{Quickfixn}} Force close quickfixn

This is open issue 45.  (48 is also related.)
https://github.com/connamara/quickfixn/issues


On Fri, Sep 7, 2012 at 2:49 AM, Ruaan Viljoen <ruaanv at estuarys.co.za<mailto:ruaanv at estuarys.co.za>> wrote:
Hi,

I remember some issue with the initiator.stop(true) a while ago, has these issues been resolved?

I am calling intitiator.stop(true), but the thread is still staying alive it seems, and needs to be closed by end-tasking it. I am going to download the full quickfix/n from the repo now and see what exactly is causing this.

However I thought I would ask, maybe someone has a simple explanation?

Groete
Regards

Ruaan Viljoen

_______________________________________________
Quickfixn mailing list
Quickfixn at lists.quickfixn.com<mailto:Quickfixn at lists.quickfixn.com>
http://lists.quickfixn.com/listinfo.cgi/quickfixn-quickfixn.com



--
Grant Birchmeier
Connamara Systems, LLC
Made-To-Measure Trading Solutions.
Exactly what you need. No more. No less.
http://connamara.com


_______________________________________________
Quickfixn mailing list
Quickfixn at lists.quickfixn.com<mailto:Quickfixn at lists.quickfixn.com>
http://lists.quickfixn.com/listinfo.cgi/quickfixn-quickfixn.com



--
Grant Birchmeier
Connamara Systems, LLC
Made-To-Measure Trading Solutions.
Exactly what you need. No more. No less.
http://connamara.com

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.quickfixn.com/pipermail/quickfixn-quickfixn.com/attachments/20120911/b50b01a1/attachment-0002.htm>


More information about the Quickfixn mailing list