स्प्रिंग के लेनदेन प्रबंधक के गतिविधि को शुरू करने (शुरू करने, & रोलबैक) की विभिन्न पोस्टिंग की गई हैं। हालांकि, मैं हाल ही में एक डेडलॉक मुद्दे पर आया जिसके लिए केवल लॉगिंग गतिविधि पर्याप्त नहीं है।स्प्रिंग लेनदेन सामग्री को लॉग इन करने के लिए कैसे करें
हमारे कोड में मौलिक मुद्दा लेनदेन प्रचारों का एक गन्दा उपयोग है और आवश्यक है REQUIRES_NEW। इतने सारे विधि कॉल हैं कि आगे और आगे हम एक दूसरे पर ढेर सारे लेन-देन के साथ समाप्त होते हैं। हां, कोड बेस बहुत बड़ा है और समाधान जरूरी है ... (हम सभी जानते हैं कि यह क्या है।)
समस्या एक डेडलॉक थी क्योंकि कोड को लेन-देन में क्वेरी इकाइयों में जोड़ा गया था जो उप-अनुक्रमिक रूप से दूसरे में संशोधित थे लेन-देन। स्प्रिंग एक अपवाद को थूकता है जो इकाई एक्स के अपडेट को बताता है क्योंकि यह लॉक है। अब, यह जानना अच्छा है, लेकिन किसी को दोषपूर्ण कोड कैसे मिलता है: क्वेरी जो प्रारंभिक लॉकिंग करती है।
मेरा प्रश्न (आखिरकार): क्या लेनदेन में जोड़े जाने वाली संस्थाओं को लॉग करने का कोई तरीका है? इस तरह मैं विशेष रूप से इकाई को लॉक करने वाले लेनदेन की तलाश कर सकता हूं वसंत शिकायत कर रहा है।
धन्यवाद! :-)