1

これがシナリオです。ちなみに、Java中心の回答を探しています。

  1. クライアント コードは、プロバイダー アプリケーション #1 から REST サービス A (POST) を呼び出します。
  2. クライアント コードは、JDBC を使用して内部データベースを直接更新します。
  3. クライアント コードは、プロバイダー アプリケーション #2 から REST サービス B (POST) を呼び出します。
  4. ステップ 1 から 3 は、2 フェーズ コミットをサポートする分散トランザクションで実行する必要があります。つまり、ステップ 2 のデータベースの更新が失敗した場合、ステップ 1 の POST を元に戻す必要があります。ステップ 3 の POST が失敗した場合、ステップ 1 の POST とステップ 2 のデータベース更新を元に戻したいと考えています。

独自の補正コードを記述せずに (ステップ 1 と 2 を元に戻すため)、JTA を使用してこれを達成する方法はありますか?

4

1 に答える 1

2

各参加者が個別に 2 フェーズ コミットをサポートしない限り、分散トランザクションを調整または管理することはできません。

この場合、REST サービスがトランザクションの 2 つのフェーズに相当する 2 つのメソッドをサポートしていれば、クライアントにトランザクション マネージャーを実装できたはずです。

于 2012-12-04T12:14:20.487 に答える