270.7.2. 为 Producers 实施 InOut Exchanges

对于制作者,发送消息将阻止,直到收到回复或超时。在修复中,没有标准的方式来关联回复消息。因此,必须为每种类型的 InOut 交换定义关联条件。可使用 Exchange 属性指定关联条件和超时。

描述Key Stringkey Constant默认

关联标准

"CorrelationCriteria"

QuickfixjProducer.CORRELATION_CRITERIA_KEY

Milliseconds 中的关联超时

"CorrelationTimeout"

QuickfixjProducer.CORRELATION_TIMEOUT_KEY

1000

correlation 条件通过 MessagePredicate 对象定义。以下示例将来自指定会话的 FIX ExecutionReport,其中事务类型是 STATUS,Order ID 将与我们的请求匹配。会话 ID 应为 requestor,当查找回复时,发件人和目标 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)));