2017-08-17 71 views
0

我得到這個「SQL狀態[null];錯誤代碼[0];連接已關閉;嵌套異常是com.microsoft.sqlserver.jdbc.SQLServerException:連接已關閉。 「使用數據庫鏡像使用springBootVersion ='1.5.4.RELEASE',JDBC驅動程序版本6和SQLServer 2008R2時出錯。我的連接設置:Spring連接錯誤引導

spring: 
    datasource: 
    initialize: false 
    username: user1 
    password: pass1 
    type: org.apache.tomcat.jdbc.pool.DataSource 
    connection-properties: 
statementPoolingCacheSize=200;failoverPartner=Server2;applicationName=${sp 
    ring.application.name} 
    url: jdbc:sqlserver://Server1;databaseName=DBName 
    tomcat: 
    initial-size: 10 
    max-active: 50 
    max-idle: 10 
    max-wait: 1000 
    validation-query: "SELECT 1" 

你能幫我確定爲什麼發生這個錯誤嗎?

+0

是服務器:'Server1'是您網絡上的有效主機名?它是否解析爲您託管SQL服務器的服務器?嘗試從命令提示執行'ping Server1'或'nslookup Server1',並驗證結果是你所期望的。你是否還需要指定一個特定的端口? – gmiley

+0

Server1僅作爲參考。我們傳遞了一個有效的主機名。如果數據庫在任何一臺數據庫服務器上都處於聯機狀態,則連接字符串將工作,只要我們故障轉移,它就會失敗並返回上述錯誤 –

回答

0

Tomcat本機連接池不適用於故障轉移,並且使用了hikari.HikariDataSource。

spring: 
    datasource: 
    initialize: false 
    type: com.zaxxer.hikari.HikariDataSource 
    username: user1 
    password: pass1 
    jdbcUrl: jdbc:sqlserver:/server1;databaseName=DB1;statementPoolingCacheSize=200;failoverPartner=server2;applicationName=${spring.application.name} 
    dataSourceClassname: com.microsoft.sqlserver.jdbc.SQLServerDataSource 
    hikari: 
     pool-name: TimeCommerce 
     connection-timeout: 1000 
     leak-detection-threshold: 5000 
     maximum-pool-size: 40 
     max-lifetime: 60000 
     minimum-idle: 20 
     connection-test-query: SELECT 1 
     test-on-borrow: true 
     test-on-connect: true 
     test-on-return: true