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

Atención: La variable nombre de trabajo es el atributo id del elemento job dentro del documento JSL (XML). No está necesariamente relacionada con el nombre de archivo del archivo JSL.
La denominación de los registros empieza por part.1.log y rota a nuevos componentes de registro según sea necesario. De forma predeterminada, el registro de trabajo contiene todos los mensajes y la información de rastreo que registra en el servidor la hebra que realiza la ejecución de trabajos. La salida que no se registra en la infraestructura java.util.logging no se recopila.
Importante: Si no se puede crear una parte de registro nueva, el proceso por lotes intenta continuar procesando sin ningún registro o con la parte de registro actual.

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.

Importante: Si utiliza la API log4j, las aplicaciones que utilizan la infraestructura de log4j pueden participar en el registro de trabajo por lotes utilizando org.apache.log4j.jul.JULAppender. JULAppender envía registros de log4j a la infraestructura java.util.logging, donde se recopilan para el registro de trabajo.

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

Importante: Se crea un directorio en el directorio nombre de paso particionado de cada 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

Importante: Se crea un directorio en el directorio ID de división para cada 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.

Importante: Las propiedades JSON forman parte del cuerpo del mensaje JMS y pueden recuperarse convirtiendo el texto del cuerpo en un JsonObject y extrayendo la propiedad JSON específica de ese objeto.
El ejemplo siguiente ilustra cómo recuperar la propiedad de contenido de registro de trabajo.
//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.


Icono que indica el tipo de tema Tema de referencia



Icono de indicación de fecha y hora Última actualización: Tuesday, 6 December 2016
http://www14.software.ibm.com/webapp/wsbroker/redirect?version=cord&product=was-libcore-mp&topic=rwlp_batch_view_joblog
Nombre de archivo:rwlp_batch_view_joblog.html