Glassfish中的JDBC连接池ping错误

时间:2017-10-11 08:51:52

标签: java sql-server jdbc glassfish-5

我正在尝试在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:Exception while   为pool [test_pool]创建一个unpooled [test]连接,   无法分配连接,因为:驱动程序无法分配   使用安全套接字建立与SQL Server的安全连接   层(SSL)加密。错误:"不支持的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()给出FAILURE。   endpoint =   ' http://localhost:4848/management/domain/resources/ping-connection-pool.json&#39 ;;   attrs =' {id = test_pool}']]

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

更新

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

1 个答案:

答案 0 :(得分:4)

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

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

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