JPAで構成された複数のデータソースと1つのデータベースがあります。私は websphere 7 を使用しています。これらすべてのデータソースをグローバル トランザクションとして構成したいと考えています。以下のスプリング構成を使用していますが、トランザクションが期待どおりのグローバル トランザクションとして機能していません。1 つのデータベースが失敗した場合、他のデータベースがコミットされますが、これは単一のグローバル トランザクションとしては想定されていません。私が間違っているところを教えてください。
以下に id="us_icfs_datasource" で構成された 2 つのデータソースと、JPA を使用した別のデータソースがあります。
<jee:jndi-lookup id="entityManagerFactory" jndi-name="persistence/persistenceUnit"/>
<bean id="pabpp" class="org.springframework.orm.jpa.support.PersistenceAnnotationBeanPostProcessor"/>
<bean id="transactionManager" class="org.springframework.transaction.jta.JtaTransactionManager" />
<!-- Needed for @Transactional annotation -->
<tx:annotation-driven/>
<jee:jndi-lookup id="US_ICFS_DATASORCE"
jndi-name="jdbc/financing_tools_docgen_txtmgr"
cache="true"
resource-ref="true"
proxy-interface="javax.sql.DataSource" />
また、web.xmlに以下のコードを追加しました
<persistence-unit-ref>
<persistence-unit-ref-name>persistence/persistenceUnit</persistence-unit-ref-name>
<persistence-unit-name>persistenceUnit</persistence-unit-name>
</persistence-unit-ref>
<persistence-context-ref>
<persistence-context-ref-name>persistence/persistenceUnit</persistence-context-ref-name>
<persistence-unit-name>persistenceUnit</persistence-unit-name>
</persistence-context-ref>
以下は、トランザクションを使用している私のコードです
> @Transactional public TemplateMapping addTemplateMapping(User user,
> TemplateMapping templateMapping) throws
> TemplateMappingServiceException { .... }