Sun Java System Application Server Enterprise Edition 8.2 管理指南

建立 JDBC 連線池

若要建立 JDBC 資源,請指定與其關聯的連線池。多個 JDBC 資源可指定單一連線池。

JDBC 連線池是針對特定資料庫的一組可重複使用的連線。由於每建立一個新的實體連線都會耗費時間,因此伺服器維護了可用連線池以提高效能。當應用程式請求連線時,它可以從池中取得一個連線。應用程式關閉連線時,連線將傳回池中。

在您建立連線池時,實際上就是在定義與特定資料庫連線的相關事項。建立池之前,您必須首先安裝並整合 JDBC 驅動程式。連線池的特性可能會隨資料庫供應商的不同而有所不同。某些特性是通用的,例如資料庫名稱 (URL)、使用者名稱和密碼。

必須輸入 JDBC 驅動程式和資料庫供應商的特定資料。繼續操作之前,請先收集以下資訊:

JDBC 連線池是針對特定資料庫的一組可重複使用的連線。使用 Administration Console 建立連線池時,管理員實際上是在定義與特定資料庫的連線的各個方面。

建立池之前,您必須首先安裝並整合 JDBC 驅動程式。建置 [建立連線池] 頁面時,必須輸入特定於 JDBC 驅動程式和資料庫供應商的特定資料。繼續操作之前,請先收集以下資訊:

定義您所安裝的 JDBC 驅動程式所指定的一般設定值。這些設定是 Java 程式設計語言中的類別名稱或介面名稱。

參數

說明

DataSource Class Name

實作 DataSource 和/或 XADataSource API 的供應商特定的類別名稱。該類別位於 JDBC 驅動程式中。

Resource Type

選項包括 javax.sql.DataSource (僅限於本機作業事件)、javax.sql.XADataSource (全域作業事件) 和 java.sql.ConnectionPoolDataSource (本機作業事件,可能會改善效能)。

另外,您必須定義一組常駐於池中的實體資料庫連線。應用程式請求連線時,將從池中移除該連線;而應用程式釋放該連線之後,連線將傳回到池中。

參數

說明

池的初始大小和最小大小 

池中連線的最小數目。該值還確定了首次建立池或應用程式伺服器啟動時置於池中的連線的數目。 

池的最大大小 

池中連線的最大數目。 

池設定大小數量 

當池向最小池大小收縮時,將成批調整大小。此值確定批次中的連線數目。將該值設置過大會延遲連線循環;而將該值設置過小則會導致效率降低。 

閒置逾時 

連線可以在儲存區中閒置的最大時間 (以秒表示)。一旦超過此時間,即從池中移除該連線。 

最長等待時間 

請求連線的應用程式在達到連線逾時之前等待的時間。由於預設等待時間過長,應用程式可能會出現無限期當機的情況。 

選擇性地,應用程式伺服器可以在將連線傳送給應用程式之前驗證連線。當由於網路出現故障或資料庫伺服器當機造成資料庫不可用時,此驗證可允許 Application Server 自動重新建立資料庫連線。連線驗證會耗用額外的時間,並會略微降低效能。

參數

說明

連線驗證 

選取 [需要] 核取方塊以啟用連線驗證。 

驗證方法 

應用程式伺服器可以使用三種方法來驗證資料庫連線:auto-commit、metadata 和 table。 

auto-commit 和 metadata - Application Server 透過呼叫 con.getAutoCommit() 方法和 con.getMetaData() 方法來驗證連線。但是,由於許多 JDBC 驅動程式快取了這些呼叫的結果,因此這兩種方法無法始終提供可靠的驗證。請與驅動程式供應商進行核實,以確定這些呼叫是否被快取。

table - 應用程式將查詢指定的資料庫表格。此表必須存在並且可以存取,但不要求表的列數。請勿使用包含許多列的現有表或經常存取的表。 

表格名稱 

如果從 [驗證方法] 組合方塊中選取了表,請在此處指定資料庫表格的名稱。 

一旦失敗 

選取標記為 [關閉所有連線] 的核取方塊之後,如果單一連線失敗,Application Server 將關閉池中的所有連線,然後重新建立這些連線。如果未選取此核取方塊,則僅在要使用個別連線時才會重新建立這些連線。 

由於許多使用者通常可以同步運作地存取一個資料庫,因此可能出現一個作業事件在更新資料而另一個作業事件嘗試讀取同一資料的情況。作業事件的隔絕層級定義了正在更新的資料對於其他作業事件的可視程度。如需有關隔絕層級的詳細資訊,請參閱資料庫供應商的文件。

參數

說明

作業事件隔絕 

使您可以為該池的連線選取作業事件隔絕層級。如果不指定此參數,連線將使用 JDBC 驅動程式提供的預設隔絕層級進行作業。 

受保證隔絕層級 

該項僅在指定了隔絕層級的情況下才適用。如果選取 [受保證] 核取方塊,則從池中獲取的所有連線都具有相同的隔絕層級。例如,如果上次使用連線時程式化 (使用 con.setTransactionIsolation) 變更了連線的隔離層級,這種機制會將狀態變更回指定的隔離層級。