Konfiguration der Java-Stapelpersistenz
Die Java-Stapelfunktion (Java Batch) verwendet einen persistenten Speicher, damit der Status, die Prüfpunkte und die persistenten Anwendungsdaten während mehrerer Ausführungen einer Jobinstanz erhalten bleiben. Der persistente Speicher ermöglicht es, dass eine Jobinstanz erneut gestartet werden kann, wenn eine frühere Ausführung fehlschlägt oder gestoppt werden muss, indem er den erneut gestarteten Job mit den erforderlichen Daten bereitstellt.
Konfiguration der speicherbasierten Java-Stapelpersistenz
Die Stapelpersistenz ermöglicht es, dass eine Jobinstanz erneut gestartet werden kann, wenn die Ausführung mit dem Status FAILED (Fehlgeschlagen) oder STOPPED (Gestoppt) beendet wird. Bei Fehlen einer Stapelpersistenzkonfiguration verwendet die Java-Stapelfunktion (Java Batch) eine Standardfunktionalität für speicherbasierte Persistenz zur Verfolgung des Status, der Prüfpunkte und der persistenten Anwendungsdaten während mehrerer Ausführungen einer Jobinstanz.
Die speicherbasierte Persistenzimplementierung, die standardmäßig für die Java-Stapelfunktion definiert ist, wird vom zugrunde liegenden Stapelcontainer dann verwendet, wenn die Elemente batchPersistence und databaseStore in der Datei server.xml nicht vorhanden sind.
Konfiguration der Java-Stapelpersistenz für die Datenbank
Standardmäßig werden Tabellen, die nicht vorhanden sind, automatisch von der Stapellaufzeit auf der Basis der im Element databaseStore definierten Serverkonfiguration erstellt. Die Tabellendefinitionen werden basierend auf den Attributen schema und tablePrefix des Datenbankspeichers angepasst.
Alternativ dazu kann eine auf der Serverkonfiguration basierende DLL mit dem Script "ddlGen" generiert werden. Falls erforderlich, kann die DLL angepasst werden, bevor die Tabellen manuell erstellt werden. Diese DDL umfasst auch die Serverkonfiguration wie schema und tablePrefix und sie enthält außerdem die geeignete SQL für den Datenbanktyp der vom Datenbankspeicher (databaseStore) referenzierten Datenquelle.
Die automatische Erstellung von Tabellen kann mit dem Attribut createTables="false" im Datenbankspeicher (databaseStore) inaktiviert werden. Mit dieser Option kann auch sichergestellt werden, dass manuell erstellte Tabellen anstelle der automatisch erstellten Tabellen verwendet werden, falls die Stapellaufzeit die manuell erstellten Tabellen unerwarteterweise nicht finden sollte.
Die folgenden Beispiele verwenden das Standardverhalten für automatische Erstellung. Dieses Verhalten entspricht der Einstellung createTables="true".
Beispiel für Persistenzkonfiguration
<!-- Stapelpersistenzkonfiguration. Referenziert einen Datenbankspeicher. -->
<batchPersistence jobStoreRef="BatchDatabaseStore" />
<!-- Der Datenbankspeicher für die Stapeltabellen. -->
<!-- Dieser Datenbankspeicher wird vom Element batchPersistence referenziert. -->
<databaseStore id="BatchDatabaseStore" dataSourceRef="batchDB" schema="JBATCH" tablePrefix="" />
<!-- Derby-JDBC-Treiber -->
<!-- Diese Bibliothek wird vom Element dataSource referenziert. -->
<library id="DerbyLib">
<fileset dir="${server.config.dir}/resources/derby" />
</library>
<!-- Datenquelle für die Stapeltabellen. -->
<!-- Diese Datenquelle wird vom Element databaseStore referenziert. -->
<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>