しばらく取り組んできたアプリケーションで一般的に使用されるパターンに名前を付けるのに苦労しています。簡単に言うと、これはメッセージング (JMS) を多用し、リレーショナル データベース (JDBC) にデータを保持し、アプリケーション サーバー (JTA) によって管理されるグローバル トランザクション (XA) に依存する Java EE アプリケーションです。
私が話しているパターンは、次のように説明できます。
- JTA トランザクション マネージャーを使用して XA トランザクションを開始する
- JMS を使用してキューからメッセージを受信する
- データベース テーブル (JDBS) を更新し、他のメッセージをキュー (JMS) に送信するビジネス ロジックを実行して、メッセージを処理します。すべての操作が進行中のトランザクション (作業単位) に参加していることが重要です。
- 最後に、必要に応じてメッセージを送り返すか、転送を要求します。
キャッチされない例外の場合、進行中の作業単位がロールバックされ、プロセスをトリガーした元のメッセージが再配信のためにキューに戻されます。
では、問題は、そのようなパターンにどのように名前を付けるかです。残念ながら、私はそのようなパターンにふさわしい名前を知りませんが、そのパターンがすでに適切な名前になっていても驚かないでしょう。