HikariPool-1-无法从数据源com.microsoft.sqlserver.jdbc.SQLServerException获取连接

时间:2019-07-26 15:32:08

标签: sql-server spring-boot ssl hikaricp hsm

使用

  • 春季:2.0 Hikari默认连接池。
  • 注意:已配置HSM(用于其他目的)
  • 连接字符串:jdbc:sqlserver:// server:port; databaseName = testDB
  • driverClassName :com.microsoft.sqlserver.jdbc.SQLServerDriver
  • 最大池大小:50

所有内容都能在两到三天内完美运行。突然我在日志中看到下面的调试问题。

2019-07-22 16:51:04.844  [HikariPool-1 connection adder] DEBUG com.zaxxer.hikari.pool.HikariPool - HikariPool-1 - Cannot acquire connection from data source
com.microsoft.sqlserver.jdbc.SQLServerException: The driver could not establish a secure connection to SQL Server by using Secure Sockets Layer (SSL) encryption. Error: "com.safenetinc.luna.LunaException: Could not read attributes of token object 9855". ClientConnectionId:***
    at com.microsoft.sqlserver.jdbc.SQLServerConnection.terminate(SQLServerConnection.java:2435)
    at com.microsoft.sqlserver.jdbc.TDSChannel.enableSSL(IOBuffer.java:1816)
    at com.microsoft.sqlserver.jdbc.SQLServerConnection.connectHelper(SQLServerConnection.java:2022)
    at com.microsoft.sqlserver.jdbc.SQLServerConnection.login(SQLServerConnection.java:1687)
    at com.microsoft.sqlserver.jdbc.SQLServerConnection.connectInternal(SQLServerConnection.java:1528)
    at com.microsoft.sqlserver.jdbc.SQLServerConnection.connect(SQLServerConnection.java:866)
    at com.microsoft.sqlserver.jdbc.SQLServerDriver.connect(SQLServerDriver.java:569)
    at com.zaxxer.hikari.util.DriverDataSource.getConnection(DriverDataSource.java:136)
    at com.zaxxer.hikari.pool.PoolBase.newConnection(PoolBase.java:369)
    at com.zaxxer.hikari.pool.PoolBase.newPoolEntry(PoolBase.java:198)
    at com.zaxxer.hikari.pool.HikariPool.createPoolEntry(HikariPool.java:467)
    at com.zaxxer.hikari.pool.HikariPool.access$100(HikariPool.java:71)
    at com.zaxxer.hikari.pool.HikariPool$PoolEntryCreator.call(HikariPool.java:706)
    at com.zaxxer.hikari.pool.HikariPool$PoolEntryCreator.call(HikariPool.java:692)
    at java.util.concurrent.FutureTask.run(FutureTask.java:266)
    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
    at java.lang.Thread.run(Thread.java:748)
Caused by: javax.net.ssl.SSLException: com.safenetinc.luna.LunaException: Could not read attributes of token object 9855
    at sun.security.ssl.Alerts.getSSLException(Alerts.java:208)
    at sun.security.ssl.SSLSocketImpl.fatal(SSLSocketImpl.java:1946)
    at sun.security.ssl.SSLSocketImpl.fatal(SSLSocketImpl.java:1903)
    at sun.security.ssl.SSLSocketImpl.handleException(SSLSocketImpl.java:1886)
    at sun.security.ssl.SSLSocketImpl.startHandshake(SSLSocketImpl.java:1402)
    at sun.security.ssl.SSLSocketImpl.startHandshake(SSLSocketImpl.java:1379)
    at com.microsoft.sqlserver.jdbc.TDSChannel.enableSSL(IOBuffer.java:1753)
    ... 16 common frames omitted
Caused by: com.safenetinc.luna.LunaException: Could not read attributes of token object 9855
    at com.safenetinc.luna.LunaTokenObject.<init>(LunaTokenObject.java:323)
    at com.safenetinc.luna.LunaTokenObject.LocateObjectByHandle(LunaTokenObject.java:194)
    at com.safenetinc.luna.provider.key.LunaKey.<init>(LunaKey.java:106)
    at com.safenetinc.luna.provider.key.LunaKeyEC.<init>(LunaKeyEC.java:27)
    at com.safenetinc.luna.provider.key.LunaPrivateKeyECDsa.<init>(LunaPrivateKeyECDsa.java:38)
    at com.safenetinc.luna.provider.keygen.LunaKeyPairGeneratorEc.generateKeyPair(LunaKeyPairGeneratorEc.java:121)
    at java.security.KeyPairGenerator$Delegate.generateKeyPair(KeyPairGenerator.java:703)
    at sun.security.ssl.ECDHCrypt.<init>(ECDHCrypt.java:78)
    at sun.security.ssl.ClientHandshaker.serverKeyExchange(ClientHandshaker.java:783)
    at sun.security.ssl.ClientHandshaker.processMessage(ClientHandshaker.java:302)
    at sun.security.ssl.Handshaker.processLoop(Handshaker.java:1037)
    at sun.security.ssl.Handshaker.process_record(Handshaker.java:965)
    at sun.security.ssl.SSLSocketImpl.readRecord(SSLSocketImpl.java:1064)
    at sun.security.ssl.SSLSocketImpl.performInitialHandshake(SSLSocketImpl.java:1367)
    at sun.security.ssl.SSLSocketImpl.startHandshake(SSLSocketImpl.java:1395)
    ... 18 common frames omitted
Caused by: com.safenetinc.luna.LunaCryptokiException: function 'C_GetAttributeValue for common attributes in GetInitialAttributes' returns 0x82 on object=9855
    at com.safenetinc.luna.LunaCryptokiException.ThrowNew(LunaCryptokiException.java:66)
    at com.safenetinc.luna.LunaAPI.GetInitialAttributes(Native Method)
    at com.safenetinc.luna.LunaTokenObject.<init>(LunaTokenObject.java:309)
    ... 32 common frames omitted

问题:

  1. 为什么SQL连接中有HSM异常?
  2. 我需要对数据库相关查询使用不同的SSL通信吗?该怎么做?
  3. 应用程序SSL连接如何与数据库查询相关?
  4. 此异常是什么-GetInitialAttributes返回0x82?
  5. 为什么SQL连接与Luna HSM ssl交互以及如何交互?

请帮助我。

0 个答案:

没有答案