為使用 DB2 資料庫的應用程式配置用戶端重新遞送
您可以使用用戶端重新遞送特性,將 DB2® 資料庫的企業應用程式配置成可從遺失的通訊回復,且應用程式可以繼續運作,並將中斷情況降至最低。重新遞送是持續作業支援的核心,但是必須要有一個被視為應用程式伺服器連線的替代位置,才有可能進行重新遞送。
開始之前
這項作業假設:
- 您應用程式所連接的 DB2 資料來源正在執行:
- DB2 for z/OS® 10.1 版或更新版本或
- DB2 Database for Linux、UNIX 和 Windows 9.7 版或更新版本
- 已使用備援設定來配置 DB2 資料庫,或能夠將 DB2 伺服器交由待命節點失效接手。
關於這項作業
您可以將用戶端重新遞送用於 DB2,以便在主要資料庫伺服器連線失敗時,提供替代伺服器的相關資訊。
在適用於 DB2 的 Java™ Common Connectivity (JCC) Java 資料庫連線功能 (JDBC) 驅動程式與 DB2 伺服器建立起始連線時,只要 DB2 伺服器有啟用用戶端重新遞送功能,此驅動程式即支援這項功能,而不需在用戶端上進行任何配置。當 JCC JDBC 驅動程式連接 DB2 伺服器時,只要該伺服器已配置一或多部替代伺服器,主要伺服器會將替代伺服器的相關資訊傳送給 JCC JDBC 驅動程式。如果主要伺服器連線失敗,JCC JDBC 驅動程式能夠將連線重新遞送至替代伺服器。不過,如果應用程式伺服器程序當機,替代伺服器資訊會遺失,用戶端必須重新連接主要伺服器。如果用戶端無法與主要伺服器建立起始連線,用戶端就對替代伺服器一無所知,而無法重新遞送。
如果要克服這個問題,您可以利用替代伺服器名稱和替代埠號欄位,或利用 clientRerouteAlternateServerName 和 clientRerouteAlternatePortNumber 資料來源自訂內容,來配置應用程式伺服器中的 DB2 資料來源,以便即使在嘗試起始連線時,也能夠支援用戶端重新遞送。 如果 JDBC 驅動程式無法連接主要 DB2 伺服器,進行用戶端重新遞送所需的資訊也已存在,則 JDBC 驅動程式就能將連線重新遞送至替代伺服器。
在重新遞送連線時,會將 JCC JDBC 驅動程式連接替代 DB2 伺服器,且替代伺服器會將其本身替代伺服器的相關資訊傳送給 JCC JDBC 驅動程式。之後,如果替代 DB2 伺服器無法使用,JCC JDBC 驅動程式即具有再次重新遞送連線所需的資訊。原本是替代伺服器的伺服器現在就成了主要伺服器,且會建立新的替代伺服器。不過,JCC JDBC 驅動程式不再保留主要與替代伺服器的這個新狀態。如果應用程式伺服器失敗並重新啟動,JCC JDBC 驅動程式必須從原始伺服器配置啟動,並嘗試連接原本視為主要伺服器的伺服器。
您可以在下列 DB2 可配置環境內使用自動化用戶端重新遞送特性:
程序
範例
<dataSource id="DefaultDataSource"jndiName="jdbc/db2">
<properties.db2.jcc
databaseName="sampleDatabase"
driverType="4"
serverName="host"
portNumber="50000"
clientRerouteAlternateServerName="host01, host02, host03"
clientRerouteAlternatePortNumber="50000, 50005, 50000"
retryIntervalForClientReroute="2"
maxRetriesForClientReroute="3" />
...
</dataSource>