gpt4 book ai didi

jpos - jpos 客户端中的连接超时

转载 作者:行者123 更新时间:2023-12-04 15:57:27 25 4
gpt4 key购买 nike

我正在使用 jpos 客户端(在 java Spring MVC 程序的类中)连接基于 ISO8585 的服务器,但是由于某种原因服务器无法响应,因此我的程序一直在等待响应并导致挂我的程序。那么实现连接超时的正确方法是什么?
我的客户端程序如下所示:

public FieldsModal sendFundTransfer(FieldsModal field){
try {
JposLogger logger = new JposLogger(ISO_LOG_LOCATION);
org.jpos.iso.ISOPackager customPackager = new GenericPackager(ISO_PACKAGER);
ISOChannel channel = new PostChannel(ISO_SERVER_IP, Integer.parseInt(ISO_SERVER_PORT), customPackager);// live
logger.jposlogconfig(channel);
channel.connect();

log4j.info("Connection established using PostChannel");

ISOMsg m = new ISOMsg();
m.set(0, field.getMti());
//m.set(2, field.getField2());
m.set(3, field.getField3());
m.set(4, field.getField4());
m.set(11, field.getField11());
m.set(12, field.getField12());
m.set(17, field.getField17());
m.set(24, field.getField24());
m.set(32, field.getField32());
m.set(34, field.getField34());
m.set(41, field.getField41());
m.set(43, field.getField43());
m.set(46, field.getField46());
m.set(49, field.getField49());
m.set(102,field.getField102());
m.set(103,field.getField103());
m.set(123, field.getField123());
m.set(125, field.getField125());
m.set(126, field.getField126());
m.set(127, field.getField127());

m.setPackager(customPackager);
System.out.println(ISOUtil.hexdump(m.pack()));
channel.send(m);
log4j.info("Message has been send");

ISOMsg r = channel.receive();
r.setPackager(customPackager);
System.out.println(ISOUtil.hexdump(r.pack()));

channel.disconnect();

}catch (Exception err) {
System.out.println("sendFundTransfer : " + err);

}
return field;
}

最佳答案

真有道将使用 Q2。鉴于您不需要持久连接,您只需为 channel 设置超时。

PostChannel channel = new PostChannel(ISO_SERVER_IP, Integer.parseInt(ISO_SERVER_PORT), customPackager);// live
channel.setTimeout(timeout); //timeout in millies.

这样,如果在 timeout 指定的时间内没有任何事情发生, channel 将自动断开连接,并且您对接收的调用将引发异常。

另一种方法是使用 Q2 和多路复用器(请参阅 QMUX ,您需要为此运行 Q2ISOMUX ,后者已被弃用)。

关于jpos - jpos 客户端中的连接超时,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51279790/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com