Estructuras de datos para usuarios de AWS Blu Age - AWS Modernización de mainframe

Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.

Estructuras de datos para usuarios de AWS Blu Age

Puede obtener información sobre las diversas estructuras de datos del motor AWS Blu Age en la siguiente sección.

Estructura de mensajes de detalles de la ejecución del trabajo

Los detalles de la ejecución de cada trabajo tendrán los siguientes campos:

scriptId

el identificador del script llamado.

caller

dirección IP del programa que llama.

identifier

identificador único de ejecución del trabajo.

startTime

la fecha y hora de inicio de la ejecución del trabajo.

endTime

la fecha y hora de fin de la ejecución del trabajo.

estado

un estado de la ejecución del trabajo. Un valor posible entre:

  • DONE: la ejecución del trabajo ha finalizado con normalidad.

  • TRIGGERED: la ejecución del trabajo se ha activado pero aún no se ha iniciado.

  • RUNNING: la ejecución del trabajo se está ejecutando.

  • KILLED: la ejecución del trabajo ha sido cancelada.

  • FAILED: la ejecución del trabajo ha fallado.

executionResult

un mensaje para resumir el resultado de la ejecución del trabajo. Este mensaje puede ser un mensaje simple si la ejecución del trabajo aún no ha finalizado o una JSON estructura con los siguientes campos:

  • exitCode: código de salida numérico; los valores negativos indican situaciones de fallo.

  • program: último programa lanzado por el trabajo.

  • status: un valor posible entre:

    • Error: cuando exitCode = -1; corresponde a un error (técnico) que se ha producido durante la ejecución de la tarea.

    • Failed: cuando exitcode = -2; corresponde a una falla que se produce durante la ejecución de un programa de servicio (como una ABEND situación).

    • Succeeded: cuando exitCode >= 0;

  • stepName: nombre del último paso ejecutado en la tarea.

executionMode

SYNCHRONOUSo bienASYNCHRONOUS, según la forma en que se haya lanzado el trabajo.

Salida de ejemplo:

{ "scriptId": "INTCALC", "caller": "127.0.0.1", "identifier": "97d410be-efa7-4bd3-b7b9-d080e5769771", "startTime": "06-09-2023 11:42:41", "endTime": "06-09-2023 11:42:42", "status": "DONE", "executionResult": "{ \"exitCode\": -1, \"stepName\": \"STEP15\", \"program\": \"CBACT04C\", \"status\": \"Error\" }", "executionMode": "ASYNCHRONOUS" }

Estructura de resultados del lanzamiento de la transacción

La estructura podría contener los siguientes campos:

outCome

una cadena que representa el resultado de la ejecución de la transacción. Los valores posibles son los siguientes:

  • Success: la ejecución de la transacción ha finalizado correctamente.

  • Failure: la ejecución de la transacción no ha finalizado correctamente, se han producido algunos problemas.

commarea

una cadena que representa el valor COMMAREA final, como una matriz de bytes codificada en byte64. Puede ser una cadena vacía.

containerRecord

(Opcional) una cadena que representa el contenido CONTAINER del registro como una matriz de bytes codificada en byte64.

serverDescription

Puede contener información sobre el servidor que ha atendido la solicitud (con fines de depuración). Puede ser una cadena vacía.

abendCode

(Opcional) si el programa al que se hace referencia en la transacción lanzada está ausente, el valor del código abend se devolverá en forma de cadena en este campo.

Respuestas de ejemplo

Success

{ "outCome": "Success", "commarea": "", "serverDescription": "" }

Failure

{ "outCome": "Failure", "commarea": "", "serverDescription": "", "abendCode": "AEIA" }

Estructura de resultados del registro de lanzamiento de la transacción

La estructura podría contener los siguientes campos:

recordContent

una cadena que representa el contenido COMMAREA del registro como una matriz de bytes codificada en byte64 bytes.

containerRecord

una cadena que representa el contenido CONTAINER del registro como una matriz de bytes codificada en byte64.

serverDescription

Puede contener información sobre el servidor que ha atendido la solicitud (con fines de depuración). Puede ser una cadena vacía.

Respuestas de ejemplo

Success

{ "recordContent": "", "serverDescription": "" }

Los posibles estados de un trabajo en una cola son:

En una cola, los trabajos pueden tener el siguiente estado:

ACTIVE

El trabajo se está ejecutando actualmente en la cola.

EXECUTION_WAIT

El trabajo está esperando a que haya un subproceso disponible.

SCHEDULED

La ejecución del trabajo está programada en una fecha y hora específicas.

HOLD

El trabajo está esperando a ser publicado antes de ejecutarse.

COMPLETED

El trabajo se ha ejecutado correctamente.

FAILED

La ejecución del trabajo ha fallado.

UNKNOWN

Se desconoce el estado.

Envíe el trabajo y programe la entrada del trabajo

La entrada de tareas de envío y programación es la JSON serialización de un com.netfective.bluage.gapwalk.rt.jobqueue.SubmitJobMessage objeto. El ejemplo de entrada que aparece a continuación muestra todos los campos de dicho bean.

Ejemplo de entrada para enviar un trabajo:

{ "messageQueueName":null, "scheduleDate":null, "scheduleTime":null, "programName":"PTA0044", "programParams": {"wmind":"B"}, "localDataAreaValue":"", "userName":"USER1", "jobName":"PTA0044", "jobNumber":9, "jobPriority":5, "executionDate":"20181231", "jobQueue":"queue1", "jobOnHold":false }

