当前位置: 首页 > 知识库问答 >
问题:

Glassfish中的JDBC连接池ping错误

鱼安然
2023-03-14

我试图在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的连接池失败。无法分配连接,原因是:驱动程序无法使用安全套接字层(SSL)加密建立到SQL Server的安全连接。错误:“unsupported 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:_thread=125_threadname=admin-listener(7)][timeMillis:1507708511747][levelvalue:900][[RAR8054:为池[test_pool]创建非池[test]连接时出现异常,无法分配连接,原因是:驱动程序无法使用安全套接字层

[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()失败。endpoint=“http://localhost:4848/management/domain/resources/ping-connection-pool.json”;attrs=“{id=test_pool}”]]

我正在运行Windows10,并且所有的东西都在本地运行(Glassfish安装、SQL server)

更新

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

共有1个答案

邹嘉石
2023-03-14

Windows 10上的Glassfish 5也面临这一问题,禁用椭圆曲线确实起到了作用,只需添加:

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

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

 类似资料:
  • 我使用以下参数创建连接池: 我尝试在glassfish web界面中ping,我得到了一个例外: MyPool的ping连接池失败。无法分配连接,因为:ORA-00604:递归SQL级别1 ORA-12705发生错误:无法访问指定的NLS数据文件或无效环境请查看server.log了解更多详细信息。发生错误MyPool的ping连接池失败。无法分配连接,因为:ORA-00604:递归SQL级别1

  • 我们刚刚从dbcp迁移到tomcat jdbc连池。我们在加载中尝试了系统,收到了以下异常: 请注意: 不忙的连接在哪里?忙的数字在这之后一直在下降,但我们仍然没有得到任何连接。 有什么想法吗? 配置: env:ubuntu和tomcat 6. db-mysql

  • Ping MySQL池的连接池失败。无法分配连接,原因是:通信链路失败上次成功发送到服务器的数据包是0毫秒前。驱动程序没有从服务器接收到任何数据包。有关详细信息,请查看server.log。

  • 前几天我经历了应用程序的中断,我需要了解以后如何避免这种情况。 我们有一个运行在Tomcat7上的基于Java的web应用程序。应用程序连接到几个不同的数据源,包括Oracle数据库。 下面是我对连接验证的理解。 连接在空闲时(testWhileIdle=false)、借用时(testOnBorrow=false)、返回时(testOnReturn=false) 由于timeBetweenEvic

  • 我使用作为我的数据源实现,我的代码获取连接并关闭连接,如下所示: 当我完成连接工作时,我将关闭它 我的问题是:确实是关闭的,所以当连接像一样关闭时,数据源是如何工作的。我听说datasource connection close并不是真正的close,只是release,但我在datasource类中找不到release API。我想知道datasource如何管理数据库连接的创建、关闭和释放。

  • 问题内容: 我们使用JDBC的标准代码部分是… 问题1:使用连接池时,是否应该在最后关闭连接?如果是这样,合并的目的就不会丢失吗?如果不是,那么DataSource如何知道何时释放Connection的特定实例并可以重用?我对此感到有些困惑,任何指针都表示赞赏。 问题2:以下方法是否接近标准?看起来像是尝试从池中获取连接,并且如果无法建立DataSource,请使用老式的DriverManager