1

我正在使用 quickfix messenger 代码连接到 FIX_SERVER。当我的客户端发送登录消息 (35=A) 时,服务器响应登录 (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 将等待时间增加到一分钟作为测试。

LogonTimeout:断开连接前等待登录响应的秒数。有关更多详细信息,请参阅配置 QuickFIX链接。

于 2015-05-14T20:01:53.773 回答
0

您的消息序列号未正确同步。Login 消息和 Logout 消息的消息序列号之间似乎有 10 的差异。

ResetOnLogon、ResetOnLogout、ResetOnDisconnect、RefreshOnLogon

这些是您的配置文件可用的 4 个标志。尝试使用它们。使用取决于您的具体情况,并且应该独立于其他人所做的事情。

于 2015-03-05T10:10:01.253 回答