1. 程式人生 > >資料庫連線池資料庫異常自動重連配置彙總

資料庫連線池資料庫異常自動重連配置彙總



在實際應用中,有的時候會遇到這樣一種情況:

資料庫和應用伺服器分別在兩臺主機上,當資料庫連線意外斷開,自動重新連線後,應用和資料庫能夠重新連線成功,但是報表應用就無法使用了,必須重啟應用伺服器,才能繼續使用報表應用。

下面介紹一種方法,使得不重啟應用伺服器就可以重新連線報表應用。

DBCP:

對屬性 validationQuery 設定一個簡單的SQL語句就行了,例如:select 1 (mysql 和 sql server 適用);

WebLogic:

進入某個連線池配置頁,進入”連線”頁,點選高階選項的”show”顯示高階選項。

指定 “測試頻率” 並啟用 “測試保留的連線”、”測試建立的連線” 和 “測試釋放的連線”。

測試頻率(Test Frequency): 60 秒

自動資料庫連線測試之間的秒數(0 – 32 位正整數)。測試失敗的連線將被關閉,然後重新開啟以重新建立有效的物理資料庫連線。(必須在下面指定測試表名稱。)

The number of seconds (between 0 and a positive 32-bit integer) between automatic database connection tests. Connections that fail the test are closed and reopened to re-establish a valid physical database connection. (You must specify a Test Table Name below.)

測試保留的連線(Test Reserved Connections)

指定 WebLogic Server 是否在將連線提供給客戶端之前測試該連線。(必須在下面指定測試表名稱。)

Specifies whether WebLogic Server tests a connection before giving it to the client. (You must specify a Test Table Name below.)

測試建立的連線(Test Created Connections)

指定 WebLogic Server 是否在建立連線後且將該連線新增到緩衝池中可用連線列表之前對該連線進行測試。(必須指定測試表名稱。)

Specifies whether WebLogic Server tests a connection after creating it but before adding it to the list of connections available in the pool. (You must specify a Test Table Name.)

測試釋放的連線(Test Released Connections)

指定 WebLogic Server 是否在將連線返回到該 JDBC 連線緩衝池之前測試該連線。(必須指定測試表名稱。)

Specifies whether WebLogic Server tests a connection before returning it to this JDBC connection pool. (You must specify a Test Table Name.)

連線保留超時(Connection Reserve Timeout): 設為 30 秒

在保留緩衝池連線的呼叫超時之前的秒數(-1 – 32 位正整數)。如果設定為 -1,則呼叫永遠不會超時。

The number of seconds (between -1 and a positive 32-bit integer) after which a call to reserve a connection from the pool will timeout. When set to 0, a call will never timeout. When set to -1, a call will timeout immediately

重試建立連線的頻率(Connection Creation Retry Frequency): 設為 30 秒 嘗試建立與資料庫的連線的間隔秒數(0 – 32 位正整數)。適用於在資料庫不可用的情況下伺服器啟動時建立的連線緩衝池。

The number of seconds (between 0 and a positive 32-bit integer) between attempts to establish connections to the database. Applies to connection pools created at server startup when the database is unavailable.

鈍化連線超時(Inactive Connection Timeout):

The number of inactive seconds on a reserved connection (between 0 and a positive 32-bit integer) before WebLogic Server reclaims the connection and releases it back into the connection pool.

伺服器申請複議連線並且保留返回給連線池前的鈍化時間

測試表名稱(Test Table Name):

oracle的連線池預設為 SQL SELECT 1 FROM DUAL,sybase資料庫可以填入一個記錄不多的配置表名例如sys_code。

The name of the database table to use when testing physical database connections. This field is required when you specify a Test Frequency and enable Test Reserved Connections, Test Created Connections, and Test Released Connections.

JBoss:

以下標註紅色的內容就是自動重連功能.




test
jdbc:oracle:thin:@192.168.0.1:1521:test
oracle.jdbc.driver.OracleDriver
test

123456 org.jboss.resource.adapter.jdbc.vendor.OracleExceptionSorter
select 1 from testtable–>
select 1 from testtable
5
20
0 32