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)));