0

私の質問は次のとおりです。DB にクエリを実行し、いくつかのレコードを取得するサービスがあります。次に、その情報を使用して外部システムを更新し、最終的に DB を更新します。

spring trascations と weblogic jta transaction manager を使用して、以下のサンプル コードを使用してメッセージを失わないようにすることができました。

  1. レコードは取得されません。(これらは外部システムには必須です)
  2. 外部システム エラー
  3. DB の更新に失敗しました

したがって、上記のすべてのケースで、JMS リスナーはエラー メッセージをキューに戻します。

私の質問は、それを管理するために、Spring とそのすべての利点を使用するより良い方法はありますか? 以下のサンプル コードは明示的に RuntimeException をスローしますが、これは良い設計ではないと思います...

コメントをお願いします。

編集: キューは、その構成が以下に示されている submitListener MDP によってポーリングされています。メッセージが消費されると、サービスの registerDocument() が呼び出されます。(別のSpring Bean)。そのサービスは、DAO と外部システムを 2 回呼び出します。

4

1 に答える 1

1

コア Spring フレームワークのパターンについては、JmsTemplate およびメッセージ駆動型 POJO に関するSpring のドキュメントを確認してください。

Spring Integrationは、メッセージ指向のパターンに関連する高レベルの抽象化をモデル化します。

于 2013-03-05T15:11:08.357 に答える