0

Fuse ESB、JMS、および JDBC を使用して、次のシナリオをサポートできますか?

オーケストレーション コンポーネントから、次のことができるようにしたいと考えています。

  1. 取引を開始する
  2. メッセージをリモート キューに送信し、これをこのトランザクションに参加させる
  3. 同じトランザクション内で JDBC 接続を使用して、リモート キューのメッセージ ハンドラをこのトランザクションに参加させる
  4. オーケストレーション コンポーネントに同期的に戻り、別のリモート キューとメッセージ ハンドラーで同じことを行う
  5. もう一度同期的に戻り、2 つの JDBC トランザクションをコミットするか、ロールバックします。

これは同期キューを使用した場合にのみ可能であり、XA トランザクションが必要になると思いますが、元のトランザクションでキューと jdbc 接続を登録するメカニズムについてはよくわかりません。

4

1 に答える 1

0

それは可能ですが、あなたはおそらく傷の世界にいるでしょう:)

Java Transaction Serviceを使用すると、理論的には可能であると言わざるを得ません。これは標準の JTA トランザクション マネージャーとは少し異なり、IIOPを使用してトランザクション コンテキストをリモート参加者に伝達します。

JBossJTSを見てください。セットアップはそれほど難しくなく、十分に文書化されています。

しかし、あなたが概説したことについては、これを行うためのより良い方法を探すことを強くお勧めします. これは複雑であり、ほぼ確実に、ベンダー (リソース マネージャーなど) がトランザクション マネージャーや相互に適切に動作するように取り組まなければなりません。

于 2013-06-26T13:50:04.500 に答える