# 複数ホストからの集信処理

複数の相手ホストから配信された同一種類のデータを、1つの集信ファイルとして集信できます。これを、HULFTでは「複数集信」と呼んでいます。

どの相手ホストからのデータが集信ファイルのどこにあるかという情報は、複数集信情報ファイルで管理されています。このため、任意のデータだけを抽出して処理できます。

複数ホストからの集信処理の流れを図2.16 で説明します。

図2.16 複数ホストからの集信処理

1) 配信側ホストからの接続待ち

集信プログラムは配信側ホストからの接続を待ちます。

2) 集信処理の実行

集信管理情報の集信形態（RCVTYPE）が“M（複数集信）”に設定されている場合、集信プログラムは、配信側ホストから受け取った転送に関するファイル情報、および集信側ホストの集信管理情報に従って、集信ワークファイルにデータを集信します。集信ワークファイルは、相手ホストごとに作成されます。そのとき、通信は並行に進みます。

集信ワークファイルは、集信管理情報のワークボリューム通番（WORK-VOL）で設定されたボリューム通番に、システム動作環境設定の集信ワークファイルの第一修飾子（RPREFIX）、およびタイムスタンプから取得されるデータ・セット名で作成されます。

ワークボリューム通番が省略されている場合には、集信ファイルと同一ボリューム通番に作成されます。

注意

SMSで管理された環境では、複数集信時の集信ワークファイルとワークボリューム通番の設定によっては、動作が異なります。

詳細は、「SMSで管理された環境でのHULFTの動作」を参照してください。

3) 集信履歴の書き込み

集信処理の終了後、集信プログラムは集信履歴を集配信履歴ファイルに書き込みます。

4) 集信後ジョブの起動

集信プログラムは、集信管理情報に登録された設定内容に従って集信後ジョブを起動します。集信管理情報には、集信処理が正常終了したときに起動する正常時ジョブと、異常終了したときに起動する異常時ジョブを、それぞれ登録できます。転送結果に応じて、どちらかのジョブが起動されます。

集信後ジョブは、各相手ホストからの集信の完了ごとに起動されます。

5) 集信ファイルへの集信データの統合

集信ワークファイルのデータを集信ファイルに書き出します。この処理は、集信後ジョブの正常時ジョブの中に自動的に組み込まれるマージプログラムが行います。マージプログラムは、集信管理情報の集信形態（RCVTYPE）が“M（複数集信）”に設定されている場合に、自動的に組み込まれます。集信処理が異常終了した場合は、マージプログラムは組み込まれません。マージプログラムが正常に終了すると集信ワークファイルは削除されます。

6) 複数集信情報ファイルへの書き込み

マージプログラムは、どこの相手ホストから受け取ったデータを、集信ファイルのどこに書き出したかという情報を、複数集信情報ファイルに書き込みます。集信処理が異常終了した場合、この情報は書き込まれません。

複数集信情報ファイルは、集信ファイルと同一ボリューム通番に、データ・セット名「集信ファイル名.CNTL」で作成されます。

7) ジョブ実行履歴の書き込み

HULFTによって集信後ジョブに組み込まれたジョブ・ステップが、ジョブ実行履歴を集配信履歴ファイルに書き込みます。

= 備考 =

集信したデータを配信側ホスト単位で抜き出して処理をしたい場合、集信後ジョブの中で複数集信情報ファイルを参照させて処理を実行させます。

## JCL例

自動的に組み込まれるマージプログラムのJCLジョブ・ステップを以下に示します。

    //XRMRG    EXEC PGM=XRMRG,REGION=1024K
    //STEPLIB  DD   DISP=SHR,DSN=HULFT.LOAD
    //XRFILE   DD   DSN=HULFT.FILE,DISP=SHR
    //XRHOST   DD   DSN=HULFT.HOST,DISP=SHR
    //XRCRD    DD   *
    //SYSUDUMP DD   SYSOUT=*

DD名 | 項目名 | 説明
--- | --- | ---
STEPLIB | HULFT.LOAD | HULFTロードモジュールライブラリー（システム動作環境設定で設定したSTEPLIB）
XRFILE | HULFT.FILE | 集配信管理ファイル
XRHOST | HULFT.HOST | 詳細ホスト情報ファイル

= 備考 =

自動的に組み込まれるマージプログラムのJCLジョブ・ステップには、システム動作環境設定ファイルで設定した後続ジョブ付加ステップのSTEPLIB設定1が追加されます。設定されていない場合は追加されません。

注意

自動的に組み込まれるマージプログラムのJCLジョブ・ステップを起動するためには、集信管理情報の正常時ジョブID（JOBID）を指定してください。マージプログラムのJCLジョブ・ステップは、ユーザージョブのジョブ・ステップの前に組み込まれます。