1

Tomcat 7で実行されているBitronix用に構成されたSpringJTAトランザクションマネージャーがあります。トランザクションマネージャーは正しく起動し、アプリケーションは正常に動作します。ただし、それを示すデバッグメッセージがたくさん表示されます

フォールバックJNDIロケーション[java:comp /TransactionManager]にJTATransactionManagerが見つかりませんフォールバックJNDIロケーション[java:pm /TransactionManager]にJTATransactionManagerが見つかりませんフォールバックJNDIロケーション[java:appserver/TransactionManager]にJTATransactionManagerが見つかりません

等..

これは既知のjndiロケーションをスキャンするJtaTransactionManagerであり、これはエラーではなくデバッグ例外であることを理解しています。以下は私のトランザクションマネージャーの構成です

<bean id="BitronixTransactionManager" factory-method="getTransactionManager" class="bitronix.tm.TransactionManagerServices" 
     destroy-method="shutdown" /> 

およびjtaトランザクションマネージャー

<bean id="transactionManager" class="org.springframework.transaction.jta.JtaTransactionManager">
<property name="autodetectTransactionManager" value="false"/>
<property name="transactionManager" ref="BitronixTransactionManager" />    
<property name="userTransaction" ref="BitronixTransactionManager" />

autodetectTransactionManagerの値をfalseに設定すると、このスキャンとその結果のデバッグ例外が防止されると思いましたが、この設定は効果がないようです。

また、transactionManagerの次のプロパティを使用してjndiの場所を設定してみました。

<property name="transactionManagerName" value="java:comp/TransactionManager"/>
<property name="userTransactionName" value="java:comp/UserTransaction"/> 

jta 1.1を使用していますが、TransactionSynchronizationRegistryに対して同じルックアップメッセージが表示されます。

DEBUG [main] JtaTransactionManager.findTransactionSynchronizationRegistry(146)| デフォルトのJNDIロケーション[java:comp/TransactionSynchronizationRegistry]にJTATransactionSynchronizationRegistryが見つかりません

Log4Jでこれを除外するだけでなく、これを本当に理解したいと思います。

4

1 に答える 1

0

おそらく問題は、Tomcat ではデフォルトの jndi の場所が java:comp/env にあることです。だからあなたはすべきです

<property name="transactionManagerName" value="java:comp/env/TransactionManager"/>
<property name="transactionSynchronizationRegistryName" value="java:comp/env/TransactionSynchronizationRegistry"/>
<property name="userTransactionName" value="java:comp/env/UserTransaction"/>
于 2013-07-23T16:12:34.663 に答える