Play 框架 java 连接无法用于 sql 服务器数据库
Play framework java connection is not available to sql server database
从我的 java 项目(播放框架)连接到 Azure 中的 sql 服务器数据库时,我遇到了问题。
在本地环境中,连接工作正常。
我的 application.conf 中的参数以下:
db.default {
url="jdbc:sqlserver://server-name.database.windows.net:1433;database=database-name"
encrypt=true
trustServerCertificate=false
hostNameInCertificate="*.database.windows.net"
loginTimeout=30
driver=com.microsoft.sqlserver.jdbc.SQLServerDriver
username="root"
password="RootPwd"
}
这是收到的错误:
ERROR o.h.e.jdbc.spi.SqlExceptionHelper HikariPool-1 - Connection is
not available, request timed out after 30006ms. ERROR
o.h.e.jdbc.spi.SqlExceptionHelper The TCP/IP connection to the host
par-sql-server.database.windows.net, port 1433 has failed. Error:
"par-sql-server.database.windows.net. Verify the connection
properties. Make sure that an instance of SQL Server is running on the
host and accepting TCP/IP connections at the port. Make sure that TCP
connections to the port are not blocked by a firewall.". ERROR
p.api.http.DefaultHttpErrorHandler
play.api.PlayException: Execution exception[[CompletionException:
org.hibernate.exception.JDBCConnectionException: Unable to acquire
JDBC Connection]]
at play.api.http.HttpErrorHandlerExceptions$.$anonfun$convertToPlayException(HttpErrorHandler.scala:388)
at scala.Option.getOrElse(Option.scala:201)
at play.api.http.HttpErrorHandlerExceptions$.convertToPlayException(HttpErrorHandler.scala:388)
at play.api.http.HttpErrorHandlerExceptions$.throwableToUsefulException(HttpErrorHandler.scala:373)
at play.api.http.DefaultHttpErrorHandler.onServerError(HttpErrorHandler.scala:264)
at play.core.server.AkkaHttp
我已经检查过 tcp/ip 端口 1433 对数据库正确可用,并且我的 ip 设置正确以避开防火墙。
有什么建议吗?
谢谢
通常当数据库未在默认连接超时内获得连接时会发生此错误 属性。
您可以尝试在 Java 配置中增加 connectionTimeout 的值,如下所示:
config.setConnectionTimeout(300000);
下面是示例配置之一:
HikariConfig config = new HikariConfig();
config.setMaximumPoolSize(20);
config.setConnectionTimeout(300000);
config.setConnectionTimeout(120000);
config.setLeakDetectionThreshold(300000);
如果可能,让我知道重现此问题的步骤,以便我可以相应地修复它,同时根据您提供的信息,这些博客 (Blog1, Blog2) 将帮助您建立连接
从我的 java 项目(播放框架)连接到 Azure 中的 sql 服务器数据库时,我遇到了问题。
在本地环境中,连接工作正常。
我的 application.conf 中的参数以下:
db.default {
url="jdbc:sqlserver://server-name.database.windows.net:1433;database=database-name"
encrypt=true
trustServerCertificate=false
hostNameInCertificate="*.database.windows.net"
loginTimeout=30
driver=com.microsoft.sqlserver.jdbc.SQLServerDriver
username="root"
password="RootPwd"
}
这是收到的错误:
ERROR o.h.e.jdbc.spi.SqlExceptionHelper HikariPool-1 - Connection is not available, request timed out after 30006ms. ERROR o.h.e.jdbc.spi.SqlExceptionHelper The TCP/IP connection to the host par-sql-server.database.windows.net, port 1433 has failed. Error: "par-sql-server.database.windows.net. Verify the connection properties. Make sure that an instance of SQL Server is running on the host and accepting TCP/IP connections at the port. Make sure that TCP connections to the port are not blocked by a firewall.". ERROR p.api.http.DefaultHttpErrorHandler
play.api.PlayException: Execution exception[[CompletionException: org.hibernate.exception.JDBCConnectionException: Unable to acquire JDBC Connection]] at play.api.http.HttpErrorHandlerExceptions$.$anonfun$convertToPlayException(HttpErrorHandler.scala:388) at scala.Option.getOrElse(Option.scala:201) at play.api.http.HttpErrorHandlerExceptions$.convertToPlayException(HttpErrorHandler.scala:388) at play.api.http.HttpErrorHandlerExceptions$.throwableToUsefulException(HttpErrorHandler.scala:373) at play.api.http.DefaultHttpErrorHandler.onServerError(HttpErrorHandler.scala:264) at play.core.server.AkkaHttp
我已经检查过 tcp/ip 端口 1433 对数据库正确可用,并且我的 ip 设置正确以避开防火墙。
有什么建议吗? 谢谢
通常当数据库未在默认连接超时内获得连接时会发生此错误 属性。
您可以尝试在 Java 配置中增加 connectionTimeout 的值,如下所示:
config.setConnectionTimeout(300000);
下面是示例配置之一:
HikariConfig config = new HikariConfig();
config.setMaximumPoolSize(20);
config.setConnectionTimeout(300000);
config.setConnectionTimeout(120000);
config.setLeakDetectionThreshold(300000);
如果可能,让我知道重现此问题的步骤,以便我可以相应地修复它,同时根据您提供的信息,这些博客 (Blog1, Blog2) 将帮助您建立连接