我的Java Web应用程序可以成功连接到托管在Google cloud sql上的Postgresql数据库,并部署到Google App Engine。现在,每次它尝试访问同一个数据库时,我都会收到超时错误。我需要为他们配置一些东西才能正确通信吗?Web 应用程序和数据库都位于同一个项目中,所以我只是假设它们被允许相互通信
Caused by: org.postgresql.util.PSQLException: The connection attempt failed.
at org.postgresql.core.v3.ConnectionFactoryImpl.openConnectionImpl(ConnectionFactoryImpl.java:292)
at org.postgresql.core.ConnectionFactory.openConnection(ConnectionFactory.java:49)
at org.postgresql.jdbc.PgConnection.<init>(PgConnection.java:195)
at org.postgresql.Driver.makeConnection(Driver.java:454)
at org.postgresql.Driver.connect(Driver.java:256)
at java.sql.DriverManager.getConnection(DriverManager.java:664)
at java.sql.DriverManager.getConnection(DriverManager.java:247)
at weightwatchers2019.UsuarioDAO.autenticar(UsuarioDAO.java:79)
... 33 more
Caused by: java.net.SocketTimeoutException: connect timed out
at java.net.PlainSocketImpl.socketConnect(Native Method)
at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
at java.net.Socket.connect(Socket.java:589)
at org.postgresql.core.PGStream.<init>(PGStream.java:70)
at org.postgresql.core.v3.ConnectionFactoryImpl.tryConnect(ConnectionFactoryImpl.java:91)
at org.postgresql.core.v3.ConnectionFactoryImpl.openConnectionImpl(ConnectionFactoryImpl.java:192)
... 40 more
此问题可能是由以下原因引起的:
如果服务器出现临时问题
所有预准备语句和结果集,请检查max_connections。
NAT 的 NAT 连接表中的空闲连接超时
防火墙阻止来自服务器的响应。
另一个原因是主机名不正确。
是否确定数据库在端口 8080 上运行。
这也可能意味着服务器(或沿途的某些路由器(存在(临时(问题。您可以尝试使用路由跟踪来确定这是否属实。
检查:con=DriverManager.getConnection("jdbc:postgresql://19x.16x.1x.13x/MxxGS","username", "password"(;
确认您的 jdbc (jar( 用于帖子。
尝试异常或数据库的池连接。