1

FIX_SERVER に接続するために、quickfix メッセンジャー コードを使用しています。クライアントが Logon メッセージ (35=A) を送信すると、サーバーは Logon (35=A) と ResendRequest (35=2) で応答します。ここで何か不足していますか? 以下のように Applciation インターフェイスを実装しました FIX サーバーは FIX 5.0 SP2 プロトコルを使用しています。

public class MyFIXClient implements Application
{


    @Override
    public void fromAdmin(Message arg0, SessionID arg1) throws FieldNotFound,
            IncorrectDataFormat, IncorrectTagValue, RejectLogon
    {

    }

    @Override
    public void fromApp(Message arg0, SessionID arg1) throws FieldNotFound,
            IncorrectDataFormat, IncorrectTagValue, UnsupportedMessageType
    {

    }

    @Override
    public void onCreate(SessionID arg0)
    {

    }

    @Override
    public void onLogon(SessionID arg0)
    {

    }

    @Override
    public void onLogout(SessionID arg0)
    {

    }

    @Override
    public void toAdmin(Message arg0, SessionID arg1)
    {

    }

    @Override
    public void toApp(Message arg0, SessionID arg1) throws DoNotSend
    {

    }

    public static void main(String[] args)
    {
        try
        {
            MyFIXClient MyClient = new MyFIXClient();
            SessionSettings session = new SessionSettings("D:\\qfix-messenger-2.0-src\\qfix-messenger\\cfg\\initiator\\my_client.cfg");
            Application app = new MyFIXClient();
            FileStoreFactory storeFact = new FileStoreFactory(session);
            ScreenLogFactory logFact = new ScreenLogFactory(session);
            MessageFactory msgFact = new quickfix.fixt11.MessageFactory();
//          MessageFactory msgFact = new DefaultMessageFactory();
            SocketInitiator initiator = new SocketInitiator(app, storeFact, session, logFact, msgFact);
            initiator.start();

            Thread.sleep(30*1000);;

//          SessionID sesssionId = list

            initiator.stop();

        } catch (Exception e)
        {
            e.printStackTrace();
        }
    }

}

コンソール ログは

<20150305-07:27:59, FIXT.1.1:FIXCLIENT->FIX_SERVER, event> (Session FIXT.1.1:FIXCLIENT->FIX_SERVER schedule is daily, 00:00:00-UTC - 00:00:00-UTC)
<20150305-07:27:59, FIXT.1.1:FIXCLIENT->FIX_SERVER, event> (Created session: FIXT.1.1:FIXCLIENT->FIX_SERVER)
<20150305-07:28:00, FIXT.1.1:FIXCLIENT->FIX_SERVER, outgoing> (8=FIXT.1.19=7135=A34=149=FIXCLIENT52=20150305-07:28:00.24456=FIX_SERVER98=0108=301137=710=080)
<20150305-07:28:00, FIXT.1.1:FIXCLIENT->FIX_SERVER, event> (Initiated logon request)

<20150305-07:28:00, FIXT.1.1:FIXCLIENT->FIX_SERVER, incoming> (8=FIXT.1.19=5335=534=1449=FIX_SERVER52=20150305-07:28:23.78756=FIXCLIENT10=047)

<20150305-07:28:05, FIXT.1.1:FIXCLIENT->FIX_SERVER, outgoing> (8=FIXT.1.19=7135=A34=249=FIXCLIENT52=20150305-07:28:05.12856=FIX_SERVER98=0108=301137=710=087)
<20150305-07:28:05, FIXT.1.1:FIXCLIENT->FIX_SERVER, event> (Initiated logon request)

<20150305-07:28:05, FIXT.1.1:FIXCLIENT->FIX_SERVER, incoming> (8=FIXT.1.19=7135=A34=149=FIX_SERVER52=20150305-07:28:28.96756=FIXCLIENT98=0108=301137=910=104)
<20150305-07:28:05, FIXT.1.1:FIXCLIENT->FIX_SERVER, incoming> (8=FIXT.1.19=6135=234=249=FIX_SERVER52=20150305-07:28:28.96756=FIXCLIENT7=116=010=120)
<20150305-07:28:16, FIXT.1.1:FIXCLIENT->FIX_SERVER, error> (Disconnecting: Timed out waiting for logon response)

<20150305-07:28:17, FIXT.1.1:FIXCLIENT->FIX_SERVER, outgoing> (8=FIXT.1.19=7135=A34=349=FIXCLIENT52=20150305-07:28:17.12756=FIX_SERVER98=0108=301137=710=090)
<20150305-07:28:17, FIXT.1.1:FIXCLIENT->FIX_SERVER, event> (Initiated logon request)

<20150305-07:28:17, FIXT.1.1:FIXCLIENT->FIX_SERVER, incoming> (8=FIXT.1.19=7135=A34=349=FIX_SERVER52=20150305-07:28:40.93256=FIXCLIENT98=0108=301137=910=092)
<20150305-07:28:17, FIXT.1.1:FIXCLIENT->FIX_SERVER, incoming> (8=FIXT.1.19=6135=234=449=FIX_SERVER52=20150305-07:28:40.93256=FIXCLIENT7=116=010=108)

<20150305-07:28:27, FIXT.1.1:FIXCLIENT->FIX_SERVER, error> (Disconnecting: Timed out waiting for logon response)
<20150305-07:28:28, FIXT.1.1:FIXCLIENT->FIX_SERVER, outgoing> (8=FIXT.1.19=7135=A34=449=FIXCLIENT52=20150305-07:28:28.22656=FIX_SERVER98=0108=301137=710=093)

<20150305-07:28:28, FIXT.1.1:FIXCLIENT->FIX_SERVER, event> (Initiated logon request)
<20150305-07:28:28, FIXT.1.1:FIXCLIENT->FIX_SERVER, incoming> (8=FIXT.1.19=7135=A34=549=FIX_SERVER52=20150305-07:28:51.89956=FIXCLIENT98=0108=301137=910=108)
<20150305-07:28:28, FIXT.1.1:FIXCLIENT->FIX_SERVER, incoming> (8=FIXT.1.19=6135=234=649=FIX_SERVER52=20150305-07:28:51.89956=FIXCLIENT7=116=010=124)
4

2 に答える 2

1

ログオン応答を待っているタイムアウトがあるようです。サーバーが応答を送信するのに、デフォルトのタイムアウトである 10 秒よりも長い時間がかかっている可能性があります。設定ファイルにLogonTimeoutを追加してみてください(または、既に存在する場合は値を増やしてください)。たとえば、LogonTimeout=60 を設定して、テストとして待機時間を 1 分に増やします。

LogonTimeout:切断する前にログオン応答を待機する秒数。詳細については、QuickFIX の設定リンクを参照してください。

于 2015-05-14T20:01:53.773 に答える