Мы используем .NET API для IBM WebSphere MQ.Повторное использование объекта IBM.WMQ.MQQueue
Создание объекта 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() кажется дешевой операцией на клиенте.
Ну, вы говорите «соединение», что вы имеете в виду? Я вижу, что документы IBM также ссылаются на него, но поскольку я думаю, что я подключен * к QueueManager, я действительно не понимаю, нужно ли мне создавать новый QM для каждого потока (кэширование) или нет. – 2016-10-28 16:15:30