# HULFTシステムファイルの創成

HULFTのシステムファイルと操作ログファイルの創成について説明します。

## システムファイル

HULFTでは以下のシステムファイル（VSAM）が必要となります。

- 集配信管理ファイル

- 詳細ホスト情報ファイル

- 集配信履歴ファイル

- 配信制御ファイル

- システム制御ファイル

JCL例

このJCLを、ユーザーの環境に合わせて内容（ファイル名、ボリューム通番、容量など）を変更した後、実行すると上記のシステムファイルを創成できます。

各システムファイルの容量については、「VSAMファイルの容量計算」を参照してください。

システムファイルの初期化プログラム（XRCREATE）を使用して、創成したシステムファイルの初期化処理を必ず実行してください。システムファイルの初期化プログラムの実行後、履歴件数情報付加プログラム（XRLOGCNT）を使用して履歴件数情報の付加を行ってください。

創成用の雛形JCL : HULFT.JCL（HULVSAM）

    //HULVSAM  JOB  CLASS=A,MSGCLASS=B
    //*------< VSAM DEFINE CLUSTER >---------------------------------------
    //DEFCLSTR EXEC PGM=IDCAMS
    //SYSPRINT DD   SYSOUT=*
    //SYSIN    DD   *
         DELETE HULFT.LOG
         DELETE HULFT.LOG.PATH1
         DELETE HULFT.LOG.PATH2
         DELETE HULFT.FILE
         DELETE HULFT.HOST
         DELETE HULFT.QUEUE
         DELETE HULFT.SYSCNTL
         DEFINE CLUSTER                      -
                (NAME(HULFT.LOG)             -
                 INDEXED                     -
                 REUSE)                      -
                DATA                         -
                (NAME(HULFT.LOG.DATA)        -
                 KEYS(59 0)                  -
                 VOLUMES(HUL001)             -
                 CYLINDERS(5 1)              -
                 SHAREOPTIONS(4 3)           -
                 RECORDSIZE(1600 1600)       -
                 CONTROLINTERVALSIZE(26624)) -
                INDEX                        -
                (NAME(HULFT.LOG.IDX)         -
                 VOLUMES(HUL001)             -
                 CYLINDERS(1 1)              -
                 SHAREOPTIONS(4 3))
         DEFINE CLUSTER                      -
                (NAME(HULFT.LOG.PATH1)       -
                 INDEXED                     -
                 REUSE)                      -
                DATA                         -
                (NAME(HULFT.LOG.PATH1.DATA)  -
                 KEYS(59 59)                 -
                 VOLUMES(HUL001)             -
                 CYLINDERS(5 1)              -
                 SHAREOPTIONS(4 3)           -
                 RECORDSIZE(1600 1600)       -
                 CONTROLINTERVALSIZE(26624)) -
                INDEX                        -
                (NAME(HULFT.LOG.PATH1.IDX)   -
                 VOLUMES(HUL001)             -
                 CYLINDERS(1 1)              -
                 SHAREOPTIONS(4 3))
         DEFINE CLUSTER                      -
                (NAME(HULFT.LOG.PATH2)       -
                 INDEXED                     -
                 REUSE)                      -
                DATA                         -
                (NAME(HULFT.LOG.PATH2.DATA)  -
                 KEYS(9 118)                 -
                 VOLUMES(HUL001)             -
                 CYLINDERS(5 1)              -
                 SHAREOPTIONS(4 3)           -
                 RECORDSIZE(1600 1600)       -
                 CONTROLINTERVALSIZE(26624)) -
                INDEX                        -
                (NAME(HULFT.LOG.PATH2.IDX)   -
                 VOLUMES(HUL001)             -
                 CYLINDERS(1 1)              -
                 SHAREOPTIONS(4 3))
         DEFINE CLUSTER                     -
                (NAME(HULFT.FILE)           -
                 INDEXED)                   -
                DATA                        -
                (NAME(HULFT.FILE.DATA)      -
                 KEYS(54 0)                 -
                 SHAREOPTIONS(4 3)          -
                 VOLUMES(HUL001)            -
                 CYLINDERS(1 1)             -
                 RECORDSIZE(610 22300))     -
                INDEX                       -
                (NAME(HULFT.FILE.IDX)       -
                 VOLUMES(HUL001)            -
                 CYLINDERS(1 1)             -
                 SHAREOPTIONS(4 3))
         DEFINE CLUSTER                     -
                (NAME(HULFT.HOST)           -
                 INDEXED)                   -
                DATA                        -
                (NAME(HULFT.HOST.DATA)      -
                 KEYS(51 0)                 -
                 SHAREOPTIONS(4 3)          -
                 VOLUMES(HUL001)            -
                 CYLINDERS(1 1)             -
                 RECORDSIZE(500 500))       -
                INDEX                       -
                (NAME(HULFT.HOST.IDX)       -
                 VOLUMES(HUL001)            -
                 CYLINDERS(1 1)             -
                 SHAREOPTIONS(4 3))
         DEFINE CLUSTER                      -
                (NAME(HULFT.QUEUE)           -
                 INDEXED)                    -
                DATA                         -
                (NAME(HULFT.QUEUE.DATA)      -
                 KEYS(61 0)                  -
                 VOLUMES(HUL001)             -
                 CYLINDERS(1 1)              -
                 SHAREOPTIONS(4 3)           -
                 RECORDSIZE(7600 7600)       -
                 CONTROLINTERVALSIZE(26624)) -
                INDEX                        -
                (NAME(HULFT.QUEUE.IDX)       -
                 VOLUMES(HUL001)             -
                 CYLINDERS(1 1)              -
                 SHAREOPTIONS(4 3))
         DEFINE CLUSTER                      -
                (NAME(HULFT.SYSCNTL)         -
                 INDEXED)                    -
                DATA                         -
                (NAME(HULFT.SYSCNTL.DATA)    -
                 KEYS(52 0)                  -
                 VOLUMES(HUL001)             -
                 CYLINDERS(1 1)              -
                 SHAREOPTIONS(4 3)           -
                 RECORDSIZE(400 400)         -
                 CONTROLINTERVALSIZE(18432)) -
                INDEX                        -
                (NAME(HULFT.SYSCNTL.IDX)     -
                 VOLUMES(HUL001)             -
                 CYLINDERS(1 0)              -
                 SHAREOPTIONS(4 3))
    //*
    //*------< FILE CREATE         >---------------------------------------
    //XRCREATE EXEC PGM=XRCREATE,REGION=1024K
    //STEPLIB  DD   DSN=HULFT.LOAD,DISP=SHR
    //XRLOG    DD   DSN=HULFT.LOG,DISP=SHR
    //XRLOG1   DD   DSN=HULFT.LOG.PATH1,DISP=SHR
    //XRLOG2   DD   DSN=HULFT.LOG.PATH2,DISP=SHR
    //XRFILE   DD   DSN=HULFT.FILE,DISP=SHR
    //XRHOST   DD   DSN=HULFT.HOST,DISP=SHR
    //XRQUE    DD   DSN=HULFT.QUEUE,DISP=SHR
    //XRCNTL   DD   DSN=HULFT.SYSCNTL,DISP=SHR
    //XROPLC1  DD   DUMMY
    //XROPLC2  DD   DUMMY
    //XROPLF1  DD   DUMMY
    //XROPLF2  DD   DUMMY
    //SYSUDUMP DD   SYSOUT=*
    //*------< LOGCNT              >---------------------------------------
    //XRLOGCNT EXEC PGM=XRLOGCNT,REGION=1024K
    //STEPLIB  DD   DSN=HULFT.LOAD,DISP=SHR
    //XRLOG    DD   DSN=HULFT.LOG,DISP=SHR
    //XRLOG1   DD   DSN=HULFT.LOG.PATH1,DISP=SHR
    //XRLOG2   DD   DSN=HULFT.LOG.PATH2,DISP=SHR
    //XRCRD    DD   *
    LOGCNT=ALL
    //SYSOUT   DD   SYSOUT=*
    //SYSUDUMP DD   SYSOUT=*
    //

