2013-04-04 17 views
7

मैं data.But अचानक से ज्यादातर समय में मैं कर रहा हूँ प्राप्त करने के लिए JDBC कनेक्शन के साथ जावा वेब सेवाओं (अपाचे अक्ष) का उपयोग कर postgres डेटा बेस से कनेक्ट कर रहा हूँ org.postgresql.util.PSQLException: The connection attempt failed. का अपवाद प्राप्त करना और कुछ बार यह ठीक काम कर रहा है। यहां मैं कई तैयार बयान का उपयोग कर रहा हूं। कार्यकर्ता बहुत अधिक समय लगा: मेरी नमूना कोड इस अपवाद के बारे मेंorg.postgresql.util.PSQLException: कनेक्शन का प्रयास विफल

Connection connection=null; 
try 
{ 
    Class.forName(driver); 
    connection = DriverManager.getConnection(url, username, password); 
    ps1=connection.prepareStatement("select * from emp"); 
    rs1=ps1.executeQuery(); 
    while(rs1.next()) 
    {    
     ps2=connection.prepareStatement("select * from dept where dept_no="+rs1.getInt("dept_no")); 
     rs2=ps2.executeQuery(); 
     while(rs2.next()) 
     { 
      ................ 
      ................ 
     } 
    } 
} 
catch(Exception e) 
{ 
    System.out.println("Exception occurred is"+e.getMessage());    
} 
finally 
{ 
    try{if(rs1!=null)rs1.close();}catch(Exception e){ System.out.println("*1closing error--->"+e);} 
    try{if(ps1!=null)ps1.close();}catch(Exception e){ System.out.println("**1closing error--->"+e);} 
    try{if(rs2!=null)rs2.close();}catch(Exception e){ System.out.println("*2closing error--->"+e);} 
    try{if(ps2!=null)ps2.close();}catch(Exception e){ System.out.println("**2closing error--->"+e);} 
    try{if(connection!=null)connection.close();}catch(Exception e){ System.out.println("***closing error--->"+e);} 
} 

स्टैक ट्रेस

org.postgresql.util.PSQLException: The connection attempt failed. 
    at org.postgresql.core.v3.ConnectionFactoryImpl.openConnectionImpl(ConnectionFactoryImpl.java:137) 
    at org.postgresql.core.ConnectionFactory.openConnection(ConnectionFactory.java:66) 
    at org.postgresql.jdbc2.AbstractJdbc2Connection.<init>(AbstractJdbc2Connection.java:124) 
    at org.postgresql.jdbc3.AbstractJdbc3Connection.<init>(AbstractJdbc3Connection.java:30) 
    at org.postgresql.jdbc3.Jdbc3Connection.<init>(Jdbc3Connection.java:24) 
    at org.postgresql.Driver.makeConnection(Driver.java:386) 
    at org.postgresql.Driver.connect(Driver.java:260) 
    at java.sql.DriverManager.getConnection(Unknown Source) 
    at java.sql.DriverManager.getConnection(Unknown Source) 
    at com.codon.service.WareHouseServer.get_picks(WareHouseServer.java:7415) 
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) 
    at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source) 
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source) 
    at java.lang.reflect.Method.invoke(Unknown Source) 
    at org.apache.axis.providers.java.RPCProvider.invokeMethod(RPCProvider.java:397) 
    at org.apache.axis.providers.java.RPCProvider.processMessage(RPCProvider.java:186) 
    at org.apache.axis.providers.java.JavaProvider.invoke(JavaProvider.java:323) 
    at org.apache.axis.strategies.InvocationStrategy.visit(InvocationStrategy.java:32) 
    at org.apache.axis.SimpleChain.doVisiting(SimpleChain.java:118) 
    at org.apache.axis.SimpleChain.invoke(SimpleChain.java:83) 
    at org.apache.axis.handlers.soap.SOAPService.invoke(SOAPService.java:454) 
    at org.apache.axis.server.AxisServer.invoke(AxisServer.java:281) 
    at org.apache.axis.transport.http.AxisServlet.doPost(AxisServlet.java:699) 
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:637) 
    at org.apache.axis.transport.http.AxisServletBase.service(AxisServletBase.java:327) 
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:717) 
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290) 
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206) 
    at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:233) 
    at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191) 
    at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127) 
    at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102) 
    at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109) 
    at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:298) 
    at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:857) 
    at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:588) 
    at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:489) 
    at java.lang.Thread.run(Unknown Source) 
