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