DD名 | 項目名 | 説明
--- | --- | ---
STEPLIB | HULFT.LOAD | HULFTロードモジュールライブラリー
XRFILE | HULFT.FILE | 集配信管理ファイル
XRHOST | HULFT.HOST | 詳細ホスト情報ファイル
XRQUE | HULFT.QUEUE | 配信制御ファイル
XRLOG | HULFT.LOG | 集配信履歴ファイルIDキーファイル
XRLOG1 | HULFT.LOG.PATH1 | 集配信履歴ホスト名キーファイル
XRLOG2 | HULFT.LOG.PATH2 | 集配信履歴日付キーファイル
XRCNTL | HULFT.SYSCNTL | システム制御ファイル

パラメーター名 | 項目名 | 説明
--- | --- | ---
VOLUMES | HUL001 | ボリューム名
CYLINDERS | (*1) | 容量
NAME | HULFT.FILE | 集配信管理ファイル
NAME | HULFT.FILE.DATA | 集配信管理ファイル データ・コンポーネント エントリー名
NAME | HULFT.FILE.IDX | 集配信管理ファイル インデックス・コンポーネント エントリー名
NAME | HULFT.HOST | 詳細ホスト情報ファイル
NAME | HULFT.HOST.DATA | 詳細ホスト情報ファイル データ・コンポーネント エントリー名
NAME | HULFT.HOST.IDX | 詳細ホスト情報ファイル インデックス・コンポーネント エントリー名
NAME | HULFT.QUEUE | 配信制御ファイル
NAME | HULFT.QUEUE.DATA | 配信制御ファイル データ・コンポーネント エントリー名
NAME | HULFT.QUEUE.IDX | 配信制御ファイル インデックス・コンポーネント エントリー名
NAME | HULFT.LOG | 集配信履歴ファイルIDキーファイル
NAME | HULFT.LOG.DATA | 集配信履歴ファイルIDキーファイル データ・コンポーネント エントリー名
NAME | HULFT.LOG.IDX | 集配信履歴ファイルIDキーファイル インデックス・コンポーネント エントリー名
NAME | HULFT.LOG.PATH1 | 集配信履歴ホスト名キーファイル
NAME | HULFT.LOG.PATH1.DATA | 集配信履歴ホスト名キーファイル データ・コンポーネント エントリー名
NAME | HULFT.LOG.PATH1.IDX | 集配信履歴ホスト名キーファイル インデックス・コンポーネント エントリー名
NAME | HULFT.LOG.PATH2 | 集配信履歴日付キーファイル
NAME | HULFT.LOG.PATH2.DATA | 集配信履歴日付キーファイル データ・コンポーネント エントリー名
NAME | HULFT.LOG.PATH2.IDX | 集配信履歴日付キーファイル インデックス・コンポーネント エントリー名
NAME | HULFT.SYSCNTL | システム制御ファイル
NAME | HULFT.SYSCNTL.DATA | システム制御ファイル データ・コンポーネント エントリー名
NAME | HULFT.SYSCNTL.IDX | システム制御ファイル インデックス・コンポーネント エントリー名

