270.7.2. Producers를 위한 InOut Exchange 구현
생산자의 경우 응답이 수신되거나 시간 초과가 발생할 때까지 메시지를 전송하는 것이 차단됩니다. FIX에서 응답 메시지의 상관 관계를 유지할 수 있는 표준 방법은 없습니다. 따라서 각 유형의 InOut 교환에 대한 상관 관계 기준을 정의해야 합니다. 상관 관계 기준과 시간 제한은 Exchange 속성을 사용하여 지정할 수 있습니다.The correlation criteria and timeout can be specified using Exchange properties.
| 설명 | 키 문자열 | 주요 컨stant | 기본값 |
|---|---|---|---|
| 상관 관계 기준 | "CorrelationCriteria" | QuickfixjProducer.CORRELATION_CRITERIA_KEY | 없음 |
| 밀리초의 상관 시간 제한 | "CorrelationTimeout" | QuickfixjProducer.CORRELATION_TIMEOUT_KEY | 1000 |
상관 관계 조건은 MessagePredicate 오브젝트를 사용하여 정의됩니다. 다음 예제에서는 트랜잭션 유형이 STATUS이고 Order ID가 당사의 요청과 일치하는 지정된 세션에서 FIX ExecutionReport를 처리합니다. 세션 ID는 요청자의 경우 응답에서 보낸 사람 및 대상 CompID 필드가 반전됩니다.
exchange.setProperty(QuickfixjProducer.CORRELATION_CRITERIA_KEY,
new MessagePredicate(new SessionID(sessionID), MsgType.EXECUTION_REPORT)
.withField(ExecTransType.FIELD, Integer.toString(ExecTransType.STATUS))
.withField(OrderID.FIELD, request.getString(OrderID.FIELD)));