3

私は、外部のWebsphere MQキューからメッセージを受信し、それらを内部のMSMQキューに配置するクライアントを作成しています。クライアントはMQクライアントを使用するか、できれば純粋に管理されます(MQC.TRANSPORT_MQSERIES_MANAGED)。

IBMの例に基づいて、単純なIBM.WMQ.MQQueue.Get(…)を実行できるバージョンを稼働させています。この操作はトランザクション内でどのように実行できますか?XA以外のトランザクションを使用することを考えています。

4

1 に答える 1

5

WMQ 単一フェーズ コミットは、メッセージを送信するときに MQC.MQPMO_SYNCPOINT フラグを使用するか、メッセージを取得するときに MQC.MQGMO_SYNCPOINT フラグを使用して有効にします。作業単位を完了するには、キュー マネージャー オブジェクトの Commit または Backout メソッドを呼び出します。

参照: マニュアルのMQQueueManagerセクションの Backout および Commit メソッド。

マネージ コードを使用している限り、1 フェーズ コミットに制限されます。バインディング モードでアンマネージ コードを使用する場合 (ローカル WMQ QMgr と通信するために共有メモリを使用する場合)、XA を使用できます。その場合、Begin メソッドを使用する必要があります。

于 2010-06-21T15:03:02.197 に答える