*1 | : | (一次要求量 増分量)

## 操作ログファイル

操作ログ出力機能を使用する場合、操作ログファイルを創成してください。

HULFTでは、操作ログファイルとして、以下の2つのファイル（VSAM）が必要となります。

- ファイルアクセスログファイル

- コマンド実行ログファイル

JCL例

このJCLを、ユーザーの環境に合わせて内容（ファイル名、ボリューム通番、容量など）を変更した後、実行すると上記2つの操作ログファイルを創成できます。

操作ログファイルの容量については、「VSAMファイルの容量計算」を参照してください。

システムファイルの初期化プログラム（XRCREATE）を使用して、創成した操作ログファイルの初期化処理を必ず実行してください。

増分量に0を指定して作成された操作ログファイルを使用することを前提としています。SMSで管理された環境のボリュームに操作ログファイルを作成するときなどに自動的に容量が増分される場合、システムファイルの初期化プログラム使用時にOPLLIMITパラメーターを指定してください。詳細は、以下を参照してください。

HULFT10 for zOS アドミニストレーション マニュアル : システムファイルの編集

創成用の雛形JCL : HULFT.JCL（OPLVSAM）

    //OPLVSAM  JOB  CLASS=A,MSGCLASS=B
    //*------< VSAM DEFINE CLUSTER >---------------------------------------
    //DEFCLSTR EXEC PGM=IDCAMS
    //SYSPRINT DD   SYSOUT=*
    //SYSIN    DD   *
         DELETE HULFT.OPLFILE1
         DELETE HULFT.OPLFILE2
         DELETE HULFT.OPLCMD1
         DELETE HULFT.OPLCMD2
         DEFINE CLUSTER                       -
                (NAME(HULFT.OPLFILE1)         -
                 NUMBERED                     -
                 UNIQUE)                      -
                DATA                          -
                (NAME(HULFT.OPLFILE1.DATA)    -
                 VOLUMES(HUL001)              -
                 CYLINDERS(30 0)              -
                 SHAREOPTIONS(4 3)            -
                 RECORDSIZE(2048 2048)        -
                 CONTROLINTERVALSIZE(8192))
         DEFINE CLUSTER                       -
                (NAME(HULFT.OPLFILE2)         -
                 NUMBERED                     -
                 UNIQUE)                      -
                DATA                          -
                (NAME(HULFT.OPLFILE2.DATA)    -
                 VOLUMES(HUL001)              -
                 CYLINDERS(30 0)              -
                 SHAREOPTIONS(4 3)            -
                 RECORDSIZE(2048 2048)        -
                 CONTROLINTERVALSIZE(8192))
         DEFINE CLUSTER                       -
                (NAME(HULFT.OPLCMD1)          -
                 NUMBERED                     -
                 UNIQUE)                      -
                DATA                          -
                (NAME(HULFT.OPLCMD1.DATA)     -
                 VOLUMES(HUL001)              -
                 CYLINDERS(30 0)              -
                 SHAREOPTIONS(4 3)            -
                 RECORDSIZE(2048 2048)        -
                 CONTROLINTERVALSIZE(8192))
         DEFINE CLUSTER                       -
                (NAME(HULFT.OPLCMD2)          -
                 NUMBERED                     -
                 UNIQUE)                      -
                DATA                          -
                (NAME(HULFT.OPLCMD2.DATA)     -
                 VOLUMES(HUL001)              -
                 CYLINDERS(30 0)              -
                 SHAREOPTIONS(4 3)            -
                 RECORDSIZE(2048 2048)        -
                 CONTROLINTERVALSIZE(8192))
    //*
    //*------< FILE CREATE         >---------------------------------------
    //XRCREATE EXEC PGM=XRCREATE,REGION=1024K
    //STEPLIB  DD   DSN=HULFT.LOAD,DISP=SHR
    //XRLOG    DD   DUMMY
    //XRLOG1   DD   DUMMY
    //XRLOG2   DD   DUMMY
    //XRHOST   DD   DUMMY
    //XRFILE   DD   DUMMY
    //XRQUE    DD   DUMMY
    //XRCNTL   DD   DUMMY
    //XROPLC1  DD   DSN=HULFT.OPLCMD1,DISP=SHR
    //XROPLC2  DD   DSN=HULFT.OPLCMD2,DISP=SHR
    //XROPLF1  DD   DSN=HULFT.OPLFILE1,DISP=SHR
    //XROPLF2  DD   DSN=HULFT.OPLFILE2,DISP=SHR
    //SYSUDUMP DD   SYSOUT=*

