Glassfish中的JDBC连接池ping错误

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Glassfish中的JDBC连接池ping错误相关的知识,希望对你有一定的参考价值。

我正在尝试在glassfish 5中为Microsoft SQL Server数据库创建一个jdbc连接池。我使用的是mssql-jdbc-6.2.2.jre8.jar和最新的SQLExpress服务器版本(MSSQL14.SQLEXPRESS)

资源类型:javax.sql.DataSource

数据源类名:com.microsoft.sqlserver.jdbc.SQLServerDataSource

enter image description here enter image description here连接池创建成功但是当我尝试ping时,我收到此错误:

sql_tire_pool的Ping连接池失败。无法分配连接,原因是:驱动程序无法使用安全套接字层(SSL)加密与SQL Server建立安全连接。错误:“不支持的curveId:29”。 ClientConnectionId:f86f1ef8-29c4-4e39-b112-f5da9cbfe13d请查看server.log以获取更多详细信息。

这是服务器日志:

[2017-10-11T10:55:11.747 + 0300] [glassfish 5.0] [警告] [test.connection.pool.failed] [javax.enterprise.resource.resourceadapter.com.sun.enterprise.connectors.service] [tid :_ThreadID = 125 _ThreadName = admin-listener(7)] [timeMillis:1507708511747] [levelValue:900] [[RAR8054:为池[test_pool]创建非池化[test]连接时出现异常,无法分配连接,因为:驱动程序无法使用安全套接字层(SSL)加密建立与SQL Server的安全连接。错误:“不支持的curveId:29”。 ClientConnectionId:4c325981-4c97-4db2-b4fb-f7aafca4f03b]

[2017-10-11T10:55:11.750 + 0300] [glassfish 5.0] [SEVERE] [] [org.glassfish.admingui] [tid:_ThreadID = 51 _ThreadName = admin-listener(3)] [timeMillis:1507708511750] [ levelValue:1000] [[RestResponse.getResponse()给出失败。 endpoint ='http://localhost:4848/management/domain/resources/ping-connection-pool.json'; attrs ='{id = test_pool}']]

我正在运行Windows 10,一切都在本地运行(Glassfish安装,SQL服务器)

UPDATE

使用接受的答案的解决方案,问题部分解决。连接池现在成功ping数据库,但我遇到同样的问题,因为当我的应用程序试图通过jpa / hibernate运行查询时,glassfish日志中抛出相同的错误。

答案

面对Windows 10上Glassfish 5的这个问题,禁用椭圆曲线就可以了,只需添加:

-Dcom.sun.net.ssl.enableECC=false

to glassfish JVM选项并重启服务器。在glassfish问题跟踪器上发布了解决方法,以帮助他们快速修复它

以上是关于Glassfish中的JDBC连接池ping错误的主要内容,如果未能解决你的问题,请参考以下文章

ORA-00604。我创建连接池,我试图在glassfish中ping

Glassfish“连接已关闭”错误与连接池、JDBC 和 SQL Server 2008

Glassfish 应用服务器中的 JDBC 和连接池

在 GlassFish v4.1.1 中创建 jdbc 连接池 [重复]

JDBC连接池设置无法在Glassfish5上运行

配置 GlassFish JDBC 连接池以处理 Amazon RDS 多可用区故障转移