2009-08-07 15 views
5

हमारे ग्राहकों में से एक में एक नई समस्या है: एप्लिकेशन रुकने के लिए पीसता है। थ्रेड डंप से पता चलता है कि सभी धागे जेडीबीसी कॉल में नेटवर्क आईओ पर लटक रहे हैं।जेडीबीसी कनेक्शन लटकाना

हमने/मैंने इन नेटवर्क नेटवर्क IO को कभी नहीं देखा है। आम तौर पर एक धीमी मशीन डब्ल्यू/डीबी समस्याओं में से एक है) एक या दो लंबे समय से चलने वाले प्रश्न या बी) कुछ प्रकार के लॉक/डेडलॉक। इनमें से किसी भी मामले में धागे 'विभिन्न तरीकों से' हैंग '। मैंने नेटवर्क IO पर लटकने वाले सभी 30+ धागे कभी नहीं देखा है।

नीचे मैंने थ्रेड डंप से एक अंश शामिल किया है। सभी HTTP थ्रेड उसी java.net.SocketInputStream.read कॉल पर लटक रहे हैं।

मैंने उनके डीबीए और sysadmin से बात की। उनके अनुसार हाल ही में पर्यावरण में 'कुछ भी नहीं बदला है' जो इस समस्या का कारण बन जाएगा।

db पर्यावरण

MSSQL 2005 64-बिट सर्विस पैक 2 चालक: sqljdbc.jar: 1,0 809 102

नोट: वे एक पुराने JDBC ड्राइवर चल रहे हैं। AFAIK उन्होंने 1.0 से 1.2 ड्राइवर तक अपग्रेड करने का प्रयास किया लेकिन कुछ और समस्या थी।

अन्य पर्यावरण के मुद्दों

वे दोनों अनुप्रयोग सर्वर और VMWare वी एम के दशक में डाटाबेस सर्वर चला रहे हैं। मुझे नहीं पता कि यह सेटअप नेटवर्क प्रदर्शन को कैसे प्रभावित करता है।

स्पष्ट रूप से यह इस समस्या के साथ एकमात्र एप्लिकेशन है। मैं उनके नेटवर्क आर्किटेक्चर के बारे में कुछ और नहीं जानता।

प्रश्न * इस समस्या पर कोई अंतर्दृष्टि? * यदि यह नेटवर्क है, तो विश्लेषण के लिए कोई अगला कदम?

परिशिष्ट A: थ्रेड से अंश डंप

सभी HTTP कनेक्शन एक ही विधि पर लटका कर रहे हैं:

 
"TP-Processor31" daemon prio=5 tid=0x04085b78 nid=0x970 runnable [0x0764d000..0x0764fd6c] 
    at java.net.SocketInputStream.socketRead0(Native Method) 
    at java.net.SocketInputStream.read(SocketInputStream.java:129) 
    at com.microsoft.sqlserver.jdbc.DBComms.receive(Unknown Source) 
    at com.microsoft.sqlserver.jdbc.IOBuffer.sendCommand(Unknown Source) 
    - locked (a com.microsoft.sqlserver.jdbc.DBComms) 
    at com.microsoft.sqlserver.jdbc.SQLServerStatement.sendExecute(Unknown Source) 
    at com.microsoft.sqlserver.jdbc.SQLServerStatement.doExecuteQuery(Unknown Source) 
+0

मैंने इस तरह की चीजें देखी हैं यदि कनेक्शन मूर्खतापूर्ण एनएटी गेटवे – nos

उत्तर

8

हम इसी तरह के मुद्दों लिया है, और उन्हें एक गाड़ी JDK अद्यतन करने के लिए वापस पता लगाया (1.6.29)।

हमने 1.6.27 डाउनलोड किया (http://www.oracle.com/technetwork/java/javasebusiness/downloads/java-archive-downloads-javase6-419409.html#jdk-6u27-oth-JPR), फिर से JAVA_HOME पर्यावरण को सेट करें और हम ट्रैक पर वापस आ गए थे।

+2

के माध्यम से जाता है तो सटीक उत्तर के लिए आपका बहुत बहुत धन्यवाद। हमारे पास एक ही समस्या थी, हम इसे ग्लासफ़िश में एक जेडीबीसी कनेक्शन पूल पिंग करने के लिए ट्रैक करते हैं जो बिना किसी त्रुटि संदेश के लटकते हैं। समस्या को हल करने के लिए 1.6.27 पर वापस जाएं। धन्यवाद –

+0

हमें एक ही समस्या का सामना करना पड़ा है। डाउनग्रेड इसे ठीक करेगा। –

2

संस्करण 1.6 u29 में जेएसएसई में यह परिवर्तन है। परिवर्तन आंशिक रूप से CVE-2011-3389 और CVE-2011-3560 पैच करना है।

यदि एप्लेट को तैनात नहीं कर रहे हैं और जावा वेब-स्टार्ट का उपयोग नहीं कर रहे हैं। आप बस 1.6 u27 jsse.jar का उपयोग करने में सक्षम हो सकते हैं। आप अभी भी भेद्यता के लिए जा रहे हैं, लेकिन यह sqljdbc.jar और sqljdbc4.jar काम करने की अनुमति देगा।

जावा 7 पर माइग्रेट करने के अन्य विकल्प, sqljdbc4.jar उस वातावरण में काम करता है।

पैच पूर्ण समाधान नहीं है। तो भावी पैच में और बदलाव की उम्मीद है।

संबंधित मुद्दे