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/ )。