2010-06-21 5 views
3

J'écris un client qui reçoit des messages d'une file d'attente MQ Websphere externe et les place dans une file d'attente MSMQ interne. Le client utilisera MQ Client ou, de préférence, sera purement géré (MQC.TRANSPORT_MQSERIES_MANAGED).Comment faire une transaction de Websphere MQ dans .NET?

Basé sur un example from IBM, j'ai une version en cours d'exécution qui peut faire un simple IBM.WMQ.MQQueue.Get (...). Comment cette opération peut-elle être effectuée dans une transaction? Je pense à utiliser des transactions non-XA.

Répondre

5

La validation monophasée WMQ est activée à l'aide de l'indicateur MQC.MQPMO_SYNCPOINT lors de l'écriture de messages ou de l'indicateur MQC.MQGMO_SYNCPOINT lors de l'obtention de messages. Pour terminer l'unité de travail, appelez la méthode Commit ou Backout de l'objet gestionnaire de files d'attente.

Référence: les méthodes Backout et Commit dans la section MQQueueManager du manuel.

Tant que vous utilisez du code managé, vous êtes limité à une validation en une phase. Si vous utilisez du code non géré en mode bindings (en utilisant la mémoire partagée pour parler à un QMgr local WMQ), vous pouvez utiliser XA. Dans ce cas, vous devez utiliser la méthode Begin.

Questions connexes