目前本人再使用activemq作为两个工程之间的通讯方式,为了说明方便现假定为工程A与 工程B.现在工程A需要向 工程B发送请求并等待工程B的返回。工程B有两个q,一个是入q,一个是出q。在工程A中使用onmessage方法监听工程B的出q,在工程B中监听本工程的入q.目前的问题是在使用netstat -a或者 进入atcivemq的监控页面的connections页面时都会看到大量的没有被关掉的activemq连接,如果这种连接无限增长的话,activemq必然会挂掉。请问大家有没有好的解决方案,急用。

解决方案 »

  1.   

    QueueConnection queueConn = null;
    QueueSession queueSession = null;
    try {
       ....
    } finally {
      if (queueSession != null) {
        queueSession.close();
      }
      if (queueConn != null) {
        queueConn.close();
      }
    }
      

  2.   

    这样似乎有问题的,例如对于工程B的入Q,在工程A中如果把它给close的话,工程B中对与入Q的监控就会结束。而且几乎是再也不能换起来了。
      

  3.   

    还是考虑用webservice做异构系统的通讯吧
      

  4.   

    activemq连接可用吗?
    能否专门开一个线程来处理已经过期的 activemq连接呢?或者换成用webservice方式进行数据传递