audit()

Die Systemfunktion 'sysLib.audit()' schreibt Überwachungsinformationen in das Systemprotokoll oder Systemjournal in einer COBOL-Umgebung.

Informationen zu den jeweiligen Umgebungen, in denen die Funktion sinnvoll ist, finden Sie unter 'Kompatibilität' in diesem Thema.

Die Funktion 'sysLib.audit()' ist systemabhängig. Wenn Portierbarkeit zwischen unterstützten und nicht unterstützten Umgebungen erforderlich ist, müssen Sie ein Nicht-EGL-Programm mit demselben Namen wie die Systemfunktion (audit) entwickeln, um den Serviceaufruf in nicht unterstützten Umgebungen zu empfangen. Beim Generieren für eine Umgebung, in der der Service nicht unterstützt wird, wandelt EGL den Funktionsaufruf in einen Aufruf an das Programm mit demselben Namen um. Alternativ können Sie den Wert von 'sysVar.sysType' testen, um die Laufzeitumgebung zu ermitteln, und die Funktion 'sysLib.audit()' entsprechend nur dann aufrufen, wenn sie von der betreffenden Umgebung unterstützt wird.

Syntax

  sysLib.audit(
    Datensatz BasicRecord in
    [, Journalkennung SMALLINT in] )
Datensatz
Der Name eines Datensatzes, der in eine Journaldatei geschrieben werden soll.

Die beiden ersten Byte enthalten die Länge des zu schreibenden Datensatzes. Die nächsten beiden Byte enthalten einen Code, der die Quelle des Journaldatensatzes angibt; hierbei muss das erste Byte dieses Codes im Bereich X'A0' bis X'FF' liegen.

Die ersten 28 Byte sind für den Datensatzlängen- und Datensatzkennungscode sowie für Verwendung durch das System reserviert. Die ersten 28 Byte dürfen keine Benutzerdaten enthalten; Byte 29 bis 32767 sind für Prüfdaten verfügbar.

Journalkennung
Ein optionaler Parameter, der die ID (1-99) der Journaldatei angibt, in die die Funktion den Datensatz schreibt. Wird keine Journalkennung angegeben, schreibt die Funktion den Datensatz standardmäßig in das Systemjournal. Der Parameter ist eine aus 2 Byte bestehende Binärzahl.

Beispiel

package com.companyb.customer;

Record wrkRecord type basicRecord
  10 length    smallint;
  10 code    char(2);
  10 reserved  char(24);
  10 data     char(32737);
end

Program calc2
  wrkrec wrkRecord;
  jrnlid    smallint;

  Function main()
    wrkrec.length = 32765;
    wrkrec.code = x"A012";
    wrkrec.data = "THIS IS THE DATA TO BE WRITTEN TO JOURNAL NUMBER 2";
    jrnlid = 2;
    sysLib.audit(wrkrec, jrnlid);
  end  // Ende von 'main()' 
end  // Ende von 'program'

Kompatibilität

Tabelle 1. Hinweise zur Kompatibilität für 'audit()'
Plattform Problem
CICS Die Funktion schreibt in das CICS-Journal. Wenn Sie im V6-Ausnahmemodus arbeiten (siehe V6-Ausnahmebedingungskompatibilität verwenden), setzt EGL den Wert für 'sysVar.errorCode' wie folgt:
00000000
Erfolgreiche Ausführung.
00000201
Längenfehler
00000202
Fehler beim Benutzerquellcode
00000204
Fehler bei der Journalkennung
00000803
E/A-Fehler
IMS Die Funktion schreibt in das IMS-Protokoll. EGL konvertiert den Datensatz automatisch in das IMS-Protokollformat, indem 2 zur Länge addiert wird und 2 Byte binärer Nullen nach dem Längenfeld eingefügt werden. Es wird nur das erste Byte des Datensatzkennungscodes verwendet. Das zweite Byte des Datensatzkennungscodes wird ignoriert. Der Parameter Journalkennung wird ignoriert. Der Maximalwert bei IMS/VS beträgt 32.765 Byte.
iSeries COBOL Die Funktion 'sysLib.audit()' wird nicht unterstützt.
Java™-Generierung Die Funktion 'sysLib.audit()' wird nicht unterstützt.
JavaScript-Generierung Die Funktion 'sysLib.audit()' wird nicht unterstützt.
z/OS batch Um die Funktion 'sysLib.audit()' in z/OS batch verwenden zu können, müssen Sie einen PSB (Programmspezifikationsblock) für das Programm angeben, und das Programm muss mindestens eines der folgenden Kriterien erfüllen:
  • Referenzierung eines PSB oder PCB (Programmkommunikationsblocks) in einer beliebigen Anweisung im Programm
  • Vorhandensein von DL/I-Datenbanken (außer ELAWORK) in der PSB-Definition
  • Verwendung einer der folgenden Systemfunktionen:
    • dliLib.AIBTDLI()
    • dliLib.EGLTDLI()
    • vgLib.VGTDLI()
  • Zuordnung mindestens einer Datei oder des Druckers zu GSAM (generalisierte sequenzielle Zugriffsmethode)
Unter diesen Bedingungen verhält sich die Funktion 'sysLib.audit()' in der z/OS batch-Umgebung genau so wie in IMS.

Feedback