C# Websphere MQ-MQQueueManager,在每次连接后保持其打开或关闭
我有一个连接到WebSphereMQ的C#应用程序 基本上:C# Websphere MQ-MQQueueManager,在每次连接后保持其打开或关闭,c#,ibm-mq,C#,Ibm Mq,我有一个连接到WebSphereMQ的C#应用程序 基本上: MQEnvironment.Hostname = HostName; MQEnvironment.Channel = Channel; MQEnvironment.Port = Port; MQQueueManager queueManager = new MQQueueManager(QueueManagerName); using (MQQueue putQueue = queueManager.AccessQueue
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方法。不要将实例保留到应用程序结束 类似地,对于队列,打开队列一次并继续放置/获取消息,一旦完成任务,关闭队列
阅读本文ob MQ最佳实践:我将MqManager实现为单例,并且没有任何问题。您的问题与性能相关还是其他问题?不,我没有性能问题。我只是想知道最佳实践是什么。除了连接池之外,在为每个请求线程创建新连接/MQQueueManager时,还有其他提高性能的方法吗?我必须与seceral队列管理器建立多个连接。对象
MQQueue
的最佳实践是什么。在整个应用程序生命周期中设置并保持连接为单例,并在应用程序关闭时处理连接?