我们正在使用.NET API来访问IBM的WebSphere MQ。
创建MQQueueManager对象显然是一项昂贵的操作,因此我们缓存并重复使用这些对象的池。
目前,对于每个请求,我们都会访问所需的队列:
创建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()似乎是一项廉价的操作。