Websphere MQ - MQQueueManager,在每次连接后保持打开或关闭

Websphere MQ - MQQueueManager, keep it open or close after every connection

我有一个连接到 Websphere MQ 的 C# 应用程序。

基本上:

 MQEnvironment.Hostname = HostName;
 MQEnvironment.Channel = Channel;
 MQEnvironment.Port = Port;
 MQQueueManager queueManager = new MQQueueManager(QueueManagerName);

 using (MQQueue putQueue = queueManager.AccessQueue(putQueueName, MQC.MQOO_OUTPUT))
 { 
 }

我的问题是:我是否应该为整个应用程序只创建一个 MQQueueManager 实例并在每次我想放置消息或为每次调用创建新的 MQQueueManager 对象(连接)时重用它?

除非您正在共享连接,否则请为每个线程创建一次 MQQueueManager 实例并根据需要保留它,在您的工作完成后调用 Disconnect 方法。不要将实例保留到应用程序结束。

与队列类似,打开队列一次并保留 putting/getting 消息,一旦工作完成,关闭队列。

阅读这篇关于 MQ 最佳实践的文章:http://www.ibm.com/developerworks/websphere/library/techarticles/0807_hsieh/0807_hsieh.html