270.7.2. 为 Producers 实施 InOut Exchanges
对于制作者,发送消息将阻止,直到收到回复或超时。在修复中,没有标准的方式来关联回复消息。因此,必须为每种类型的 InOut 交换定义关联条件。可使用 Exchange
属性指定关联条件和超时。
描述 | Key String | key 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)));