2

私は、1 つの MQ キューから複数のメッセージを取得し、メッセージ内に含まれるデータを処理してから、新しいメッセージを別の MQ キューに PUT するスタンドアロン Java アプリケーションに取り組んでいます。要件の 1 つは、GET 操作と PUT 操作が同じ作業単位内にあることでありMQGMO_SYNCPOINTMQGMO_SYNCPOINTget/put メッセージ オプションを指定することでこれを行うことができます。

Java MQ API を使用して行う方法が理解できないのは、MQCMIT および MQBACK 操作を実行して、MQ 作業単位を明示的にコミットまたはロールバックすることです。

IBM MQ InfoCenter の Web サイトと JavaDoc を検索しましたが、作業単位のコミットとロールバックに使用される API に関する情報が見つかりません。

私が使用している WebSphere MQ のバージョンは 7.5 で、バインド モードを使用してキュー マネージャーに接続しています。

Java MQ API を使用して MQ の作業単位を明示的にコミットまたはロールバックする方法を示すサンプル コードを提供したり、適切な JavaDoc ページの方向を示してくれる人はいますか?

4

2 に答える 2

5

基本的なフローは、トランザクションでメッセージを送信すると、コミットまたはロールバックが呼び出されるまでメッセージをバッファに保持します。コミットが実行されるとメッセージが送信され、それ以外の場合は破棄されます。

以下は、JMSAPIを使用している場合はWebSphereMQと同じであるJMSAPIを使用したNovellのサンプルです。

http://www.novell.com/documentation/extend52/Docs/help/MP/jms/tutorial/txSession-1.htm

更新: 以下は、Websphere MQ APIを使用してコミット/ロールバックするためのコードを含むStackOverflowに関する別の質問です:

java websphere MQ

于 2013-03-04T19:01:25.033 に答える
2

commit() のメソッドを使用しMQQueueManagerます。

于 2013-03-04T19:11:49.787 に答える