audit()

La función de sistema SysLib.audit() escribe información de seguimiento en las anotaciones o el diario del sistema. Un programa puede llamar a esta función en los siguientes entornos:
  • CICS para z/OS CICS)
  • BMP IMS (escribe en las anotaciones IMS)
  • IMS/VS (escribe en las anotaciones IMS)
  • z/OS por lotes (con las limitaciones descritas más delante)
  SysLib.audit(
    registro anyBasicRecord in
    [, jid SMALLINT in
    ])
registro
El nombre de un registro que se va a escribir en un archivo de registro por diario.

Los primeros 2 bytes contienen la longitud del registro a escribir. Los 2 bytes siguientes contienen un código especificado por el usuario para identificar el origen del registro del diario y el primer byte de ese código debe estar en el rango X'A0' a X'FF'.

Además de contener la longitud de registro y el código identificador de registros, los primeros 28 bytes están reservados para la utilización del sistema y no deben contener datos de usuario. Los bytes del 29 al 32767 están disponibles para datos de auditoría.

jid
Un parámetro opcional que especifica el ID (1-99) del archivo de registro por diario en el que la rutina de servicio escribe el registro. Si se omite jid, el registro se escribe por omisión en el diario del sistema. El parámetro es un número binario de 2 bytes.

SysVar.errorCode recibe uno de los códigos de estado en la tabla siguiente si incluye SysLib.audit en un bloque try...end o si está en la modalidad de compatibilidad de generador de VisualAge y VGVar.handleSysLibraryErrors está establecido en 1.

Valor de SysVar.errorCode Descripción
00000000 Realización satisfactoria
00000201 Error de longitud
00000202 Error de código fuente de usuario
00000204 Error de identificador de diario
00000803 Error de E/S

Si la portabilidad entre entornos CICS y no CICS es necesaria, puede desarrollar un programa no EGL con el mismo nombre que la función del sistema (audit) para recibir la llamada de servicio en entornos no CICS. Al generar para un entorno en el que no esté soportado el servicio, el generador convierte la llamada de función en una llamada al programa con el mismo nombre. Como alternativa, si el servicio no está soportado en el entorno no CICS, puede probar el valor de SysVar.sysType para determinar el entorno de tiempo de ejecución e invocar SysLib.audit() sólo si está ejecutando en CICS.

Comportamiento en IMS

El registro se convierte automáticamente al formato de anotaciones de IMS cuando EGL añade 2 a la longitud e inserta 2 bytes de ceros binarios a continuación del campo de longitud. Sólo se utiliza el primer byte del código identificador de registro. El segundo byte del código identificador de registro se pasa por alto. El parámetro jid se pasa por alto. IMS/VS tiene un límite máximo de 32765 bytes.

Limitaciones para el soporte de z/OS por lotes

Para utilizar la función SysLib.audit() en z/OS por lotes, debe especificar un PSB para el programa, y éste debe cumplir como mínimo uno de los siguientes requisitos:
  • Hacer referencia a un PSB o PCB en alguna sentencia del programa
  • Tener bases de datos DL/I que no sean elawork o elamsg en la definición del PSB
  • Utilizar VGLib.VGTDLI()
  • Asociar como mínimo un archivo con GSAM
Si se cumplen estas condiciones, SysLib.audit() se comportará en el entorno z/OS por lotes igual que en IMS.

Ejemplo

move 32765 to wrkrec.length;
move "A" to wrkrec.code;
move 2 to jrnlid;
move "ESTOS SON LOS DATOS A ESCRIBIR EN EL NÚMERO DE DIARIO 2" to wrkrec.data;
SysLib.audit(wrkrec, jrnlid);
Comentarios
(C) Copyright IBM Corporation 2000, 2005. Reservados todos los derechos.