سؤال

نقوم بتكوين معاملة الربيع الخاصة بنا في تكوين الربيع على النحو التالي:

<tx:jta-transaction-manager/>

جمع هذا يعني أن الربيع سوف يكتشف تلقائيًا تطبيق JTA الأساسي. لذلك عندما نبدأ JBOSS نرى هذه الرسائل أثناء البحث في الربيع:

[JtaTransactionManager] [ ] No JTA TransactionManager found at fallback JNDI location [java:comp/Tran
sactionManager]
javax.naming.NameNotFoundException: TransactionManager not bound
<<Big stack trace>>    
<<More of the same>>

ثم انظر في النهاية:

[JtaTransactionManager] [ ] JTA TransactionManager found at fallback JNDI location [java:/Transaction
Manager]
[JtaTransactionManager] [ ] Using JTA UserTransaction: org.jboss.tm.usertx.client.ServerVMClientUserT
ransaction@1f78dde

السؤال هو - كيف يمكننا تحريرنا <tx:jta-transaction-manager/> علامة لتكوين صراحة java:/Transaction Manager تنفيذ JTA لذلك نتجنب كل آثار المكدس هذه في السجلات؟ (أفضل عدم تغيير مستويات تسجيل Log4J)


تحديث: أنا محل <tx:jta-transaction-manager/> مع التكوين أدناه ويبدو أنه يعمل .. أعتقد أن هذا بخير؟

<bean id="transactionManager" class="org.springframework.transaction.jta.JtaTransactionManager">
    <property name="transactionManagerName" value="java:/TransactionManager"/>
</bean>
هل كانت مفيدة؟

المحلول

نعم ، هذا جيد. كان تتبع المكدس الذي تراه على ما يرام أيضًا: <tx:jta-transaction-manager/> يحاول الحصول على مدير المعاملات من عدد من المواقع القياسية المختلفة ؛ لكل بحث فاشل JNDI ، سترى javax.naming.NameNotFoundException.

java:/TransactionManager هو المكان الذي يرتبط فيه JBoss افتراضيًا ؛ سوف حاويات servlet الأخرى افتراضيا java:/comp/TransactionManager, ، الذي أعتقد أنه من المفترض أن يكون الموقع "القياسي" لـ TM.

من الوثائق المرجعية الربيع:

للحصول على السيناريوهات القياسية ، بما في ذلك WebLogic و WebSphere و OC4J ، فكر في استخدام الملاءمة <tx:jta-transaction-manager/>عنصر التكوين. سيؤدي ذلك إلى اكتشاف الخادم الأساسي تلقائيًا واختيار أفضل مدير معاملات متاح للمنصة. هذا يعني أنك لن تضطر إلى تكوين فئات المحول الخاصة بالخادم (كما تمت مناقشته في الأقسام التالية) بشكل صريح ؛ سوف يتم اختيارهم تلقائيًا ، مع المعيار JtaTransactionManager كما الافتراضي.

نصائح أخرى

"خطأ" شائع هو تجميع أشياء مثل jta.jar و/أو jbossall-client.jar في مكون J2EE الذي تنشره. تحقق مزدوجًا من فضلك وإزالتها إذا كان هذا هو الحال.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top