ISO服务器如何支持并发请求?

时间:2012-11-02 07:46:56

标签: jpos

我已经使用ASCII通道和ASCII打包器实现了ISO SERVER,并在端口上侦听并响应ISO请求。

如何让我的服务器接受并发请求并发送响应。

2 个答案:

答案 0 :(得分:0)

ISOServer适用于线程池,因此您可以接受开箱即用的并发请求。每个套接字连接都由自己的线程处理。因此,我认为您所要做的就是为ISORequestListener分配一个ISOServer来实际处理您收到的消息。

这是一个来自jPOS指南的测试程序:

  public class Test implements ISORequestListener {
    public Test () {
      super();
    }

    public boolean process (ISOSource source, ISOMsg m) {
       try {
           m.setResponseMTI ();
           m.set (39, "00");
           source.send (m);
       } catch (ISOException e) {
           e.printStackTrace();
       } catch (IOException e) {
           e.printStackTrace();
       }
       return true;
    }

    public static void main (String[] args) throws Exception {
        Logger logger = new Logger ();
        logger.addListener (new SimpleLogListener (System.out));
        ServerChannel channel = new XMLChannel (new XMLPackager());
        ((LogSource)channel).setLogger (logger, "channel");
        ISOServer server = new ISOServer (8000, channel, null);
        server.setLogger (logger, "server");
        server.addISORequestListener (new Test ());

        new Thread (server).start ();

    }
}

答案 1 :(得分:0)

如果您使用的是Q2,只需部署QServer并设置minSessions和maxSessions,其默认值为0和100。 这里是处理concurent请求的示例jPOS服务器: http://didikhari.web.id/java/jpos-client-receive-response-specific-port/