Configuración de la persistencia por lotes Java
El proceso por lotes Java utiliza un almacén persistente para persistir el estado, los puntos de comprobación y los datos persistentes de la aplicación en varias ejecuciones de una instancia de trabajo. El almacén persistente permite reiniciar una instancia de trabajo si una ejecución anterior falla o debe detenerse proporcionando el trabajo reiniciado con los datos adecuados.
Configuración de la persistencia basada en memoria por lotes Java
La persistencia por lotes permite reiniciar una instancia de trabajo si la ejecución finaliza con un estado FAILED o ERROR. En ausencia de la configuración de persistencia por lotes, el proceso por lotes Java utiliza la funcionalidad predeterminada de persistencia basada en memoria para rastrear el estado, los puntos de comprobación y los datos persistentes de la aplicación en varias ejecuciones de una instancia de trabajo.
El contenedor de procesos por lotes subyacente utiliza la implementación de permanencia basada en memoria predeterminada para el proceso por lotes Java cuando no hay ningún elemento batchPersistence ni databaseStore presente en el archivo server.xml.
Configuración de la persistencia de base de datos por lotes Java
De forma predeterminada, el tiempo de ejecución por lotes crea automáticamente tablas no existentes basándose en la configuración de servidor definida en el elemento databaseStore. Las definiciones de las tablas se personalizan en función de los atributos schema y tablePrefix del almacén de base de datos.
De forma alternativa, se puede utilizar el script ddlGen para generar un DDL en la configuración del servidor. Si es necesario, se puede personalizar el DDL antes de crear manualmente las tablas. Este DDL también incorpora la configuración de servidor como schema y tablePrefix y contiene el SQL adecuado para el tipo de base de datos del origen de datos al que hace referencia databaseStore.
La creación automática de tablas se puede inhabilitar utilizando el atributo createTables="false" en databaseStore. Esta opción puede utilizarse para garantizar que se usan tablas creadas manualmente en lugar de usar tablas creadas automáticamente si inesperadamente el tiempo de ejecución por lotes no puede encontrar las tablas que ha creado manualmente.
Los siguientes ejemplos utilizan el comportamiento de creación automática predeterminado. Este comportamiento es equivalente a createTables="true".
Ejemplo de configuración de persistencia
<!-- Batch persistence config. Hace referencia a un databaseStore. -->
<batchPersistence jobStoreRef="BatchDatabaseStore" />
<!-- El almacén de base de datos de las tablas por lotes. -->
<!-- Observe que este almacén de base de datos está referenciado por el elemento batchPersistence. -->
<databaseStore id="BatchDatabaseStore" dataSourceRef="batchDB" schema="JBATCH" tablePrefix="" />
<!-- Controlador JDBC de Derby -->
<!-- Observe que esta biblioteca está referenciada por el elemento dataSource -->
<library id="DerbyLib">
<fileset dir="${server.config.dir}/resources/derby" />
</library>
<!-- El origen de datos de las tablas por lotes. -->
<!-- Observe que este origen de datos está referenciado por el elemento databaseStore -->
<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>