Caused by: java.net.SocketException: Connection reset 
    at java.net.SocketInputStream.read(Unknown Source) 
    at org.postgresql.core.VisibleBufferedInputStream.readMore(VisibleBufferedInputStream.java:135) 
    at org.postgresql.core.VisibleBufferedInputStream.ensureBytes(VisibleBufferedInputStream.java:104) 
    at org.postgresql.core.VisibleBufferedInputStream.read(VisibleBufferedInputStream.java:73) 
    at org.postgresql.core.PGStream.ReceiveChar(PGStream.java:259) 
    at org.postgresql.core.v3.ConnectionFactoryImpl.doAuthentication(ConnectionFactoryImpl.java:254) 
    at org.postgresql.core.v3.ConnectionFactoryImpl.openConnectionImpl(ConnectionFactoryImpl.java:95) 
    ... 37 more 

मैं postgres लॉग की जाँच की और मैंने पाया विभिन्न मामलों

में निम्नलिखित बयानों

1.WARNING है शुरू करना; रद्द।

2.Could साझा स्मृति (कुंजी = ...., addr = .....) को पुनः अनुलग्न नहीं: 487.

3.could ग्राहक से डेटा प्राप्त नहीं: कोई कनेक्शन नहीं है क्योंकि बनाया जा सकता है लक्ष्य मशीन ने सक्रिय रूप से इनकार कर दिया।

4. ग्राहक कनेक्शन पर अनुमानित ईओएफ।

कृपया अग्रिम में me.Thanks मदद

+2

आपको * पूर्ण * अपवाद स्टैक ट्रेस दिखाने की आवश्यकता है, क्योंकि नेस्टेड अपवाद में समस्या का विवरण होगा। यह देखते हुए कि आप पूल किए गए कनेक्शन का उपयोग नहीं कर रहे हैं, तो मुझे आश्चर्य नहीं होगा यदि आप max_connections समस्याओं को मार रहे हैं, लेकिन पूर्ण त्रुटि के बिना यह कहना मुश्किल है। –

+0

क्या आप सभी तैयार कथन और परिणाम बंद कर रहे हैं? दिए गए उदाहरण में ps2 और rs2 को बंद करना –

+0

छिपा हुआ है, मैंने अपवाद के बारे में स्टैक ट्रेस के साथ प्रश्न अपडेट किया और पिछली बार मैं 'ps2' और' rs2' समापन बयान पोस्ट करना भूल गया। मैंने इसे एप्लिकेशन में किया था। –

उत्तर

5

वास्तविक समस्या है:

Caused by: java.net.SocketException: Connection reset 
    at java.net.SocketInputStream.read 

कनेक्शन बंद कर दिया गया था जब जावा से पढ़ने के लिए कोशिश की। इस की वजह से हो सकता है:

  • PostgreSQL सर्वर को पुनः आरंभ किया जा रहा
  • PostgreSQL बैकएंड आप समाप्त किया जा रहा से जुड़े थे
  • PostgreSQL बैकएंड आप
  • बुरी तरह से
  • छली नेटवर्क कनेक्शन दुर्घटनाग्रस्त से जुड़े थे व्यवहारित फ़ायरवॉल
  • एनएटी फ़ायरवॉल/राउटर के एनएटी कनेक्शन टेबल से निष्क्रिय कनेक्शन समय

... और शायद अधिक। यह देखने के लिए PostgreSQL सर्वर लॉग जांचें कि वहां कुछ भी जानकारीपूर्ण है या नहीं; Wireshark जैसे टूल के साथ कुछ नेटवर्क ट्रेसिंग करने पर भी विचार करें।

+0

मैंने पोस्टग्रेस की लॉग फाइलों में बयान के साथ अपना प्रश्न अपडेट किया –

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