org.postgresql.util.PSQLException: Der Verbindungsversuch ist fehlgeschlagen,
Ich bin verbinden mit der postgres-Datenbank mit Hilfe von java web services (apache axis) mit JDBC verbindungen, um die Daten zu erhalten.Aber plötzlich, in den meisten Zeiten bin ich immer eine Ausnahme von org.postgresql.util.PSQLException: The connection attempt failed.
und einige Male, es ist in Ordnung. Hier bin ich mit vielen Anweisungen vorbereitet. Mein Beispielcode ist
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);}
}
stack-trace zu dieser Ausnahme ist
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
Überprüfte ich den postgres-logs und ich fand die folgenden Aussagen in verschiedenen Fällen
1.WARNUNG: Arbeiter nahm zu lange, um zu beginnen; abgebrochen.
2.konnte nicht anfügen, um shared memory (key=...., addr=.....): 487.
3.konnte nicht empfangen von Daten vom client: es konnte Keine Verbindung hergestellt werden, da der Zielcomputer aktiv verweigert.
4.unerwartetes EOF auf client-Verbindung.
bitte helfen Sie mir.Vielen Dank Im Voraus
- Sie benötigen zum anzeigen den vollständigen exception-stack-trace, da die nested exception(s) enthält die Einzelheiten des Problems. Gegeben, dass Sie nicht mit zusammengefassten verbindungen werde ich nicht überrascht sein, wenn Sie schlagen max_connections Fragen, aber ohne die volle Fehler-es ist schwer zu sagen.
- Schließen Sie alle vorbereiteten statements und resultsets? In einem bestimmten Beispiel die Schließung der ps2 und rs2 versteckt ist
- Ich aktualisierte die Frage mit dem stack-trace über die Ausnahme und das Letzte mal hatte ich post von der
ps2
undrs2
Schließung Aussagen.Ich habe es in der Anwendung. - PostgreSQL server-version und host-Betriebssystem? Könnte es ein Windows-server eine chance?
- Hi @Sasi Vara Prasad, ich erwarte das gleiche Problem mit der gleichen postgresql-Protokolle. Ich bin mit dem Standard-hibernate-Anschluss-pooling. waren Sie verwalten dieses Problem zu beheben ?
Du musst angemeldet sein, um einen Kommentar abzugeben.
Das eigentliche problem ist:
Die Verbindung wurde geschlossen, wenn Java versucht zu Lesen. Dies kann verursacht werden durch:
... und wahrscheinlich noch mehr. Überprüfen Sie die PostgreSQL-server-logs, um zu sehen, ob es etwas gibt, informativ ist es; auch in Erwägung ziehen, einige Netzwerk-Ablaufverfolgung mit einem tool wie Wireshark.