
![[8.5.5.6 o posterior]](../ng_v8556.gif)
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 del proceso por lotes crea automáticamente tablas no existentes en la configuración del servidor definidas 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 del servidor, tal como schema y tablePrefix y contiene el SQL adecuado para el tipo de base de datos del dataSource al que hace referencia databaseStore.
La creación automática de tablas se puede inhabilitar utilizando el atributo createTables="false" en databaseStore. Se puede utilizar esta opción para asegurarse de que utiliza las tablas que ha creado manualmente, en lugar de las tablas creadas automáticamente si, de forma imprevista, el tiempo de ejecución por lotes no ha podido encontrar las tablas que ha creado manualmente.
Los ejemplos que se muestran en esta página 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">
<jdbcDriver libraryRef="DerbyLib"/>
<properties.derby.embedded
databaseName="${server.config.dir}/resources/RUNTIMEDB"
createDatabase="create"
user="user"
password="pass" />
</dataSource>