Java 防止断开持久连接

Java 防止断开持久连接,java,database,postgresql,heroku,Java,Database,Postgresql,Heroku,我们正在使用Talend和RESTWeb服务在Heroku上存储数据。经过一段空闲时间后,我们的持久连接就会断开。我有search postgresql文档,但找不到任何设置空闲连接超时的参数。我们面临的问题如下: Exception in component tPostgresqlInput_2 org.postgresql.util.PSQLException: An I/O error occured while sending to the backend. at org.pos

我们正在使用Talend和RESTWeb服务在Heroku上存储数据。经过一段空闲时间后,我们的持久连接就会断开。我有search postgresql文档,但找不到任何设置空闲连接超时的参数。我们面临的问题如下:

Exception in component tPostgresqlInput_2
org.postgresql.util.PSQLException: An I/O error occured while sending to the backend.
    at org.postgresql.core.v3.QueryExecutorImpl.execute(QueryExecutorImpl.java:281)
    at org.postgresql.jdbc2.AbstractJdbc2Statement.execute(AbstractJdbc2Statement.java:555)
    at org.postgresql.jdbc2.AbstractJdbc2Statement.executeWithFlags(AbstractJdbc2Statement.java:403)
    at org.postgresql.jdbc2.AbstractJdbc2Statement.executeQuery(AbstractJdbc2Statement.java:283)
    at ulu.loaderherokueventsdbg_0_1.LoaderHerokuEventsDBG.tPostgresqlInput_2Process(LoaderHerokuEventsDBG.java:856)
    at ulu.loaderherokueventsdbg_0_1.LoaderHerokuEventsDBG.tJava_2Process(LoaderHerokuEventsDBG.java:617)
    at ulu.loaderherokueventsdbg_0_1.LoaderHerokuEventsDBG.tPostgresqlConnection_1Process(LoaderHerokuEventsDBG.java:1260)
    at ulu.loaderherokueventsdbg_0_1.LoaderHerokuEventsDBG.tLibraryLoad_2Process(LoaderHerokuEventsDBG.java:1114)
    at ulu.loaderherokueventsdbg_0_1.LoaderHerokuEventsDBG.runJobInTOS(LoaderHerokuEventsDBG.java:2231)
    at ulu.loaderherokueventsdbg_0_1.LoaderHerokuEventsDBG.main(LoaderHerokuEventsDBG.java:1992)
Caused by: java.net.SocketException: Connection reset by peer: socket write error
    at java.net.SocketOutputStream.socketWrite0(Native Method)
    at java.net.SocketOutputStream.socketWrite(Unknown Source)
    at java.net.SocketOutputStream.write(Unknown Source)
    at sun.security.ssl.OutputRecord.writeBuffer(Unknown Source)
    at sun.security.ssl.OutputRecord.write(Unknown Source)
    at sun.security.ssl.SSLSocketImpl.writeRecordInternal(Unknown Source)
    at sun.security.ssl.SSLSocketImpl.writeRecord(Unknown Source)
    at sun.security.ssl.AppOutputStream.write(Unknown Source)
    at java.io.BufferedOutputStream.flushBuffer(Unknown Source)
    at java.io.BufferedOutputStream.flush(Unknown Source)
    at org.postgresql.core.PGStream.flush(PGStream.java:518)
    at org.postgresql.core.v3.QueryExecutorImpl.sendSync(QueryExecutorImpl.java:1141)
    at org.postgresql.core.v3.QueryExecutorImpl.execute(QueryExecutorImpl.java:254)
    ... 9 more

从中我可以了解到,断开连接的原因可能不是数据库,而是tcp层。你对如何解决这个问题有什么建议吗?

我只是猜测,但超时或空闲时间可能会有问题。 网络本身可能存在其他问题,或者您的后端以客户端不理解的内容进行响应

我看得出你在使用PostgreSQL? 我只是猜测,但试着注释掉这一行:
synchronous\u standby\u names='*'

postgresql.conf
中,它将防止客户端在等待服务器响应时等待并超时

但正如我所说,我只是在这里猜测