私はBMTを使って豆を食べています。BMT を使用する別の Bean が最初の Bean に注入されます。最初のメソッドが 2 番目のメソッドを呼び出すと、突然トランザクションが閉じられます。私のコードでは、メソッド呼び出しの前とその内部に正確に絞り込みました。
トレースは次のとおりです。
2018-11-23 12:15:32,275 +0100 [TRACE] [com.arjuna.ats.jta] (デフォルト タスク 18) TransactionImple.getStatus: javax.transaction.Status.STATUS_ACTIVE
2018-11-23 12:15:32,276 +0100 [TRACE] [com.arjuna.ats.jta] (デフォルトのタスク-18) TransactionImpleManager.suspend
2018-11-23 12:15:32,277 +0100 [TRACE] [com.arjuna.ats.jta] (デフォルト タスク 18) TransactionSynchronizationRegistryImple.getTransactionKey
コード例:
@Stateless
@TransactionManagement(TransactionManagementType.BEAN)
public class A{
@Inject
private B b;
@Inject
private UserTransaction trx;
public void foo(){
trx.begin();
//transaction is active
b.bar();
trx.commit();
}
}
@Stateless
@TransactionManagement(TransactionManagementType.BEAN)
public class B{
public void bar(){
//transaction is closed
//whatever
}
}
JBoss EAP 7.0.9 で発生します。
私はこの星座をたくさんの場所に持っていますが、ここだけ壊れています。基本的なものが欠けていますか?追加の手がかりはどこで探すことができますか?