【发布时间】:2011-05-22 13:55:48
【问题描述】:
我们正在使用 IBM 的 WebSphere MQ 的 .NET API。
创建 MQQueueManager 对象显然是一项昂贵的操作,因此我们缓存并重用这些对象的池。
目前,对于每个请求,我们都会访问所需的队列:
//obtain queueManager from pool
IBM.WMQ.MQQueue requestQ= queueManager.AccessQueue(requestQName, mqOptions);
IBM.WMQ.MQQueue responseQ= queueManager.AccessQueue(responseQName, mqOptions);
完成后关闭它们:
requestQ.Close();
responseQ.Close();
这是最佳实践,还是我们也应该池化和重用 MQQueue 对象(除了队列管理器)? AccessQueue() 似乎是客户端上的廉价操作。
【问题讨论】: