2012-09-25 12 views
6

हमने समय-समय पर हमारे उत्पादन वातावरण में "नेटवर्क एडाप्टर कनेक्शन स्थापित नहीं किया" समस्या शुरू कर दी, मैंने बहुत सारे Google किए और यहां कुछ प्रश्नों के माध्यम से गए लेकिन अभी भी समाधान नहीं मिला।IOException: नेटवर्क एडाप्टर कनेक्शन स्थापित नहीं कर सका

  1. हम 2 ओरेकल उदाहरणों (संस्करण 10.2.0.4) के साथ आरएसी उपयोग कर रहे हैं:

    यहाँ हमारे पर्यावरण के बारे में कुछ जानकारी है।

  2. हमारे पास आरएसी के शीर्ष पर चल रहे कई ऐप सर्वर (जेबॉस एएस 5) हैं।
  3. oracle-ds.xml में कनेक्शन यूआरएल "jdbc: oracle: पतला: @ (विवरण = (ADDRESS_LIST = (ADDRESS = (PROTOCOL = TCP) (HOST = db1_vip) (पोर्ट = 1521)) (ADDRESS = (PROTOCOL = टीसीपी) (HOST = db2_vip) (पोर्ट = 1521)) (LOAD_BALANCE = yes)) (CONNECT_DATA = (सर्वर = समर्पित) (SERVICE_NAME = G1db) (FAILOVER_MODE = (प्रकार = चयन) (METHOD = BASIC) (RETRIES = 120) (देरी = 5)))) "
  4. हम db1_vip/db2_vip रूप में अच्छी तरह 2 ओरेकल उदाहरणों की वास्तविक आईपी/etc/दोनों एप्लिकेशन सर्वर के मेजबान के लिए जोड़ा
  5. वहाँ ओरेकल उदाहरणों और एप्लिकेशन सर्वर के बीच फ़ायरवॉल है , लेकिन हमने दोनों ओरैकल उदाहरणों पर 1521 बंदरगाह खोला।

हम अगर वहाँ नेटवर्क या ओरेकल टीएनएस श्रोता पर कोई समस्या नहीं है की जाँच करने के लिए निम्न परीक्षण किया है: दोनों ओरेकल उदाहरणों एप्लिकेशन को सर्वर से

  1. रन पिंग, सब कुछ किसी भी पैकेट हानि के बिना ठीक काम करता है।
  2. एप सर्वर से 1521 बंदरगाह दोनों ऑरैकल उदाहरणों के लिए टेलनेट, कुछ भी गलत नहीं है।
  3. tnsping भी ठीक काम करता है।
  4. हमने श्रोता लॉग की जांच की लेकिन कुछ भी मूल्यवान नहीं मिला।

सबसे अजीब बात यह है कि यह त्रुटि एक ऐप सर्वर पर लगभग 10 गुना एक घंटे होती है, लेकिन केवल एक या ऐप सर्वर पर दिन में 1 या 2 बार होती है।

क्या कोई इस त्रुटि पर कुछ प्रकाश डाल सकता है?

धन्यवाद

[EDIT4]: जब एक Oracle उदाहरण TNSping हम टाइमआउट समस्या पाया, तो हम JDBC url बदल दिया केवल एक उदाहरण कनेक्ट करने के लिए और पाया IOException फिर कभी नहीं हुआ, तो हमें लगता है कि समस्या से संबंधित है डेटाबेस और डीबीए टीम के साथ इस पर ध्यान देना जारी रहेगा।

[EDIT3]: हम निम्नलिखित था की कोशिश करता:

  1. अक्षम अगर कोई टीसीपी है
  2. होस्ट नाम
  3. उपयोग wireshark के बजाय आईपी उपयोग की जांच करने के लिए एप्लिकेशन सर्वर और डेटाबेस सर्वर के बीच फ़ायरवॉल पैकेट समस्या।उनमें से

कोई भी सफल होते हैं तो किसी की मदद कृपया ~

[संपादित करें]: त्रुटि स्टैक ट्रेस: ​​

java.sql.SQLException: Io Exception: The Network Adapter could not establish the connection 
    at oracle.jdbc.driver.DatabaseError.throwSqlException(DatabaseError.java:112) 
    at oracle.jdbc.driver.DatabaseError.throwSqlException(DatabaseError.java:146) 
    at oracle.jdbc.driver.DatabaseError.throwSqlException(DatabaseError.java:255) 
    at oracle.jdbc.driver.T4CConnection.logon(T4CConnection.java:387) 
    at oracle.jdbc.driver.PhysicalConnection.<init>(PhysicalConnection.java:414) 
    at oracle.jdbc.driver.T4CConnection.<init>(T4CConnection.java:165) 
    at oracle.jdbc.driver.T4CDriverExtension.getConnection(T4CDriverExtension.java:35) 
    at oracle.jdbc.driver.OracleDriver.connect(OracleDriver.java:801) 
    at org.jboss.resource.adapter.jdbc.local.LocalManagedConnectionFactory.getLocalManagedConnection(LocalManagedConnectionFactory.java:207) 
    ... 5 more 
+0

इसका केवल एक के बजाय संकेत: मुझे x64 पर java7 के साथ नेटवर्किंग त्रुटियां मिलीं। यदि आप java7 का उपयोग कर रहे हैं संस्करण 6 का प्रयोग करें। – Mirko

+0

हम दोनों ऐप सर्वर पर jdk5 का उपयोग कर रहे हैं। – asticx

+0

अपने होस्ट नाम के बजाय डीबी सर्वर के आईपी पते का उपयोग करने का प्रयास करें; अगर यह किसी भी विफलताओं के बिना काम करता है, तो आप जांच को डीएनएस होस्टनाम रिज़ॉल्यूशन में संकीर्ण कर सकते हैं। – Zaki

उत्तर

6

त्रुटि

java.sql.SQLException: आईओ अपवाद: नेटवर्क एडाप्टर कनेक्शन स्थापित नहीं कर सका

Java/JDBC के साथ कुछ लेना देना नहीं है। यह वह त्रुटि है जब आपको अपने नेटवर्क सेटअप में कुछ गड़बड़ होती है। मेरा अनुमान है, फ़ायरवॉल समस्या। क्या आप इसे अक्षम कर सकते हैं और देख सकते हैं कि त्रुटि अभी भी है या नहीं?

+1

हम ऐसा कर सकते हैं लेकिन मुझे सच में संदेह है कि यह वास्तविक कारण है, क्योंकि यह त्रुटि अस्थायी तरीके से होती है, दोनों पिंग और टेलनेट काम और दूसरा ऐप सर्वर अधिकतर समय काम करता है । – asticx

+0

मैं देखता हूं, आप इसे लंबे समय तक अक्षम नहीं कर सकते हैं। मैं सोच रहा था क्योंकि यह एक बार हो रहा है, फ़ायरवॉल कुछ टीसीपी/आईपी पैकेट छोड़ सकता है, और यह क्लाइंट मशीन पर टीसीपी स्टैक द्वारा कनेक्ट करने के लिए असंभव हो जाता है। लेकिन यह सिर्फ एक परिकल्पना है। –

+0

हमने ऐप सर्वर और डेटाबेस सर्वर के बीच पिंग का उपयोग किया था और किसी भी पैकेट हानि को नहीं मिला, यह सुनिश्चित नहीं है कि यह सबसे अच्छा तरीका है या नहीं। – asticx

-1

संपादित कनेक्शन और परीक्षण हालांकि अपने TNSping पाया !, उपयोग virtualbox (एडाप्टर की जांच की अनुमति के सारे), मेरे मामले में, त्रुटि जब मैं आईपी का उपयोग करता है, तो था, उपयोग स्थानीय होस्ट

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