jpos QMUX 是否支持限制并发 ISO 请求的数量?
Do jpos QMUX supports limiting number of concurrent ISO request?
我更新了我的旧 spring/java 应用程序,它将事务推送到远程 ISO 服务器(一家银行)。使用经典方法 (channel.seng(isoMsg)) 通过同步方法,因为发送多个通过同一通道的 ISO 请求很难映射请求和响应。由于每个事务需要 5 秒才能从远程服务器接收响应,因此过去有太多事务留在队列中。因此,它达到了所有即将到来的交易都会超时的地步。为了摆脱这个问题,我开始实施 QMUX。系统现已上线。
现在我的问题是,如果已经有 50 笔交易未收到响应或超时,银行告诉我不要发送交易。
所以,现在我需要配置 MUX 框架,以便一旦系统等待 50 个响应,框架应该停止发送并应该在我这边排队,当它收到 1 个响应时,它可以再次发送一个事务到保持等待响应的总数小于或等于 50。
我如何使用 jpos QMUX 实现此目的?
您可以在通道级别使用 org.jpos.iso.filter.ThroughtputControlFilter
[1],但不能在 MUX 级别使用。在调用 MUX 之前,您可以从它的实现中挑选一些想法在您的代码中处理它们。
你也可以使用信号量。
[1] http://jpos.org/doc/javadoc/org/jpos/iso/filter/ThroughputControlFilter.html
我更新了我的旧 spring/java 应用程序,它将事务推送到远程 ISO 服务器(一家银行)。使用经典方法 (channel.seng(isoMsg)) 通过同步方法,因为发送多个通过同一通道的 ISO 请求很难映射请求和响应。由于每个事务需要 5 秒才能从远程服务器接收响应,因此过去有太多事务留在队列中。因此,它达到了所有即将到来的交易都会超时的地步。为了摆脱这个问题,我开始实施 QMUX。系统现已上线。
现在我的问题是,如果已经有 50 笔交易未收到响应或超时,银行告诉我不要发送交易。
所以,现在我需要配置 MUX 框架,以便一旦系统等待 50 个响应,框架应该停止发送并应该在我这边排队,当它收到 1 个响应时,它可以再次发送一个事务到保持等待响应的总数小于或等于 50。 我如何使用 jpos QMUX 实现此目的?
您可以在通道级别使用 org.jpos.iso.filter.ThroughtputControlFilter
[1],但不能在 MUX 级别使用。在调用 MUX 之前,您可以从它的实现中挑选一些想法在您的代码中处理它们。
你也可以使用信号量。
[1] http://jpos.org/doc/javadoc/org/jpos/iso/filter/ThroughputControlFilter.html