クライアントに提供した 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