Ejemplo de entrada para programar un trabajo:

{ "scheduleCron": "*/2 * * * * ?", "programName":"LOGPGM", "programParams": { "cl_sbmjob_param_json": "[\"./output/schedule-job-log.txt\", \"Every 2 seconds!\"]" }, "localDataAreaValue":"", "userName":"PVO", "jobName":"LOGGERJOB", "jobPriority":5, "jobQueue":"queue1", "scheduleMisfirePolicy": 4, "startTime": "2003/05/04 07:00:00.000 GMT-06:00", "endTime": "2003/05/04 07:00:07.000 GMT-06:00" }
jobNumber

si el número de trabajo es 0, el número de trabajo se generará automáticamente utilizando el siguiente número de la secuencia de números de trabajo. Ese valor debe establecerse en 0 (excepto para fines de prueba).

jobPriority

La prioridad de trabajo predeterminada en AS4 00 es 5. El rango válido es de 0 a 9, siendo 0 la prioridad más alta.

jobOnHold

Si un trabajo se envía en espera, no se ejecutará de inmediato, sino cuando alguien lo “publique”. Se puede publicar un trabajo mediante REST API (/release o /release-all).

scheduleDate y scheduleTime

Si estos valores no son null, el trabajo se ejecutará en la fecha y hora especificadas.

Date

Se puede proporcionar con el formato MMddyy o ddMMyyyy (el tamaño de la entrada determinará el formato que se utilice)

Tiempo

Se puede proporcionar con el formato HHmm o HHmmss (el tamaño de la entrada determinará el formato que se utilice)

programParams

Se pasará al programa en forma de mapa.

scheduleMisfirePolicy

Define la estrategia utilizada cuando se produce un error en el gatillo. A continuación se muestran los posibles valores:

  1. Libera el primer fallo de encendido y descarta los demás fallos de encendido.

  2. Deje en suspenso el primer fallo de encendido y deseche los demás fallos de encendido.

  3. Deseche el fallo de encendido.

  4. Libera todos los fallos de encendido. La cola de trabajos incluirá todos los trabajos.

Lista de respuestas a los trabajos programados

Esta es la estructura del punto de conexión de la cola de trabajos de la lista de trabajos. El mensaje de envío de trabajos que se utilizó para enviar ese trabajo forma parte de la respuesta. Este se puede utilizar para realizar un seguimiento, realizar pruebas o volver a enviarlo. Cuando se complete un trabajo, también se rellenarán la fecha de inicio y la fecha de finalización.

[ { "jobName": "PTA0044", "userName": "USER1", "jobNumber": 9, "jobPriority": 5, "status": "HOLD", "jobDelay": 0, "startDate": null, "endDate": null, "jobQueue": "queue1", "message": { "messageQueueName": null, "scheduleDate": null, "scheduleTime": null, "programName": "PTA0044", "programParams": {"wmind": "B"}, "localDataAreaValue": "", "userName": "USER1", "jobName": "PTA0044", "jobNumber": 9, "jobPriority": 5, "executionDate": "20181231", "jobQueue": "queue1", "jobOnHold": true, "scheduleCron": null, "save": false, "scheduleMisfirePolicy": 4, "omitdates": null }, "executionId": 1, "jobScheduledId": 0, "jobScheduledAt": null }, { "jobName": "PTA0044", "userName": "USER1", "jobNumber": 9, "jobPriority": 5, "status": "COMPLETED", "jobDelay": 0, "startDate": "2022-10-13T22:48:34.025+00:00", "endDate": "2022-10-13T22:52:54.475+00:00", "jobQueue": "queue1", "message": { "messageQueueName": null, "scheduleDate": null, "scheduleTime": null, "programName": "PTA0044", "programParams": {"wmind": "B"}, "localDataAreaValue": "", "userName": "USER1", "jobName": "PTA0044", "jobNumber": 9, "jobPriority": 5, "executionDate": "20181231", "jobQueue": "queue1", "jobOnHold": true, "scheduleCron": "*/20 * * * * ?", "save": false, "scheduleMisfirePolicy": 4, "omitdates": null }, "executionId": 2, "jobScheduledId": 0, "jobScheduledAt": null } ]

Respuesta a la lista de trabajos que se repiten

Esta es la estructura del punto final de la cola de trabajos /schedule/list.

[ { "id": 1, "status": "ACTIVE", "jobNumber": 1, "userName": "PVO", "msg": { "messageQueueName": null, "scheduleDate": null, "scheduleTime": null, "startTime": "2024/03/07 21:12:00.000 UTC", "endTime": "2024/03/07 21:13:59.000 UTC", "programName": "LOGPGM", "programParams": {"cl_sbmjob_param_json": "[\"./output/schedule-job-log.txt\", \"Every 20 seconds!\"]"}, "localDataAreaValue": "", "userName": "PVO", "jobName": "LOGGERJOB", "jobNumber": 1, "jobScheduleId": 1, "jobPriority": 5, "executionDate": null, "jobQueue": "queue1", "jobOnHold": false, "scheduleCron": "*/20 * * * * ?", "save": false, "scheduleMisfirePolicy": 4, "omitdates": null }, "lastUpdatedAt": "2024-03-07T21:11:13.282+00:00", "lastUpdatedBy": "" } ]