Visualización de los registros de trabajo por lotes Java
Cuando ejecuta trabajos por lotes Java en WebSphere Application Server Liberty, se escribe un registro para cada trabajo.
Los registros se crean en la siguiente estructura de directorios:
directorio de registros/joblogs/nombre del trabajo/fecha/instance.ID de instancia de trabajo/execution.ID de ejecución
Para obtener más información sobre cómo recuperar o suprimir registros de trabajo utilizando la API REST, consulte la documentación de Administración de la API REST.
Configuración del registro de trabajo
Se puede configurar el registro de trabajos por lotes mediante el elemento de configuración <batchJobLogging>, <batchJobLogging enabled="true" maxRecords="1000" />.
El atributo maxRecords indica el número de registros que se graban en una parte del registro de trabajos antes de que se reinicien los registros en la parte siguiente.
La característica de proceso por lotes utiliza el registrador com.ibm.ws.batch.JobLogger para registrar determinados mensajes por lotes únicamente en el registro de trabajos. Por ejemplo, los mensajes de ciclo de vida de trabajos y los mensajes de punto de comprobación. El registrador no graba en el registro del servidor. De forma predeterminada, el registrador está habilitado para mensajes Level.FINE. Puede configurar el nivel del registrador especificándolo en la especificación de rastreo del servidor. Por ejemplo, <logging traceSpecification="*=info:com.ibm.ws.batch.JobLogger=all" />.
Los mensajes de registro que graba la hebra de trabajo, incluidos los mensajes que graba el tiempo de ejecución y el código de aplicación, se graban en el registro de trabajos y en el registro del servidor.
Los archivos System.out y System.err solo se graban en el registro del servidor y no en el registro de trabajos.
Pasos particionados
Los pasos particionados tienen más subdirectorios para cada partición. Los archivos de registro del directorio ID de ejecución contienen entradas de la hebra que ejecuta el trabajo de nivel superior. Los registros de trabajo para las particiones se almacenan con la siguiente estructura:
directorio de registro/joblogs/nombre del trabajo/date/instance.ID de instancia de trabajo/execution.ID de ejecución/nombre del paso particionado/número de partición
Flujos de división
Si se produce un flujo de división en el trabajo, se crean más subdirectorios para capturar la salida de la hebra de cada flujo. Los archivos de registro que se ubican directamente en el directorio ID de ejecución contienen entradas de la hebra que ejecuta el trabajo de nivel superior. Los registros de trabajo para las hebras de flujo individuales se almacenan con la siguiente estructura:
directorio de registro/joblogs/nombre del trabajo/date/instance.ID de instancia de trabajo/execution.ID de ejecución/ID de división/ID de flujo
Sucesos de registro de trabajo
Si los sucesos de trabajo por lotes están habilitados, los sucesos de registro de trabajo se publican cuando se completa una parte del registro de trabajo y cuando un trabajo pasa a un estado finalizado como, por ejemplo, stopped, failed o completed. Los mensajes de sucesos de registro de trabajo contienen varias propiedades JSON para ayudar a identificar el mensaje junto con el contenido del archivo de registro de trabajo real.
//El mensaje de suceso de registro de trabajo recuperado
Message msg
//Convertir el mensaje en un TextMessage
TextMessage txtMsg = (TextMessage) msg;
//Convertir el texto del mensaje en un JsonObject
JsonObject jobLogEventObject = Json.createReader(new StringReader(txtMsg.getText())).readObject();
//Extraer el contenido textual del registro de trabajo del JsonObject como un ejemplo
JsonArray logContentArray = jobLogEventObject.getJsonArray("contents");
Para obtener más información sobre la habilitación de sucesos de trabajo por lotes, consulte Habilitación de la publicación de sucesos de trabajo por lotes.