JBoss EAP Connection Pool Validation 設定 – 使 Database 斷線後,自動

Database connection pool 在應用系統中是個普遍會採用的設定,使用 Connection pool 的好處就像使用環保餐具一樣,用過的 Connection 不丟棄,每次重新建立 Database Connection 的成本太大,所以應用系統中通常都會設定 Database Connection Pool。

Database connection pool 可以從 Application 設定,也可以從 AP Server 來設定,如果在 Application 設定,通常使用 DBCP,如果讓各 AP Server 來設定,那設定方式可能就有些不一樣。

最近使用 JBoss 來設定 Database connection pool 的時候,發現有這麼一個情形,如果 Database shutdown 以後, connection pool 並不會自己重新 reconnect,直到重啟 JBoss Server 為止。

原來 JBoss EAP Connection pool 的設定不特別設定,是不會自己重新連線的。

增加 Validation Check Jboss Connection Pool Validation 設定

  • Valid Connection Checker — 各家 Database 對於 Connection Valid 的機制可能有一些差異,所以會有不同的 Checker。
    • Orcale— org.jboss.resource.adapter.jdbc.vendor.OracleValidConnectionChecker
    • SQLServer org.jboss.jca.adapters.extensions.mssql.MSSQLValidConnectionChecker
  • Check Valid SQL — 用來檢查 Connection 是否正常運作的 SQL。
  • Valid on match — 已經接上的 Connection 是否需要檢查,預設為 True
  • Background Validation — 這是新版 JBoss (After 4.0.5) 才有的設定值,在處理 Valid Connection 的時候,會開另外一個 Thread 來處理,如果設定了Validation Mills 那這個值就必須為 True
  • Validation Mills — 多久檢查一次。
Scroll to Top