Java 批次的持續性配置

Java 批次使用持續儲存庫,來持續保存工作實例多次執行之間的狀態、檢查點和應用程式持續資料。對於先前執行失敗或必須停止的工作實例,持續儲存庫可讓它重新啟動,其作法是提供適當資料給重新啟動的工作。

Java 批次的記憶體型持續性配置

一旦工作實例執行在「失敗」或「停止」狀態下結束時,批次持續性可讓該工作實例重新啟動。如果缺少批次持續性配置,Java 批次會使用「記憶體型持續性」預設功能,以便在工作實例多次執行之間,追蹤狀態、檢查點和應用程式持續資料。

server.xml 檔中不存在 batchPersistencedatabaseStore 元素時,基礎批次儲存器就會使用「Java 批次」的預設記憶體型持續性實作。

註: 依預設,Java 批次中的持續性是以記憶體為基礎,這是 Java 批次記憶體型持續性的一項限制。如果批次儲存器執行時期或伺服器 JVM 當機或重新啟動,就會喪失持續性。這個功能專用於開發,不適用於正式作業系統或重要的批次處理支援。

Java 批次資料庫持續性配置

依預設,批次執行時期會根據 databaseStore 元素中所定義的伺服器配置,自動建立不存在的表格。 會根據資料庫儲存庫的 schematablePrefix 屬性,來自訂表格定義。

或者,可以使用 ddlGen Script,根據伺服器配置來產生 DDL。必要的話,可在手動建立表格之前先自訂 DDL。這個 DDL 也會納入伺服器配置,例如 schematablePrefix,且包含 databaseStore 所參照之資料來源的資料庫類型所適用的 SQL。

註: 自訂的 DDL 必須使用正整數主要索引鍵 ID。由於資料庫持續性的限制,「Java 批次」不接受主要索引鍵身分直欄中持續保存的負整數或零整數 ID。「Java 批次」儲存器執行時期只會執行使用主要索引鍵身分直欄中持續保存之正整數工作 ID 的工作。

如果要停用自動建立表格,請在 databaseStore 中使用 createTables="false" 屬性。如果批次執行時期意外找不到您手動建立的表格,這個選項可供確保您會使用手動建立的表格,而不是使用自動建立的表格。

下列範例使用預設自動建立行為。此行為等同於 createTables="true"

註: 如果要避免隔離層次低於 REPEATABLE_READ 所導致的資料完整性問題,請將資料來源的隔離層次設為 TRANSACTION_REPEATABLE_READ。 如果未指定隔離層次,預設值取決於資料庫。 在大部分情況下,預設值是 TRANSACTION_REPEATABLE_READ。

持續性配置範例

下列範例是配置自動建立之 Derby 目標資料庫表格 RUNTIMEDB 的批次存取。
 <!-- Batch persistence config.  References a databaseStore. -->
    <batchPersistence jobStoreRef="BatchDatabaseStore" />

    <!-- The database store for the batch tables.  -->
    <!-- Note this database store is referenced by the batchPersistence element. -->
    <databaseStore id="BatchDatabaseStore" dataSourceRef="batchDB" schema="JBATCH" tablePrefix="" />

    <!-- Derby JDBC driver -->
    <!-- Note this library is referenced by the dataSource element -->
    <library id="DerbyLib">
        <fileset dir="${server.config.dir}/resources/derby" />
    </library>

    <!-- Data source for the batch tables. -->
    <!-- Note this data source is referenced by databaseStore element -->
    <dataSource id="batchDB" isolationLevel="TRANSACTION_REPEATABLE_READ" >
        <jdbcDriver libraryRef="DerbyLib" />
        <properties.derby.embedded
            databaseName="${server.config.dir}/resources/RUNTIMEDB"
            createDatabase="create"
            user="user"
            password="pass" />
    </dataSource> 

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



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