2012-01-05 2 views
1

Acceptor FIX 엔진에 주문을 제출하려면 QuickFix/J (FIX 4.2) 작업 중입니다. 내가 처음 수용체와의 연결을 설정하려고하면QuickFix 시퀀스 재설정이 작동하지 않습니다.

  1. 는 수용체는 "메시지 서열 없음 너무 낮은"말을하지 않는 초기 로그온 요청을 거부 : 기본적으로 나는 두 개의 계정에 도움이 필요합니다. 이 후 나의 개시자는 나가는 순서 번호를 1 씩 증가시키고이 seq no. 그리고 아니오. 수락 엔진 일치에 의해 예기되는, 나는 안정되어있는 연결을 얻는다. 이 프로세스를 가속화하기 위해 예상되는 seq을 추출하기 시작했습니다. 아니. 수락 자 엔진에 의해 보내지는 거부 메시지에서 나가고 나가는 시퀀스 번호를 변경했습니다. 내 엔진 사용시

    session.setNextTargetMsgSeqNum(expectedSeqNo). 
    

    그러나 나중에 엔진이 들어오는 시퀀스 번호를 찾습니다. 예상보다 높은 경우 재전송 요청을 보냅니다. 이에 응답하여 상대방은 Sequence Reset msg (35 = 4, 123 = Y)를 되돌려 보냅니다. 이제이 msg를 수신 한 후 들어오는 seq no. 내 엔진은 Seq Reset msg에서받은 엔진으로 자동 설정되어야합니다. 그러나 이것은 일어나지 않으며 내 엔진은 들어오는 seq no에서 메시지를 다시 보내 달라는 요청을 계속합니다. 흥미로운 점은, 나가는 segg no를 처음부터 (setNextTargetMsgSeqNum을 사용하여) 변경하지 않을 때이 기능이 작동한다는 것을 알았습니다.

    시퀀스 리셋 메시지가 나타날 때 내 엔진이 예상 된 동작을 보이지 않는 이유는 무엇입니까?

  2. 상대방과 대화를 나눴으며 해당 구성에서 ResetOnLogon = Y를 가지지 않습니다. 그래서 내 엔진이 올 때마다 seq no로 Logon 요청을 보냅니다. 예상보다 낮습니다 (1에서 시작). 연결을 신속하게 설정하는 더 좋은 방법이 있습니까? 마찬가지로 나는 어떻게해서든지 내 엔진이 시퀀스 번호를 사용하도록 만들 수있다. 그냥 내려 가기 전에 요점에서 재개? 이상적인 접근 방식은 무엇이되어야합니까?

그래서 이제는 일련 번호를 처리하는 파일에 메시지를 보관하고 있습니다. 그러나 다시 문제가되는 것은 quickfix 초기 엔진이 시퀀스 재설정 메시지에 응답하지 않는다는 것입니다. 관리자 콜백이 전혀 없습니다.

한 서버에서 수락 자에게 연결 한 다음 해당 세션을 닫고 다른 서버를 사용하여 수락 자에 연결하고 동일한 세션 ID를 사용하면 거의 언제나 시퀀스 재설정 메시지에 아무런 반응이 없음을 알 수 있습니다 . 로그온이 승인되면 정상적으로 작동 할 것으로 기대됩니다. 그러나 다른 엔진이 특정 번호 (기본적으로 갭 채우기)로 시퀀스 재설정을 보내지 만 내 수정 엔진이 이에 응답하지 않습니다. 즉, 예상 시퀀스 번호를 재설정하지 않고 수신자에게 재전송 요청을 계속 보냅니다. 어떤 도움이라도 대단히 감사하겠습니다!

답변

9

정상적인 FIX 세션 사용의 경우 세션 시작 및 종료 시간을 구성하고 엔진에 시퀀스 번호를 관리하게합니다. 예를 들어 세션이 오전 8 시부 터 오후 4시 30 분까지 활성화 된 경우 QuickFIX/J는 엔진이 오전 8시 이후에 처음 시작될 때 자동으로 발신 및 수신 일련 번호를 1로 재설정합니다 (또는 8시 : 엔진이 그 시간에 이미 시작 되었다면 오전 00시).

(질문 1). 시퀀스 리셋 후에 엔진이 새로운 수신 시퀀스 번호를 사용해야한다는 것이 맞습니다. 수천 명의 QuickFIX/J 사용자가 올바르게 작동한다고 가정하면, 그 행동을 변화시킬 수있는 일에 대해 생각해보십시오. 예를 들어 관리자 메시지 콜백이 있고 예외를 던질 수 있습니다. 거기에 힌트가 있는지 로그 파일을 보셨습니까?

(질문 # 2). 영구적 인 MessageStore (FileStore, JdbcStore 등)를 사용하는 경우) 다시 시작하면 나가는 일련 번호를 사용할 수 있습니다.

+0

감사합니다. 귀하의 회신은 많은 도움이되었습니다. 실제로 콜백 예외가있었습니다! 또한 영구 MessageStore에 대한 귀하의 지침도 유용합니다. – Leo

+0

잘 됐네, 듣고 기뻐. 대답을 수락 하시겠습니까? :-) –

+0

예. 명확히! – Leo

관련 문제