# 送信要求

集信側から相手ホストに送信を依頼するために、送信要求プログラムを実行して相手ホストに配信を要求します。

送信要求プログラムを実行するには、あらかじめ集信プログラムと相手ホストの配信プログラムおよび要求受付プログラムを起動しておく必要があります。また、相手ホストで配信を行うために必要な管理情報が正しく登録されている必要があります。

## 送信要求プログラム

### プログラム名

XRRCVREQ

### XRSYSIN定義カード

HULFTシステムの動作環境を設定します。設定内容の詳細は、以下を参照してください。

HULFT10 for zOS アドミニストレーション マニュアル : 各項目の説明

定義カードの形式

    HOST-NAME=自ホスト名
    DOMAIN=自ドメイン名
    RETRY=接続エラー時のリトライ回数
    HSTCHA=自ホスト名または自ドメイン名の小文字、大文字選択
    TIMEOUT=ソケットリード待ち時間
    TCPIP=TCP/IPのアドレススペース名
    MSGDYNPARM=メッセージ動的パラメーター指定
    OPLSELECT=操作ログ出力選択 (*1)
    SNDSOCKSIZE=ソケット送信バッファーサイズ
    RCVSOCKSIZE=ソケット受信バッファーサイズ
    SCANMODE=同期転送時のキャンセルの扱い
    HULCHARSET=HULFTキャラクターセット

*1 | : | 操作ログ出力機能を使用する場合は、操作ログ関連の設定が必要です。詳細は「操作ログの動作設定」を参照してください。

注意

定義カード（XRSYSIN）で指定する自ホスト名または自ドメイン名は、相手ホストが配信するファイルIDの配信管理情報の転送グループIDに登録しておく必要があります。

### XRCARD定義カード

定義カードの形式

       a         b           c           d               e
    xxxxxxxx,[xxxx...xxxx],[SYNC[,TIME=999999]][,MSG0=xxxx...xxxx]

             [,MSG1=xxxx...xxxx][,MSG2=xxxx...xxxx][,MSG3=xxxx...xxxx]

             [,MSG4=xxxx...xxxx][,MSG5=xxxx...xxxx]
                   f
             [,MSGL0=xxxx...xxxx][,MSGL1=xxxx...xxxx]

= 備考 =

定義カードが2行にまたがる場合は、以下のいずれかの方法で定義カードを記述してください。

- 1行目は71カラム目まで記述した後、72カラム目に「-」（ハイフン）を記述する。2行目は1カラム目から記述する。

- パラメーターの後の「,」（カンマ）まで記述した後、半角スペースを空けた上で71カラム目までに「-」（ハイフン）を記述する。

定義カードの入力内容

a.ファイルID

  相手ホストに送信を依頼するファイルIDを指定します（省略不可）。

  50バイト以内の英数字および“_”で指定します。

b.ホスト名

  送信を依頼する相手ホスト名を指定します（省略可）。

  50バイト以内の英数字で指定します。

  省略すると、登録した集信管理情報の転送グループIDに登録されているすべてのホストに送信が依頼されます。

c.同期転送

  集信処理が終了するまで、送信要求プログラムのジョブ・ステップを停止したいときに指定します（省略可）。

  複数の定義カードが指定されている場合、1つの定義カードの処理が正常終了または異常終了すると、次の定義カードの処理を続行します。

d.同期転送待ち時間

  同期転送の送信要求時の待ち時間を秒単位で指定します（省略可）。

  同期転送時に処理結果を受け取るために同期をとる時間を指定します。

  “10”～“259200”の範囲で指定します。範囲外の値を指定するとエラーとなります。省略すると、“36000”が設定されます。

  指定した時間に達すると、たとえ集信中であってもタイムアウトします。その場合、転送結果は送信要求プログラムには戻りませんので注意してください。

  同期転送待ち時間を指定する場合は、“SYNC”を指定する必要があります。また、相手ホストのHULFTのバージョンがVer.6.3.0以降の場合に同期転送待ち時間が有効となります。

e.メッセージ0 ～ メッセージ5

  配信側ホストへ送信するメッセージを指定します（省略可）。

  50バイト以内で指定します。省略すると、配信側ホストにメッセージは送信されません。メッセージは6つまで指定できます。たとえば、メッセージ0を送信する場合は、「MSG0」で設定します。

