JBoss 6 から JBoss 7 にアップグレード中です。アプリケーションの性質上、顧客ごとに個別のデータベース インスタンスと、すべての顧客に共通のコア構成データベースがあります。多くの場合、少なくともコア データベースと個々の顧客のデータを 1 回の呼び出しで参照する EJB コードがあり、すべての顧客を通過するいくつかの一般的なバックグラウンド プロセスさえあります。
JBoss 6 では、メソッドに NOT_SUPPORTED トランザクション属性を設定することで問題なく処理されました。ただし、JBoss 7 では、これについて次のエラーが表示されます。
ARJUNA012140: 複数の最後のリソースを追加することは許可されていません。LastResourceRecord(XAOnePhaseResource(LocalXAResourceImpl@74bec54d[connectionListener=d3ce980 connectionManager=25b47a05 warned=false currentXid=< formatId=131077, gtrid_length=29, bqual_length=36, tx_uid=0:ffff0a2c28d1:-5a4c1=f9a:50468d1:-5a4c1=1,119c9) を追加しようとしています。 1、branch_uid=0:ffff0a2c28d1:-5a4c1f9a:504689c9:14、subordinatenodename=null、eis_name=不明な eis 名 >]))、しかし既に LastResourceRecord(XAOnePhaseResource(LocalXAResourceImpl@518d0191[connectionListener=1a05d94a connectionManager=135f1cfe warned=false currentXid=false current) を持っています) =< formatId=131077, gtrid_length=29, bqual_length=36, tx_uid=0:ffff0a2c28d1:-5a4c1f9a:504689c9:11, node_name=1, branch_uid=0:ffff0a2c28d1:-5a4c1f9a:504689c9:13, 下位ノード名=null, eis_name=null不明な EIS 名 >]))
異なるデータベースへのすべての呼び出しを個別の EJB 呼び出しとトランザクションにラップせずに、この問題を回避するにはどうすればよいでしょうか。EJB 呼び出しなどで JBoss トランザクション管理を実際にオフにする方法はありますか?
注: この質問は、追加の発見に基づいて報奨金が開始された後に変更され、特定の問題への焦点を絞り、除外された他の可能性を削除しました。