1

MQ 7.0 キューをリッスンする JBoss 5.1 GA に MDB (mdbA) があります。受信後、メッセージは MySQL データベースに永続化されます。メッセージを別のキュー (queueB) に送信してから、mdbA でメッセージの処理を続行し、さらに挿入を行ってメッセージを HornetQ に送信したいと考えています。最初のメッセージはすべて正常に機能し、データベース、キュー B、および hornetQ にメッセージが表示されます。後続のすべてのメッセージで、「キュー B に送信」すると「MQRC_SYNCPOINT_NOT_AVAILABLE」エラー 2072 が発生します。

私の mdbA には次の注釈があります。@TransactionAttribute (TransactionAttributeType.REQUIRED) @Service

さらに情報を提供する必要がある場合はお知らせください。

誰か助けてくれませんか?

4

1 に答える 1

0

MDB 自体に @TransactionManagement(TransactionManagementType.BEAN) アノテーションが付けられた WebLogic での同様の問題を解決し、代わりに @TransactionManagement(TransactionManagementType.CONTAINER) を選択すると問題が解決され、メソッドにトランザクション属性がないため、デフォルトが必須になりました。

実際、健全な MDB は、トランザクションをコンテナーに委譲し、コードで明示的に制御しようとしない可能性があります。BEAN 管理タイプを使用し、トランザクション コンテキストを明示的に開かない場合、同期ポイントは利用できません...

于 2015-06-22T13:06:29.677 に答える