处理IBM MQ客户机/服务器中的连接

本文关键字:连接 服务器 IBM MQ 客户机 处理 | 更新日期: 2023-09-27 18:09:25

我是IBM MQ的新手,我的队列管理器使用tcp通道连接,tcp连接大量增加,这是我使用的代码。如何以可重用的方式处理通道内的连接?

我正在使用7.5 MQ客户机,与6.0.5.2 MQ远程服务器通信。我正确地关闭了连接,但是当我运行netstat时,它说tcp连接处于time_wait状态。这些连接/套接字泄漏?

MQQueue mqQueue = null; 
MQQueueManager mqQMgr=null;  
try
{
  //Create connection to queue manager
   mqQMgr = new MQQueueManager("Queue Manager name", properties);
  //Access the queue
    mqQueue = mqQMgr.AccessQueue(QueueName, MQC.MQOO_FAIL_IF_QUIESCING | MQC.MQOO_INPUT_SHARED | MQC.MQOO_BROWSE);
   for(int i=1;i<2000;i++)
  {
    //read the messages
    mqMsg=new MQMessage();
    mqQueue.Get(mqMsg);
  }
}
catch(MQException mqe)
{  
  //If no messages in the queue , break. (if not, catch any error)
}
finally
{
     mqQueue.Close(); //Close the MQ Queue
     mqQMgr.Disconnect(); //Disconnect the MQ Manager
}

当我运行netstat时,它显示

TCP x.x.x.x:59092    x.x.x.x:1400  TIME_WAIT 
TCP x.x.x.x:59093    x.x.x.x:1400  TIME_WAIT
TCP x.x.x.x:59094    x.x.x.x:1400  TIME_WAIT
TCP x.x.x.x:59095    x.x.x.x:1400  TIME_WAIT
TCP x.x.x.x:59096    x.x.x.x:1400  TIME_WAIT
TCP x.x.x.x:59097    x.x.x.x:1400  TIME_WAIT
TCP x.x.x.x:59098    x.x.x.x:1400  TIME_WAIT
TCP x.x.x.x:59099    x.x.x.x:1400  TIME_WAIT

处理IBM MQ客户机/服务器中的连接

这不是泄漏。套接字关闭后进入TIME_WAIT状态。套接字处于TIME_WAIT状态的时间较长是正常的,大约为4分钟,具体取决于操作系统。