0

クライアントに提供した QuickFIX/n の実装があります。Currenex RFQ システムに接続します。アプリケーションの起動時に問題が発生することがあります。エラーはスローされず、私のテストでは問題なく動作します。正常に接続できる唯一の方法は、サーバー全体を再起動することです。

なぜこれが起こっているのか分かりませんし、エラーもスローされません。修正接続全体が try|catch ステートメントでラップされているため、他に何が欠けているかわかりません。以下は私の接続方法です。コードが実行され、すべてのログが記録されますが、ログオン メッセージは送信されません。

私は機知に富んでおり、私たちのクライアントもそうです。どんな指針も大きな助けになるでしょう.

コード:

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", "1");
        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);
        }
    }

設定: (社内の FIX ホスト) CNX i1scfxcrfq 10.192.6.121 444 test1234

4

1 に答える 1