1

メッセージをバッチで処理する必要があります。たとえば、10です。10トランザクション(またはタイムアウトが経過)後、10トランザクションすべてに対して1つのコミットがあり、例外が発生した場合は、10メッセージすべてがロールバックされて再配信されます。

私たちのアプリケーションはWeblogic11gで実行され、この機能はweblogic MDB(jmsメッセージのバッチ処理http://docs.oracle.com/cd/E13222_01/wls/docs90/bridge/tuning.html)を使用して存在することを知っています。

アプリケーションではSpringに大きく依存しており、さまざまな理由でEJBを使用したくありません。スプリングMDPを使用してこれを実現する方法はありますか?それとも、そうなるツールはありますか?

4

1 に答える 1

0

これを自分で実装するのは大したことではありません。私は実際に昨日それをしました(ただし、C#ではまだJMSに反対していました)

そのため、直接的な回答はできませんが、同じ要件を実装した経験についてお話しすることができます

私が遭遇した 1 つの落とし穴は、キューで複数のコンシューマーを実行していて (それぞれがバッチ処理を提供)、キューでのプリフェッチにより、JMS ブローカーがコンシューマーへのメッセージの配信をラウンド ロビン方式で行っていたことです。

これは完全に許容できる動作ですが、バッチ処理の考え方に反するようなものです。私は最終的に、誰が消費しているかを調整し、さらに重要なことにプリフェッチをオフにするために、消費者全体に独自の同期メカニズムを展開しました。

于 2012-03-21T15:03:12.680 に答える