2013-04-09 76 views
2

我正在使用quickfixj,其中我使用Logout()方法发送修复消息的接受器“8 = FIX.4.29 = 8235 = 534 = 38749 = TEST152 = 20130409-08:01:47.86256 = TEST2 -1136558 =用户阻止10 = 231“给发起者,但是我可以看到Acceptor自己发送的心跳,我们该怎么过来呢?我正在使用下面的代码在Quickfixj中断开

 Logout oLogout = new Logout(); 
     quickfix.field.Text aText = new quickfix.field.Text("User Is Blocked"); 
     oLogout.set(aText); 
     Session.sendToTarget(oLogout, "TEST2-11365, "TEST1"); 

回答

3

您不应该像这样手动发送注销。注销是管理员信息;你应该相信引擎发送/接收所有管理消息类型。

正在发生的事情是,您要发送这封邮件引擎的控制逻辑之外。引擎将其视为任何其他传出的应用程序级消息,而不是启动引擎的内部关闭逻辑。

如果调用Acceptor.stop(),则发动机将启动其关机逻辑和发送注销你。

+1

我敢肯定,当你使用它sendToTarget将其作为一个应用程序消息(通过toApp),而不是一个管理信息(通过toAdmin) – robthewolf 2013-04-09 15:40:51

+0

是的,这是正确的。我试图在我的答案中得到这一点。我只是添加了一点改进,谢谢。 – 2013-04-09 15:43:25

+0

喜 首先感谢了很多快速回复。 @Grant Birchmeier如果认为另一个消息,然后如何去了解它,我有多个会话需要验证入站连接拒绝无效会话,然后终止会话怎么做才好呢? – Arvind 2013-04-10 05:05:54