如何回復資料庫交易

當 Liberty 交易管理程式回復不確定的資料庫交易時,它會利用唯一 ID 或 JNDI 名稱來尋找現行 dataSource 元素,然後決定要用於回復的使用者 ID 和密碼。

請在 server.xml 配置檔中指定 dataSource 元素的屬性來配置資料來源。 您可以依照下列方式來指派資料來源的唯一 ID 或 jndiName 屬性:

 <dataSource id="ds1" jndiName="jdbc/ds1"... />

當資料來源所參與之交易的回復在擱置中,您不能變更 idjndiName 屬性值。 如果您變更 dataSource 元素的任何其他屬性,回復會保留這些變更。 因此,您可以,比方說,新增一個 recoveryAuthDataRef 屬性來指定要用於回復的資料庫使用者 ID 和密碼。

當判斷要用於回復的資料庫使用者 ID 和密碼時,會根據下列優先順序:
  1. 如果 dataSource 元素定義了 recoveryAuthDataRef 屬性,就會使用 authData 元素的使用者 ID 和密碼。 例如:
    <authData id="recoveryAuth" user="dbuser1" password="{xor}Oz0vKDtu"/>
    <dataSource id="ds1" jndiName="jdbc/ds1" jdbcDriverRef="DB2"
                recoveryAuthDataRef="recoveryAuth" .../>
  2. 如果使用儲存器管理的鑑別,就會使用儲存器管理的鑑別別名中的使用者 ID 和密碼。 例如:
    • ibm-web-bnd.xml 檔中,您有下列程式碼:
      <resource-ref name="jdbc/ds1ref" binding-name="jdbc/ds1">
          <authentication-alias name="user1Auth"/>
       </resource-ref>
    • server.xml 檔中,您必須定義下列程式碼:
      <authData id="user1Auth" user="dbuser1" password="{xor}Oz0vKDtu"/>
      <dataSource id="ds1" jndiName="jdbc/ds1" jdbcDriverRef="DB2" .../>
  3. 使用 dataSource 元素中的使用者 ID 和密碼。 例如:
    <dataSource id="ds1" jndiName="jdbc/ds1" jdbcDriverRef="DB2" ...>
         <properties.db2.jcc databaseName="testdb" user="dbuser1" password="{xor}Oz0vKDtu"/>
    </dataSource>
  4. 如果不符合上述任何條件,且試圖在沒有使用者 ID 和密碼的情況下進行回復,就由 JDBC 驅動程式和資料庫來決定行為。
註: 如果由應用程式定義的資料來源來執行交易回復,例如 @DataSourceDefinition 註譯或部署描述子中的 <data-source> 元素,您必須確定在進行回復時,相關聯的應用程式在執行中。 您無法利用 server.xml 檔中的配置設定來回復應用程式定義的資料來源。

指示主題類型的圖示 參照主題



「時間戳記」圖示 前次更新: 2016 年 11 月 30 日
http://www14.software.ibm.com/webapp/wsbroker/redirect?version=cord&product=was-libcore-mp&topic=rwlp_ds_tx_recovery
檔名:rwlp_ds_tx_recovery.html