【发布时间】:2018-03-22 20:56:41
【问题描述】:
我正在尝试在 glassfish 5 中为 Microsoft SQL Server 数据库创建一个 jdbc 连接池。我正在使用mssql-jdbc-6.2.2.jre8.jar 和最新的 SQLExpress 服务器版本 (MSSQL14.SQLEXPRESS)
资源类型:javax.sql.DataSource
数据源类名:com.microsoft.sqlserver.jdbc.SQLServerDataSource
对 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] 连接, 无法分配连接,因为:驱动程序无法 使用安全套接字建立与 SQL Server 的安全连接 层 (SSL) 加密。错误:“不支持的曲线 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 运行查询时,我遇到了同样的问题,因为 glassfish 日志中抛出了同样的错误/休眠。
【问题讨论】:
-
看起来像SSL is mandatory for Microsoft SQL server。愚蠢的问题:你试过SSL-enabled的配置吗?
-
其实我没有,因为目前我不需要 SSL...不过,通过 glassfish-4 安装连接到同一个数据库没有问题。
-
这里的问题完全相同(因此无法升级到 GlassFish 5.0,尽管它在 4.1.1 上运行良好),您是否能够解决此问题?
-
对不起,我没有时间再试一次...我现在也坚持使用 4.1.1..
标签: java sql-server jdbc glassfish-5