
![[8.5.5.6 或更新版本]](../ng_v8556.gif)
Java 批次的持續性配置
Java 批次使用持續儲存庫,來持續保存工作實例多次執行之間的狀態、檢查點和應用程式持續資料。對於先前執行失敗或必須停止的工作實例,持續儲存庫可讓它重新啟動,其作法是提供適當資料給重新啟動的工作。
Java 批次的記憶體型持續性配置
一旦工作執行在「失敗」或「停止」狀態下結束時,批次持續性可讓該工作實例重新啟動。如果缺少批次持續性配置,Java 批次會使用「記憶體型持續性」預設功能,以便在工作實例多次執行之間,追蹤狀態、檢查點和應用程式持續資料。
當 server.xml 檔中不存在 batchPersistence 和 databaseStore 元素時,基礎批次儲存器就會使用「Java 批次」的預設記憶體型持續性實作。
註: 依預設,Java 批次中的持續性是以記憶體為基礎,這是 Java 批次記憶體型持續性的一項限制。如果批次儲存器執行時期或伺服器 JVM 當機或重新啟動,就會喪失持續性。此功能僅作為開發用,不適用於正式作業系統或重要的批次處理支援。
Java 批次資料庫持續性配置
依預設,批次執行時期會根據 databaseStore 元素中所定義的伺服器配置,自動建立不存在的表格。會根據資料庫儲存庫的 schema 和 tablePrefix 屬性,來自訂表格定義。
或者,可以使用 ddlGen Script,根據伺服器配置來產生 DDL。必要的話,可在手動建立表格之前先自訂 DDL。此 DDL 也會納入伺服器配置,例如 schema 和 tablePrefix,並且包含 databaseStore 所參照之 dataSource 資料庫類型的適當 SQL。
如果要停用自動建立表格,請在 databaseStore 中使用 createTables="false" 屬性。一旦批次執行時期意外找不到您手動建立的表格,這個選項可用來確定您使用手動建立的表格,而不是使用自動建立的表格。
這個頁面顯示的範例使用預設的自動建立行為。此行為等同於 createTables="true"。
持續性配置範例
下列範例是配置自動建立之 Derby 目標資料庫表格 RUNTIMEDB 的批次存取。
<!-- 批次持續性配置。參照 databaseStore。-->
<batchPersistence jobStoreRef="BatchDatabaseStore" />
<!-- 批次表格的資料庫儲存庫。-->
<!-- 請注意,batchPersistence 元素會參照這個資料庫儲存庫。-->
<databaseStore id="BatchDatabaseStore" dataSourceRef="batchDB" schema="JBATCH" tablePrefix="" />
<!-- Derby JDBC 驅動程式 -->
<!-- 請注意,dataSource 元素會參照這個程式庫 -->
<library id="DerbyLib">
<fileset dir="${server.config.dir}/resources/derby" />
</library>
<!-- 批次表格的資料來源。-->
<!-- 請注意,databaseStore 元素會參照這個資料來源 -->
<dataSource id="batchDB">
<jdbcDriver libraryRef="DerbyLib" />
<properties.derby.embedded
databaseName="${server.config.dir}/resources/RUNTIMEDB"
createDatabase="create"
user="user"
password="pass" />
</dataSource>