2

db.DbTransaction getConnection: null

java.sql.SQLException: Transient error, please try again.
    at 

    com.google.appengine.api.rdbms.RdbmsApiProxyClient$ApiProxyBlockingInterface.makeSyncCall(RdbmsApiProxyClient.java:108)
        at com.google.appengine.api.rdbms.RdbmsApiProxyClient$ApiProxyBlockingInterface.openConnection(RdbmsApiProxyClient.java:71)
        at com.google.cloud.sql.jdbc.internal.SqlProtoClient.openConnection(SqlProtoClient.java:58)
        at com.google.cloud.sql.jdbc.Driver.connect(Driver.java:66)
        at com.google.cloud.sql.jdbc.Driver.connect(Driver.java:26)
        at java.sql.DriverManager.getConnection(DriverManager.java:620)
        at java.sql.DriverManager.getConnection(DriverManager.java:222)
        at db.DbTransaction.getConnection(DbTransaction.java:44)

Google Cloud SQL のインスタンスを再起動すると解決しました。その背後にある理由と、どうすれば解決できますか。このアプリケーションでは、サーブレット ベースの接続プーリングを使用しました。例外の原因が接続プールに関連しているか、 App Engine インスタンスに関連する問題があるかに関係なく、Google Cloud SQL への同時接続は 30 を超えてはならないため、リークにより最終的に新しい接続が失敗します( https://developers. google.com/appengine/docs/java/cloud-sql/ )。

4

0 に答える 0