f.拡張メッセージ0～拡張メッセージ1

  配信側ホストへ送信する拡張メッセージを指定します（省略可）。

  200バイト以内で指定します。省略すると、配信側ホストに拡張メッセージは送信されません。

  拡張メッセージは2つまで指定できます。たとえば、拡張メッセージ0を送信する場合は、「MSGL0」で指定します。

注意

「ファイルID」のみ指定した場合、カンマを省略できます。

「ホスト名」または「同期転送」を省略した場合、カンマを指定してください。

（例）

  「ファイルID」と「メッセージ0～メッセージ5」を指定する場合

      FILE01,,,MSG0=HULFT.DATA

= 備考 =

- メッセージおよび拡張メッセージに以下の文字を入力する場合、「'」（シングルクォーテーション）で括ってください。

  - スペース

  - 「=」（イコール）

  - 「,」（カンマ）

  - マルチバイト文字

- メッセージに以下を指定することはできません。

  - 「'」（シングルクォーテーション）

- XRCRD定義カードで「MSG0」～「MSG5」または「MSGL0」～「MSGL1」を指定した場合、相手ホストの言語設定によっては、メッセージの置換が正しく行われず、転送に失敗する場合があります。メッセージ送信の注意点については、以下を参照してください。

  HULFT10 for zOS アドミニストレーション マニュアル : メッセージ送信

### JCL例

    //XRRCVREQ JOB  CLASS=A,MSGCLASS=B
    //XRRCVREQ EXEC PGM=XRRCVREQ,REGION=4096K
    //STEPLIB  DD   DSN=HULFT.LOAD,DISP=SHR
    //XRSYSIN  DD   DSN=HULFT.PARMLIB(HULPRM),DISP=SHR
    //XRFILE   DD   DSN=HULFT.FILE,DISP=SHR
    //XRHOST   DD   DSN=HULFT.HOST,DISP=SHR
    //IPGET    DD   DSN=HULFT.HOSTS.LOCAL,DISP=SHR
    //*SYSTCPD  DD  DSN=TCPIVP.TCPPARMS(TCPDATA),DISP=SHR
    //SYSOUT   DD   SYSOUT=*
    //XRCARD   DD   *
        LOOPTEST,ZOS
    //

DD名 | 項目名 | 説明
--- | --- | ---
STEPLIB | HULFT.LOAD | HULFTロードモジュールライブラリー
XRSYSIN | HULFT.PARMLIB(HULPRM) | システム動作環境設定ファイル
XRFILE | HULFT.FILE | 集配信管理ファイル
XRHOST | HULFT.HOST | 詳細ホスト情報ファイル
IPGET | HULFT.HOSTS.LOCAL | IP管理ファイル
SYSTCPD | TCPIVP.TCPPARMS(TCPDATA) | TCPIP.DATAデータセット

注意

- 同期転送の送信要求の場合、要求受付側がHULFT for Mainframeかそれ以外かによって、同期転送待ち時間が有効になる条件が異なります。

  - 要求の受付側がHULFT for Mainframeの場合

    以下の条件をすべて満たした場合のみ、同期転送待ち時間が有効になります。

    - 要求発行側および要求受付側のHULFTがともにVer.6.3以降

    - 要求受付側のシステム動作環境設定の要求受付同期待ちモード（REQWAITMODE）が“1”

    - 要求発行側が同期転送待ち時間を指定

    条件が満たされていない場合、同期転送待ち時間を指定しても要求受付側のHULFT for Mainframeはタイムアウトしません。ただし処理時間が無通信タイムアウト時間よりも長くかかった場合は、送信要求は無通信タイムアウトします。

  - 要求の受付側がHULFT for Mainframe以外の場合

    以下の条件をすべて満たした場合のみ、同期転送待ち時間が有効になります。

    - 要求発行側および要求受付側のHULFTがともにVer.6.3以降

    - 要求発行側が同期転送待ち時間を指定

    条件が満たされていない場合、36000秒が設定されます。したがって、システム動作環境設定のソケットリード待ち時間（TIMEOUT）に36000秒以上の値を設定しない限り、送信要求はソケットリード待ち時間の時間でタイムアウト（無通信タイムアウト）します。

- 同期転送を指定した場合、DDステートメントで集信ファイルは指定できません。

  後続ジョブ・ステップで集信ファイルを指定したい場合は、集信ファイルを動的に割り当てて処理を行うプログラムを作成してください。