{{Quickfixn}} QuickFIX Libraries in Production

Harnett, Brian BHarnett at globallink.com
Wed Feb 27 12:03:18 PST 2013


Hello,

This is a bit of an abstract question for the community.  I've created an application that uses QuickFIX/n for FX pricing.  This works fine on my pc, servers, and in development.  I gave this to a client, and none of the QuickFIX code is hit.  I have quite a bit of logging and none of it is triggered.  All of this is written in C# VS2010 and QuickFIX/n v2.0.50727.  I know this isn't a simple code issue, but I'm really at a loss, so any help would be great!  Thanks.

Here is an example of the constructor for my FixEngine class

    class FixEngine : QuickFix.MessageCracker, QuickFix.Application
    {
        public FixEngine()
        {
            myEngine = this;
            this.QuoteList = new List<QuickFix.FIX42.Quote>();
            this.Trades = new List<Trade>();
            Logger.MsgLog("FIX Engine instantiated");
        }

        public static FixEngine GetInstance()
        {
            if (myEngine == null)
            {
                myEngine = new FixEngine();
            }
            return myEngine;
        }
        }

Here is the connect method:
        public void Connect()
        {
            try
            {
            string beginString = "FIX.4.2";
            MemoryStoreFactory storeFactory = new MemoryStoreFactory();
            MessageStoreFactory msgFactory;
            LogFactory logfactory;
            SessionSettings settings = new SessionSettings();
            QuickFix.Dictionary entry = new QuickFix.Dictionary();

            entry.SetString("ConnectionType", "initiator");
            entry.SetString("ReconnectInterval", "20");
            entry.SetString("SocketConnectHost", this.fixHost);
            entry.SetString("FileLogPath", this.workingDirectory + "logs");
            entry.SetString("FileStorePath", this.workingDirectory + "logs");
            entry.SetString("StartTime", "23:59:59");
            entry.SetString("EndTime", "23:59:59");
            entry.SetString("HeartBtInt", "30");
            entry.SetString("SocketNodelay", "Y");
            entry.SetString("SocketTrafficClass", "IPTOS_LOWDELAY");
            entry.SetString("ResetSeqNumFlag", "Y");
            //entry.SetString("UseDataDictionary", "N");
            entry.SetString("DataDictionary", this.workingDirectory + "FixResourceFiles\\FIX42.xml");
            entry.SetString("ResetOnLogout", "Y");
            entry.SetString("ResetOnDisconnect", "Y");
            entry.SetString("CheckLatency", "N");
            entry.SetString("SocketConnectPort", this.fixPort);

            this.sessionId = new QuickFix.SessionID(beginString, this.senderCompId, this.targetCompId, DateTime.Now.ToString("yyyyMMddhhmmssfff"));

            settings.Set(this.sessionId, entry);

            if (this.storeAllQuickFixMsgs)
            {
                logfactory = new FileLogFactory(settings);
            }
            else
            {
                logfactory = new ScreenLogFactory(settings);
            }

            msgFactory = new FileStoreFactory(settings);

            Logger.MsgLog("Creating QuickFIX Socket Initiator...");
            QuickFix.Transport.SocketInitiator init = new QuickFix.Transport.SocketInitiator(this, msgFactory, settings);
            //this.socketInitiator = new QuickFix.Transport.SocketInitiator(this, msgFactory, settings, logfactory);
            this.socketInitiator = init;


            Logger.MsgLog("Starting Socket Initiator...");
            this.socketInitiator.Start();
            Logger.MsgLog("Started");

            }
            catch (Exception ex)
            {
                Logger.MsgLog("Error on FIX Connection: " + ex);
            }
        }

In my client's environment, no errors are thrown, but the log messages aren't thrown either.  Does anyone know why this would happen?  This works fine for me when installed on two machines.

Log Files:

Me:
Msg at 2/27/2013 2:24:30 PM - FXCMultiSnap v1.0.0.0 started.
Msg at 2/27/2013 2:24:31 PM - FIX Engine instatiated
Msg at 2/27/2013 2:24:31 PM - Creating QuickFIX Socket Initiator...
Msg at 2/27/2013 2:24:31 PM - Starting Socket Initiator...
Msg at 2/27/2013 2:24:31 PM - Started
Msg at 2/27/2013 2:24:31 PM - Creating Sonic connection
Msg at 2/27/2013 2:24:32 PM - QuickFIXtoAdmin: QuickFix.FIX42.Logon8=FIX.4.2|9=91|35=A|34=1|49=i1mutbt1fixrfq|52=20130227-19:24:32.214|56=CNX|554=test1234|98=0|108=30|141=Y|10=254|
Msg at 2/27/2013 2:24:32 PM - QuickFIXfromAdmin: QuickFix.FIX42.Logon8=FIX.4.2|9=78|35=A|34=1|49=CNX|52=20130227-19:24:32.269|56=i1mutbt1fixrfq|98=0|108=30|141=Y|10=167|
Msg at 2/27/2013 2:24:32 PM - QuickFIXFix Logon - SessionID:FIX.4.2:i1mutbt1fixrfq->CNX:20130227022431620

Client:

   Msg at 1/16/2013 3:47:46 PM - FXCMultiSnap v1.0.0.0 started.
   Msg at 1/16/2013 3:47:46 PM - Creating Sonic connection
   Msg at 1/16/2013 3:47:51 PM - Receiving Sonic messages.
   Msg at 1/16/2013 3:47:51 PM - Enter QUIT to Exit
   Msg at 1/16/2013 3:48:26 PM - Closed by user
   Msg at 1/16/2013 4:06:19 PM - FXCMultiSnap v1.0.0.0 started.
   Msg at 1/16/2013 4:06:20 PM - Creating Sonic connection
   Msg at 1/16/2013 4:06:25 PM - Receiving Sonic messages.
   Msg at 1/16/2013 4:06:25 PM - Enter QUIT to Exit
   Msg at 1/16/2013 4:19:10 PM - FXCMultiSnap v1.0.0.0 started.
   Msg at 1/16/2013 4:19:10 PM - Creating Sonic connection
   Msg at 1/16/2013 4:19:14 PM - Receiving Sonic messages.
   Msg at 1/16/2013 4:19:14 PM - Enter QUIT to Exit




-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.quickfixn.com/pipermail/quickfixn-quickfixn.com/attachments/20130227/8e7ee6cf/attachment-0001.htm>


More information about the Quickfixn mailing list