JDBC 連線池是針對特定資料庫的一組可重複使用的連線。使用管理主控台建立連線池時,管理員實際上是在定義與特定資料庫的連線之各種資訊。
建立池之前,您必須首先安裝並整合 JDBC 驅動程式。建置 [建立連線池] 頁面時,必須輸入特定於 JDBC 驅動程式和資料庫供應商的特定資料。繼續操作之前,請先收集以下資訊:
資料庫供應商名稱
資源類型,例如 javax.sql.DataSource (僅限於本機作業事件) javax.sql.XADataSource (全域作業事件)
資料來源類別名稱
必需的特性,例如資料庫名稱 (URL)、使用者名稱和密碼
[編輯 JDBC 連線池] 頁面為您提供了變更現有池的所有設定 (池的名稱除外) 的方法。
變更一般設定。
一般設定的值取決於安裝的特定 JDBC 驅動程式。這些設定是 Java 程式設計語言中的類別名稱或介面名稱。
參數 |
說明 |
---|---|
資料來源類別名稱 |
實作 DataSource 和/或 XADataSource API 特定供應商的類別名稱。該類別位於 JDBC 驅動程式中。 |
資源類型 |
選項包括 javax.sql.DataSource (僅限於本機作業事件)、javax.sql.XADataSource (全域作業事件) 和 java.sql.ConnectionPoolDataSource (本機作業事件,可能會改善效能)。 |
變更池設定。
一組實體資料庫連線保存在池中。應用程式請求連線時,將從池中移除該連線;而應用程式釋放該連線之後,連線將傳回到池中。
參數 |
說明 |
---|---|
池的初始大小和最小大小 |
池中連線的最小數目。此值還決定首次建立池或 Application Server 啟動時,置於池中的連線數目。 |
最大池大小 |
池中連線的最大數目。 |
池設定大小數量 |
當池分別朝著最大池大小向上調整,以及朝著最小池大小向下調整時,會以批次方式調整。此值確定批次中的連線數目。將此值設置過大會延遲連線建立和資源回收;而將該值設置過小則會導致效率降低。 |
閒置逾時 |
連線可以在儲存區中閒置的最大時間 (以秒表示)。一旦超過此時間,即從池中移除該連線。 |
最大等待時間 |
請求連線的應用程式在達到連線逾時之前等待的時間。由於預設等待時間過長,應用程式可能會出現無限期當機的情況。 |
變更連線驗證設定。
您也可以在將連線傳送給應用程式之前,讓 Application Server 驗證連線。當由於網路出現故障或資料庫伺服器當機造成資料庫不可用時,此驗證可允許 Application Server 自動重新建立資料庫連線。連線驗證會耗用額外的時間,並會略微降低效能。
參數 |
說明 |
---|---|
連線驗證 |
選取 [需要] 核取方塊以啟用連線驗證。 |
驗證方法 |
Application Server 可以使用三種方法來驗證資料庫連線:auto-commit、metadata 和 table。 auto-commit 和 metadata - Application Server 透過呼叫 con.getAutoCommit() 方法和 con.getMetaData() 方法來驗證連線。 備註 – 由於許多 JDBC 驅動程式快取了這些呼叫的結果,因此這兩種方法無法始終提供可靠的驗證。請與驅動程式供應商進行核實,以確定這些呼叫是否被快取。 table - 應用程式將查詢指定的資料庫表格。此表必須存在並且可以存取,但不要求表的列數。請勿使用包含許多列的現有表或經常存取的表。 |
表格名稱 |
如果從 [驗證方法] 組合方塊中選取了表,請在此處指定資料庫表格的名稱。 |
一旦失敗 |
選取標記為 [關閉所有連線] 的核取方塊之後,如果單一連線失敗,Application Server 將關閉池中的所有連線,然後重新建立這些連線。如果未選取此核取方塊,則僅在要使用個別連線時才會重新建立這些連線。 |
允許非元件呼叫者 |
若要讓非元件呼叫者 (例如 Servlet 篩選和生命週期模組) 使用此連線池,請按一下此核取方塊。 |
變更作業事件隔離設定。
由於許多使用者通常可以同步運作地存取一個資料庫,因此可能出現一個作業事件在更新資料而另一個作業事件嘗試讀取同一資料的情況。作業事件的隔絕層級定義了正在更新的資料對於其他作業事件的可視程度。如需有關隔絕層級的詳細資訊,請參閱資料庫供應商的文件。
參數 |
說明 |
---|---|
非作業事件連線 |
如果您要 Application Server 傳回所有非作業事件連線,請按一下核取方塊。 |
作業事件隔離 |
使您可以為該池的連線選取作業事件隔絕層級。如果不指定此參數,連線將使用 JDBC 驅動程式提供的預設隔絕層級進行作業。 |
保證的隔離層級 |
該項僅在指定了隔絕層級的情況下才適用。如果選取 [受保證] 核取方塊,則從池中獲取的所有連線都具有相同的隔絕層級。例如,如果上次使用連線時程式化 (使用 con.setTransactionIsolation) 變更了連線的隔離層級,這種機制會將狀態變更回指定的隔離層級。 |
變更特性。
在 [附加特性] 表中,可以指定資料庫名稱 (URL)、使用者名稱和密碼等特性。由於隨資料庫供應商的不同,特性也會有所不同,因此請查閱供應商文件以取得詳細資訊。
為了協助診斷連線漏失並改善易於使用性,Application Server 9.1 提供了數種新屬性,讓您在建立連線池時進行配置。
開啟 [進階] 標籤並指定下列屬性。
屬性 |
說明 |
名稱 |
要編輯之特性所屬的 JDBC 連線池名稱。不過您無法變更池名稱。 |
敘述逾時 |
查詢執行時間如果過久,則在經過這段時間後 (以秒為單位) 即需終止。Application Server 將在建立的敘述上設定「查詢逾時」。預設值 -1 表示屬性未啟用。 |
環繞 JDBC 物件 |
設為 true 時,應用程式將為 Statement、PreparedStatement、CallableStatement、ResultSet、DatabaseMetaData 取得環繞的 JDBC 物件。預設值為 false。 |
如下表所示指定連線設定。
屬性 |
說明 |
最多驗證一次 |
經過這段時間後 (以秒為單位),最多只驗證一次連線。這將有助於減少連線的驗證請求數。預設值 0 表示不啟用連線驗證。 |
漏失逾時 |
用來追蹤連線池中連線漏失的時間量 (以秒為單位)。預設值 0 表示停用連線漏失追蹤。如果啟用連線漏失追蹤,可在 [監視資源] 標籤中取得連線漏失數統計資料。若要檢視此標籤,請前往 [Application Server ] > [監視] > [資源]。 |
漏失收回 |
如果啟用此選項,則會在完成漏失連線追蹤後,將漏失的連線復原到池中。 |
建立重新嘗試次數 |
如果建立新連線失敗,將進行的嘗試次數。預設值 0 表示不再嘗試重新建立連線。 |
重試間隔 |
指定兩次嘗試建立連線的時間間隔 (以秒為單位)。預設值是 10 秒。唯有當「建立重試次數」值大於 0 時,才能使用此屬性。 |
惰性連線登記 |
啟用此選項可將資源登記至作業事件,但資源必須實際用於方法中。 |
惰性關聯 |
對連線執行作業時,連線才會產生惰性關聯。此外,完成作業事件及結束元件方法時,也會取消連線的關聯,如此將有助於重複使用實體連線。預設值為 false。 |
與執行緒建立關聯 |
啟用此選項可使連線與執行緒產生關聯,如此當相同的執行緒需要連線時,就可以重複使用與該執行緒已產生關聯的連線,藉此避免產生從池中取得連線的經常性耗用時間。預設值為 false。 |
相符連線 |
使用此選項可開啟/關閉池的連線比對功能。如果管理員知道池中連線一律是同質的,因此從池中挑選連線時不需要由資源配接卡比對,則可將此選項設為 false。預設值為 false。 |
最大連線使用率 |
指定池可以重複使用連線的次數。重複使用指定次數的連線後,就會關閉連線。例如,這對避免敘述錯誤這類情形很有用。預設值 0 表示不會重複使用連線。 |