2014-06-09 2 views
1

QuickFix/n 초 기자를 사용합니다. 내 브로커는 메시지 헤더의 잘못된 필드 순서 (태그)를 인용하여 로그온 메시지를 거부합니다. 34, 49, 52, 56 대신에 순서는 49, 56, 34, 52가되어야합니다.FIX 메시지의 필드 순서 변경

QuickFix/n은 메시지의 세 영역 (헤더, 본문, 예고편) 내의 다양한 필드를 자동으로 정렬하는 것처럼 보입니다. 태그 번호를 사용하여 세션에 메시지를 보냅니다.

수락 자에게 보낸 메시지의 필드 순서를 변경하는 방법이 있습니까? 정렬 동작을 방지 할 수있는 방법이 있습니까? (메시지에 그룹을 추가하거나 데이터 사전을 변경하면 작동하지 않습니다.)

또는 QuickFix/n에서는 불가능한 경우 메시지의 필드 순서를 변경할 수있는 FIX 엔진이 있습니까?

+1

나는 당신이 뭔가를 오해하고 있다고 확신합니다. FIX 프로토콜에서는 반복되는 그룹을 제외하고는 필드의 순서가 중요하지 않습니다. 이러한 필드는 모두 헤더에 있으므로 순서는 헤더 내에서 중요하지 않습니다 (먼저 오는 8,9,35 제외). ** 실제 오류 메시지는 무엇입니까? ** –

+0

예 부여하지만 올바른 그룹 (헤더, 본문 또는 예고편)에 추가해야합니다. 그렇지 않으면이 오류가 발생합니다! –

답변

1

이 오류는 일반적으로 메시지 본문에 헤더 필드를 넣으려고 할 때 발생합니다. 수동으로 세션에 추가하거나 세션 자체 (세션을 설정하기 위해 구성 파일을 사용할 경우 사용할 데이터 사전)에 isHeaderField (int tagNumber) 및 isTrailerField라는 함수가있는 경우 DataDictionary 객체가 제공됩니다 int tagNumber) 필드가 헤더 또는 트레일러에 있어야하는지 여부를 결정하는 데 도움이됩니다. 여러 상대방에 대한 다른 데이터 사전 파일은 헤더 필드를 메시지 본문 부분, 본문 필드를 헤더 또는 헤더 (가장 일반적으로) 사용자 지정 태그에 넣을 수 있습니다. 따라서 일반적으로 사용 가능한 기능을 사용하여 머리글, 본문, 예고편 또는 본문 내의 반복 그룹에 필드를 추가해야하는지 확인하는 것이 좋습니다. 이 질문은 로그온 메시지에 관한 내용이므로 해당 메시지 유형에 필드를 추가하는 것이므로 추후에 도움이되는 코드를보아야 할 수도 있습니다.

2

기본적으로 quickFix는 그룹의 태그를 오름차순으로 재정렬합니다. 주문을 유지하려면 here과 같이 빠른 수정 병을 재구성해야합니다.