使用 [編輯連線池進階屬性] 頁面可指定能幫助診斷連線錯誤和改善簡易操作性的屬性。
[編輯連線池進階屬性] 頁面包含下列選項。
用於將具有預設值的設定復原成其預設值的按鈕。沒有預設值的設定保持不變。
連線池的名稱。名稱是唯讀欄位。您僅能在建立新的 JDBC 連線池時指定連線池名稱。
終止執行時間過長的查詢之前,等待的時間長度 (以秒為單位)。GlassFish Server 將對建立的敘述設定 QueryTimeout。值 –1 表示停用該選項。預設值為 –1。
要使用 LRU (近來最少使用) 快取機制快取的陳述式數目。0 值會停用陳述式快取。預設值為 0。
每當在池中建立連線時會執行的 SQL 字串 (不重複使用)。執行此字串會初始化連線狀態。
以逗號分隔的偵聽程式實作類別名稱清單,會指定追蹤應用程式執行的 SQL 陳述式。偵聽程式類別必須實作 org.glassfish.api.jdbc.SQLTraceListener 介面。使用偵聽程式能讓您針對 SQL 陳述式輕鬆篩選記錄訊息,且能幫助管理員分析陳述式。
若啟用此選項,應用程式將會取得 Statement、PreparedStatement、CallableStatement、ResultSet、DatabaseMetaData 的包裝 JDBC 物件。此選項預設為啟用。
針對池啟用連線池儲存。此選項預設為啟用。
指定連續請求驗證連線的最長時間間隔 (以秒為單位)。將此屬性設定為適當值,可將驗證連線請求的數目減至最小。預設值為 0,表示未啟用該屬性。
追蹤連線池中連線錯誤的時間 (以秒為單位)。使用此欄位可偵測應用程式造成的潛在連線錯誤。若應用程式未於指定期間內將連線傳回池,則會假設連線可能發生錯誤,並會記錄呼叫者的堆疊追蹤。0 值表示已停用連線錯誤追蹤。預設值為 0。
將此欄位與 [錯誤收回] 欄位配合使用,可避免應用程式造成的潛在連線錯誤。
若啟用此選項,則在錯誤連線追蹤完成之後,會將錯誤的連線復原至連線池中。此選項預設為停用。
在建立新連線失敗之後,將進行的嘗試次數。值 0 表示不會再次嘗試建立連線。預設值為 0。
兩次嘗試建立連線之間的時間間隔 (以秒為單位)。預設值為 10。僅當 [建立重新嘗試次數] 的值大於 0 時,才使用該屬性。
若啟用此選項,僅當使用連線時,才會將實體連線與邏輯集合關聯。當作業事件完成且元件方法結束時,這些連線便會取消關聯,從而可以重複使用實體連線。此選項預設為停用。
若啟用此選項,僅當資源在方法中實際使用時,才會將該資源加入作業事件。此選項預設為停用。
若啟用此選項,將建立連線與執行緒之間的關聯,這樣當相同的執行緒需要連線時,便可重複使用已與該執行緒相關聯的連線,而省下從池中取得連線的經常性耗用時間。此選項預設為停用。
若啟用此選項,會將從池中選取的連線與具有特定憑證的連線加以比對。如果連線池是供具有多個使用者憑證的應用程式使用,則必須啟用此選項。您可以在以下情況下安全地停用此選項:管理員知道池中的連線一定是同質連線,因此不需要資源配接卡對從池中挑選的連線進行比對。此選項預設為停用。
連線池應重複使用連線的次數。重複使用指定次數的連線後,就會關閉連線。您可以透過限制連線可重複使用的次數,避免在應用程式未關閉陳述式時,發生陳述式錯誤。值 0 表示停用此屬性。預設值為 0。
若啟用此選項,則需要驗證連線,以在失敗時允許伺服器重新連線。
GlassFish Server 可使用以下方式驗證資料庫連線。
GlassFish Server 會透過呼叫 con.getAutoCommit 或 con.getMetaData 方法驗證連線。
備註 - 許多 JDBC 驅動程式會快取這些呼叫的結果。因此,使用這些呼叫不一定能提供可靠的驗證。請與驅動程式供應商進行核實,以確定這些呼叫是否被快取。
GlassFish Server 會使用 [驗證類別名稱] 欄位中的自訂實作類別所指定的使用者定義驗證機制。
應用程式會查詢指定的資料庫表格。此表格必須存在並且可以存取,但不要求表格的列數。請勿使用包含許多列的現有表格或經常存取的表格。
用於驗證的資料庫表格名稱。只有在 [驗證方法] 設為 table 時,才可使用此欄位。
自訂驗證實作類別名稱。只有在 [驗證方法] 設為 custom-validation 時,才可使用此欄位。GlassFish Server 必須可以存取提供的類別名稱。指定的類別必須實作 org.glassfish.api.jdbc.ConnectionValidation 介面。
若啟用此選項,則在任何連線失敗時,GlassFish Server 會關閉池中的所有連線並重新建立連線。若停用此選項,則僅會在使用連線時重新建立個別連線。此選項預設為停用。
若啟用此選項,則非元件呼叫者 (例如 Servlet 篩選與第三方持續性管理員) 可使用池。非元件呼叫者所取得的連線,不會在作業事件結束時由容器自動關閉。這些連線必須由呼叫者明確地關閉。此選項預設為停用。