बारी है मैं jboss 5.1.x उपयोग कर रहा हूँ, EJB3.0लेन-देन टाइमआउट
मैं एमडीबी जो JMS कतार को सुनता है। जब एमडीबी एक संदेश लेता है, तो यह कुछ मॉडेम को टीसीपी के माध्यम से एक संदेश भेजता है। कभी कभी कि मोडेम जब सर्वर एक जवाब के लिए इंतजार कर रहा है प्रतिक्रिया नहीं करता:
byte[] byteData = receive(is);
coz मैं InputStream पर समाप्ति सेट नहीं कर सकते।
इसलिए ईजेबी कंटेनर लेनदेन टाइमआउट (जो डिफ़ॉल्ट रूप से वहां है) के लिए धन्यवाद ऑपरेशन को वापस रोलिंग और फिर फिर से निष्पादित एक पुनः प्रयास किया गया।
डिफ़ॉल्ट रूप से इस तंत्र मेरे लिए ठीक काम करता है, समस्या है:
कभी कभी लेनदेन कभी नहीं का समय समाप्त हो, और लंबे समय के बाद मैं कंसोल में संदेश निम्नलिखित हो:
15:18:22,578 WARN [arjLoggerI18N] [com.arjuna.ats.arjuna.coordinator.TransactionReaper_18] - TransactionReaper::check timeout for TX a6b2232:5f8:4d3591c6:76 in state RUN
15:18:22,578 WARN [arjLoggerI18N] [com.arjuna.ats.arjuna.coordinator.BasicAction_58] - Abort of action id a6b2232:5f8:4d3591c6:76 invoked while multiple threads active within it.
15:18:22,578 WARN [arjLoggerI18N] [com.arjuna.ats.arjuna.coordinator.CheckedAction_2] - CheckedAction::check - atomic action a6b2232:5f8:4d3591c6:76 aborting with 1 threads active!
15:18:22,578 WARN [arjLoggerI18N] [com.arjuna.ats.arjuna.coordinator.TransactionReaper_7] - TransactionReaper::doCancellations worker Thread[Thread-10,5,jboss] successfully canceled TX a6b2232:5f8:4d3591c6:76
कोई विचार क्या गलत है? और कभी-कभी यह क्यों काम करता है और कभी-कभी ऐसा नहीं होता है?
धन्यवाद,
किरण।
मैं इसे कैसे संभाल होगा? मैं चाहता हूं कि वर्तमान में चल रहे थ्रेड को 'बाधित' करें। 10x – rayman
इंटरप्ट को इंगित करने के लिए ध्वज का उपयोग करें और उस पर आधारित, थ्रेड को वर्तमान में निष्पादित कार्य को सेट होने पर रोकना चाहिए। –
हां, लेकिन फिर भी आप कहते हैं कि लेन-देन टाइमआउट समय-समय पर थ्रेड में सक्षम नहीं होगा जो स्वयं धागे में चल रहे हैं। मैं इसे हासिल करना चाहता हूं, मैं इसे कैसे कार्यान्वित कर सकता हूं? 10x। – rayman