【问题标题】:Timeout in connection between Cloud SQL and App EngineCloud SQL 和 App Engine 之间的连接超时
【发布时间】:2019-11-05 21:18:08
【问题描述】:

我的 Java Web 应用程序可以成功连接到托管在 Google 云 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

【问题讨论】:

    标签: java postgresql google-app-engine google-cloud-sql


    【解决方案1】:

    这个问题可能是由以下原因引起的:

    如果服务器出现临时问题

    所有准备好的语句和结果集,检查 max_connections。

    NAT 的 NAT 连接表中的空闲连接超时

    防火墙正在阻止来自服务器的响应。

    另一个原因是主机名不正确。

    您确定您的数据库在端口 8080 上运行吗?

    这也可能意味着服务器(或沿途的某些路由器)存在(临时)问题。您可以尝试跟踪路由来确定这是否正确。

    检查: con=DriverManager.getConnection("jdbc:postgresql://19x.16x.1x.13x/MxxGS","用户名", "密码");

    确认您的 jdbc (jar) 用于 postgres。

    尝试异常,或数据库的池连接。

    【讨论】:

      猜你喜欢
      • 2018-08-15
      • 2015-12-18
      • 2017-06-17
      • 2015-01-16
      • 2014-07-19
      • 2020-06-07
      • 2014-01-20
      • 2017-12-05
      • 2021-08-04
      相关资源
      最近更新 更多