मैं jboss पर चल रहे एक स्प्रिंग वेब अनुप्रयोग है कि वर्तमान में डाटाबेस लेनदेन और jms के लिए JmsTransactionManager के लिए HibernateTransactionManager उपयोग करने के लिए कॉन्फ़िगर किया गया है है। जेएमएस के लिए हम ऊंट और एक्टिवएमक्यू का उपयोग करते हैं, हमारा डेटाबेस डीबी 2 है। एक लेनदेन के भीतर मुझे डेटाबेस में कई रिकॉर्ड लिखने और दो एसिंक्रोनस जेएम संदेश भेजने की आवश्यकता है। जेएमएस संदेश घटना अधिसूचनाएं हैं और मैं केवल डेटाबेस लेनदेन करने पर उन्हें भेजना चाहता हूं।स्प्रिंग लेन-देन JDBC के Synchonization और JMS
मैं जेडीबीसी लेनदेन पहले ही प्रतिबद्ध होने के बाद ब्रोकर के साथ संचार के जोखिम को स्वीकार करने के लिए तैयार हूं (और इस प्रकार कोई संदेश नहीं भेजा गया है लेकिन डीबी प्रतिबद्ध है) इसलिए मुझे नहीं लगता कि मुझे उचित एक्सए की आवश्यकता है।
मुझे विश्वास है कि मैं क्या जरूरत है "सर्वश्रेष्ठ प्रयास" लेन-देन प्रबंधन वसंत लेन-देन तुल्यकालन का उपयोग कर रहा है।
वसंत दस्तावेज इस तथ्य पर संकेत देता है कि वसंत दो लेनदेन को सिंक्रनाइज़ करेगा और जेडीबीसी लेनदेन के बाद ही जेएमएस लेनदेन करेगा - लेकिन मुझे नहीं लगता कि यह बहुत स्पष्ट है। वसंत प्रलेखन यहाँ http://static.springsource.org/spring/docs/3.0.x/spring-framework-reference/html/transaction.html#tx-resource-synchronization यह कैसे काम करता के बारे में पर्याप्त विस्तार में जाने नहीं देता है।
मैं कहना है कि वसंत क्या मैं कुछ जावाडोक नीचे सहित चाहते हैं जाएगा अन्य स्रोतों की एक जोड़ी मिल गया है, और मैं कुछ एकीकरण परीक्षणों कि भी यह दिखाने के लिए लिखा है।
http://static.springsource.org/spring/docs/3.0.x/api/org/springframework/jms/support/JmsAccessor.html#setSessionTransacted%28boolean%29 पर जावाडोक यहाँ setSessionTransacted जैसे मैं वास्तव में क्या चाहते हैं लगता है।
मैं क्या देखा है मैं के साथ इस तरह सही पर सेट लेनदेन कैमल JmsConfiguration बनाने लगता है से पर्याप्त है:
<bean id="jmsConfig" class="org.apache.camel.component.jms.JmsConfiguration">
<property name="connectionFactory" ref="pooledConnectionFactory"/>
<property name="transacted" value="true"/>
<property name="concurrentConsumers" value="10"/>
</bean>
हालांकि मैं की जरूरत है किसी को मैं कौन थोड़ा उलझन में है के साथ काम को समझाने के लिए और जो सोचता है मेरी एकीकरण परीक्षण केवल जानबूझकर वसंत सुविधा के बजाय खराब दस्तावेज वाले दुष्प्रभाव के कारण काम करता है।
तो मेरा सवाल यह है कि - क्या मैं सही हूं कि वसंत को लेनदेन को सिंक्रनाइज़ करने के लिए भरोसा किया जा सकता है और हमेशा जेडीबीसी लेनदेन के बाद जेएमएस लेनदेन कर सकता है या ऐसा कुछ नहीं है जिस पर मुझे भरोसा करना चाहिए, और क्या आप मुझे किसी भी पर इंगित कर सकते हैं आधिकारिक दस्तावेज जो स्पष्ट रूप से कहता है? और मुझे लगता है कि सामान्य रूप से यह एक अच्छा तरीका है कि हम इन लेनदेन को एक अलग तरीके से प्रबंधित कर रहे हैं या नहीं?
हाय वहाँ, क्या आपको अब तक अपने प्रश्न का उत्तर मिला है? – snowindy
हाय, वास्तव में नहीं। मैंने अभी भी वास्तव में कोई स्पष्ट दस्तावेज नहीं देखा है जो मैं चाहता था लेकिन अब हम बिना किसी मुद्दे के उत्पादन में इसका उपयोग कर रहे हैं। – laurie