audit()

sysLib.audit() システム関数は、COBOL 環境内のシステム・ログまたはジャーナルにトラッキング情報を書き込みます。

その関数が意味を持つ個々の環境について詳しくは、このトピックの『互換性』を参照してください。

sysLib.audit() 関数はシステム依存です。サポート環境と非サポート環境の間のポータビリティーが必要な場合は、このシステム関数と同じ名前を持つ非 EGL プログラム (audit) を作成して、非サポート環境でサービス呼び出しを受け取ってください。 このサービスがサポートされない環境用に生成を行う場合、EGL はこの関数呼び出しを同じ名前のプログラムの呼び出しにします。 あるいは、sysVar.sysType の値をテストしてランタイム環境を判別し、 対応している環境でのみ sysLib.audit() を呼び出すこともできます。

構文

  sysLib.audit(
    record BasicRecord in
    [, jid SMALLINT in] )
record
ジャーナル・ファイルに書き込まれるレコードの名前。

最初の 2 バイトには、書き込まれるレコードの長さが含まれます。 次の 2 バイトには、ジャーナル・レコードのソースを識別するコードが含まれます。 そのコードの最初の 1 バイトの範囲は、X'A0' から X'FF' でなければなりません。

最初の 28 バイトは、レコード長およびレコード ID コードを格納するためとシステム使用のために予約されています。 最初の 28 バイトは、ユーザー・データを含んではいけません。監査データで使用できるのは、29 バイトから 32767 バイトです。

jid
関数がレコードを書き込むジャーナル・ファイルの ID (1 から 99 まで) を指定するオプション・パラメーター。 jid を省略した場合、デフォルトでは、この関数はシステム・ジャーナルにレコードを書き込みます。 このパラメーターは、2 バイトの 2 進数です。

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  // main() 
end  // program

互換性

表 1. audit() の互換性に関する考慮事項
プラットフォーム 問題
CICS® 関数は、CICS ジャーナルに書き込みを行います。 V6 の例外モード (V6 の例外互換性の使用を参照) を使用している場合、EGL は以下のように sysVar.errorCode を設定します。
00000000
正常終了
00000201
長さのエラー
00000202
ユーザー・ソース・コードのエラー
00000204
ジャーナル ID のエラー
00000803
I/O エラー
IMS™ 関数は、IMS ログに書き込みを行います。 EGL は、長さに 2 を追加して、長さフィールドに続けて 2 バイトの 2 進ゼロを挿入することによって、 自動的にレコードを IMS ログ・フォーマットに変換します。 レコード ID コードの最初のバイトのみが使用されます。 レコード ID コードの 2 番目のバイトは無視されます。jid パラメーターは無視されます。 IMS/VS の限界は、最大 32,765 バイトです。
iSeries® COBOL sysLib.audit() 関数はサポートされていません。
Java™ 生成 sysLib.audit() はサポートされていません。
JavaScript 生成 sysLib.audit() はサポートされていません。
z/OS® バッチ z/OS バッチで sysLib.audit() 関数を使用するには、 プログラムの PSB を指定する必要があり、そのプログラムが以下の基準のうち少なくとも 1 つを満たす必要があります。
  • プログラム内のいずれかの文で PSB または PCB を参照する
  • PSB 定義内に ELAWORK 以外の DL/I データベースがある
  • 次のいずれかのシステム関数を使用している
    • dliLib.AIBTDLI()
    • dliLib.EGLTDLI()
    • vgLib.VGTDLI()
  • 少なくとも 1 つのファイルまたはプリンターを GSAM に関連付ける
こうした状況において、sysLib.audit() は、z/OS バッチ環境で、IMS 内と同じように振る舞います。

フィードバック