DD名 | 項目名 | 説明
--- | --- | ---
STEPLIB | HULFT.LOAD | HULFTロードモジュールライブラリー
XROPLC1 | HULFT.OPLCMD1 | コマンド実行ログファイル1
XROPLC2 | HULFT.OPLCMD2 | コマンド実行ログファイル2
XROPLF1 | HULFT.OPLFILE1 | ファイルアクセスログファイル1
XROPLF2 | HULFT.OPLFILE2 | ファイルアクセスログファイル2

パラメーター名 | 項目名 | 説明
--- | --- | ---
VOLUMES | HUL001 | ボリューム名
CYLINDERS | (*1) | 容量
NAME | HULFT.OPLCMD1 | コマンド実行ログファイル1
NAME | HULFT.OPLCMD1.DATA | コマンド実行ログファイル1 データ・コンポーネント エントリー名
NAME | HULFT.OPLCMD2 | コマンド実行ログファイル2
NAME | HULFT.OPLCMD2.DATA | コマンド実行ログファイル2 データ・コンポーネント エントリー名
NAME | HULFT.OPLFILE1 | ファイルアクセスログファイル1
NAME | HULFT.OPLFILE1.DATA | ファイルアクセスログファイル1 データ・コンポーネント エントリー名
NAME | HULFT.OPLFILE2 | ファイルアクセスログファイル2
NAME | HULFT.OPLFILE2.DATA | ファイルアクセスログファイル2 データ・コンポーネント エントリー名

*1 | : | (一次要求量 増分量)