2

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

资源类型:javax.sql.DataSource

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

在此处输入图像描述 在此处输入图像描述 连接池已成功创建,但当我尝试 ping 时,出现此错误:

sql_tire_pool 的 Ping 连接池失败。无法分配连接,因为:驱动程序无法使用安全套接字层 (SSL) 加密建立与 SQL Server 的安全连接。错误:“不支持的曲线 ID: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 的安全连接。错误:“不支持的曲线 ID:29”。ClientConnectionId:4c325981-4c97-4db2-b4fb-f7aafca4f03b]]

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

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

更新

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

4

1 回答 1

4

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

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

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

于 2017-12-15T08:16:18.887 回答