Nous utilisons l'API .NET pour IBM WebSphere MQ.Réutilisation de l'objet IBM.WMQ.MQQueue
La création de l'objet MQQueueManager étant clairement une opération coûteuse, nous mettons en cache et réutilisons un pool de ces objets.
Actuellement, pour chaque demande, nous avons accès aux files d'attente requises:
//obtain queueManager from pool
IBM.WMQ.MQQueue requestQ= queueManager.AccessQueue(requestQName, mqOptions);
IBM.WMQ.MQQueue responseQ= queueManager.AccessQueue(responseQName, mqOptions);
et les fermer une fois fait:
requestQ.Close();
responseQ.Close();
Est-ce la meilleure pratique, ou devrions-nous être mise en commun aussi et la réutilisation de la Des objets MQQueue (en plus du gestionnaire de files d'attente)? AccessQueue() semble être une opération bon marché sur le client.
Eh bien, vous dites "connexion", que voulez-vous dire? Je vois que les docs IBM s'y réfèrent aussi, mais comme je pense que je suis * connecté * à un QueueManager, je ne comprends pas vraiment si j'ai besoin de créer un nouveau QM pour chaque thread (le mettre en cache) ou non. –
https://docs.oracle.com/javaee/7/api/javax/jms/Connection.html –