2013-04-09 5 views
2

logfix() 메소드를 사용하여 수정 메시지를 보내는 수신자가있는 quickfixj를 사용하고 있습니다 "8 = FIX.4.29 = 8235 = 534 = 38749 = TEST152 = 20130409-08 : 01 : 47.86256 = TEST2 -1136558 = 사용자가 Blocked10 = 231 "을 개시 자에게 보냈지 만 수락 자 자체로부터 하트 비트가 전송 된 것을 볼 수 있습니다. 아래 코드를 사용하고 있습니다.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()을 호출하면 엔진이 종료 논리를 시작하고 Logout을 전송합니다.

+1

sendToTarget을 사용할 때 (toApp를 통해) 응용 프로그램 메시지로 보내고 (toAdmin을 통해) 관리 메시지가 아닌 것은 확실합니다. – robthewolf

+0

네, 맞습니다. 나는 그 대답을 얻기 위해 노력하고 있었다. 방금 개선하기 위해 조금 추가했습니다. 감사합니다. –

+0

안녕 우선 빠른 답장을 보내 주셔서 감사합니다. @Grant Birchmeier는 다른 메시지로 간주하고 그것에 대해 어떻게 생각하는지, 여러 세션에서 들어오는 연결의 유효성을 검사해야하며 유효하지 않은 세션을 거부 한 다음 세션을 종료합니다. 어떻게 처리할까요? – Arvind