您可以選擇配置 Oracle 資料來源來使用 Oracle 連線快取特性,而不使用應用程式伺服器連線儲存區。
Oracle 資料庫的連線快取類似於應用程式伺服器中的連線儲存區。
關於這項作業
目前,Oracle 只支援使用 oracle.jdbc.pool.OracleDataSource 實作類別之資料來源的連線快取,不支援使用 oracle.jdbc.pool.OracleConnectionPoolDataSource 或 oracle.jdbc.xa.client.OracleXADataSource 類別之資料來源的連線快取。
依預設,應用程式伺服器中的 Oracle JDBC 提供者會配置成在非 XA 資料來源上使用 oracle.jdbc.pool.OracleConnectionPoolDataSource,或在 XA 資料來源上使用 oracle.jdbc.xa.client.OracleXADataSource。
如果要啟用 Oracle 連線快取,您必須在實作 oracle.jdbc.pool.OracleDataSource 類別的應用程式伺服器中,配置及使用新的 JDBC 提供者。
避免困難: Oracle 連線快取不支援 XA。
gotcha
程序
- 建立資料來源和使用者定義的 JDBC 提供者。
- 按一下
- 從範圍下拉清單中,選取一部伺服器。
- 按一下新建。
- 輸入資料來源的名稱和 JNDI 名稱。按下一步。
- 建立 JDBC 提供者。 選取建立新的 JDBC 提供者,然後按下一步。
- 定義 JDBC 提供者的必要內容。 請使用下列配置設定:
- 資料庫類型:使用者定義
- 實作類別名稱:oracle.jdbc.pool.OracleDataSource
按下一步。
- 輸入 ojdbc6.jar 的類別路徑,然後按下一步。
- 針對資料儲存庫 Helper 類別名稱,輸入 com.ibm.websphere.rsadapter.Oracle11gDataStoreHelper。
按下一步。
- 定義這個資料來源的安全別名,然後按下一步。
- 完成精靈。
- 儲存配置變更。
- 配置您建立的資料來源。
- 按一下資料來源的名稱。 這時會顯示配置畫面。
- 選取自訂內容,然後建立或修改這個資料來源的內容。 輸入或更新下列自訂內容:
名稱 |
值 |
disableWASConnectionPooling |
true
避免困難: 另外,您也必須在 WebSphere® Application Server 連線儲存區設定上,將 maximumPoolSize 屬性設為 0,以容許 Oracle 控制儲存區界限。 gotcha
|
connectionCachingEnabled |
true |
connectionCacheName |
your_cache_name |
removeExistingOracleConnectionPoolIfExists |
true
避免困難: removeExistingOracleConnectionPoolIfExists 內容必須設為 true,以便應用程式伺服器移除任何現有的同名 Oracle 連線儲存區。
否則,如果建立的儲存區名稱與現有的儲存區同名,Oracle 資料來源會使 getConnection 失敗。
比方說,如果您執行測試連線,測試連線程序會建立一個在執行時期使應用程式伺服器無法正常運作的 Oracle 連線儲存區。
gotcha
|
URL |
Oracle_URL |
避免困難: 自訂內容的設定順序很重要。
由於應用程式伺服器會將內容當作一個集合來傳遞,且並不保證順序,因此,設定順序有可能成為問題。
如果發生這個問題,請聯絡 Oracle,參照 Oracle 錯誤 #6638862。
gotcha
- 按一下套用或確定。
- 將變更儲存在應用程式伺服器配置中。
- 重新啟動應用程式伺服器。
結果
如果建立儲存區失敗,Oracle 不會顯示訊息,相反地,它會傳回正常連線。
您可以將管理主控台測試連線功能用於這個資料來源,以確認建立了 Oracle 連線儲存區。
首先,請針對執行應用程式的伺服器,設定追蹤字串 "RRA=all" 來開啟追蹤。
然後,發出測試連線。發出第二個測試連線。這時兩個測試連線應該都能夠運作。請檢查追蹤日誌。
如果已順利建立 Oracle 連線儲存區,追蹤會顯示出,第二個測試連線因第一個測試連線而偵測到 Oracle 連線快取存在,且已順利將它移除,以便第二個測試能夠重新建立它。