EJB 3.0 で 1 つのステートレス セッション Bean から 2 つのデータベースにアクセスしたいと考えています。2 つのデータベースと通信するために、2 つのエンティティ マネージャーを宣言したセッション Bean を作成しました。エンティティ マネージャーは、ステートレス セッション Bean で次のように定義されます。
@PersistenceContext (unitName="abc") private EntityManager manager;
@PersistenceContext (unitName="xyz") private EntityManager manager1;
最初のエンティティ マネージャーを使用して 1 つのデータベースからデータを取得し、それを 2 番目のエンティティ マネージャーを使用して 2 番目のデータベースに挿入します。私の問題は、両方のエンティティマネージャーを宣言できるが、両方を同時に使用できないことです。それらのいずれかを使用してコメントアウトする必要があります。そうしないと、次の例外が発生します。
Caused by: org.hibernate.exception.GenericJDBCException: Cannot open connection
Caused by: org.jboss.util.NestedSQLException: Could not enlist in transaction on
entering meta-aware object!;
- nested throwable:" "Caused by:
org.jboss.resource.JBossResourceException: Could not enlist in transaction on entering meta-aware object"
"Caused by: javax.transaction.SystemException: java.lang.Throwable:"