JP1/AJS HULFT配信ジョブユニットが一定時間経過後、異常終了になるが配信は成功している場合

【PR】
※IT系の記事は当方環境での実施内容となるため実施する場合は自己責任でお願いいたします。

考えられる原因

JP1のHULFT送信ジョブユニットが一定時間経過後、異常終了になるが配信は成功してしまうときは
この辺りの設定の影響を受けています。
JP1の終了コードは「4」とか「58」とかあってすぐには何のエラーかわかりにくい。

https://www.hulft.com/help/ja-jp/HULFT-V8/UX-ADM/Content/HULFT_ADM/Caution/timeout_synchronous.htm

以下、上記リンクより。

■配信要求 
HULFT for Mainframe 
配信要求プログラム(XRSNDGO) 
同期転送待ち時間の指定ができないため、HULFTの設定によりタイムアウトすることはありません。

HULFT for IBMi 
配信要求コマンド(UTLSEND) コマンドのパラメータ
'W=' 待ち時間(秒) 上記指定がない場合は、タイムアウト値は無制限となります。 

HULFT for UNIX/LinuxまたはHULFT for NSK 
配信要求コマンド(utlsend) 
コマンドのパラメータ -w 待ち時間(秒) 上記指定がない場合は、システム動作環境設定のユーティリティ応答待ち時間を使用します。 

HULFT for Windows 
配信要求コマンド(utlsend.exe) 
コマンドのパラメータ -w 待ち時間(秒) 上記指定がない場合は、システム動作環境設定のソケットリードタイムアウトを使用します。 

■送信要求 
HULFT for Mainframe 
送信要求プログラム(XRRCVREQ) 
起動JCL、XRCARD定義カード TIME=同期転送待ち時間(秒) 上記指定がない場合は、要求受付がHULFTの設定によりタイムアウトすることはありません。ただし、無通信タイムアウト時間を経過しても要求受付から応答がない場合には、送信要求は無通信タイムアウトとなります。詳細は「無通信タイムアウト時間」を参照してください。 

HULFT for IBMi 
送信要求コマンド(UTLRECV) 
コマンドのパラメータ 'W=' 同期転送待ち時間(秒) 上記指定がない場合は、システム動作環境設定のソケットリードタイムアウトを使用します。 

HULFT for UNIX/LinuxまたはHULFT for NSK 
送信要求コマンド(utlrecv) 
コマンドのパラメータ -w 同期転送待ち時間(秒) 上記指定がない場合は、システム動作環境設定のユーティリティ応答待ち時間を使用します。 

HULFT for Windows 
送信要求コマンド(utlrecv.exe) 
コマンドのパラメータ -w 同期転送待ち時間(秒) 上記指定がない場合は、システム動作環境設定のソケットリードタイムアウトを使用します。

対応方法「-w」パラメータを使う

タイムアウトでJP1が異常終了してしまう場合は以下の様にJP1に「-w」パラメータと所要以上の秒数を付けると正常終了します。
例)1時間の場合

実行ファイル名:"C:\HULFT Family\hulft8\bin\utlsend.exe"
パラメーター:-f SENDID01 -sync -w 3600

検証

試しに10Gのファイルを作って試してみました。
10Gのファイルを作成

fsutil file createnew testdat_10GB 10485760000

うちの環境で送信に大体40秒くらいかかる
タイムアウト15秒

JP1のパラメーター:-f SENDID01 -sync -w 15

→JP1は異常終了、HULFTは正常終了

タイムアウト60秒

JP1のパラメーター:-f SENDID01 -sync -w 60

→JP1は正常終了、HULFTは正常終了

配信多重度、集信多重度の確認

一応、配信多重度、集信多重度も気にしておきますか。多重度に応じてパラで処理が可能なようです。相手がメインフレームとかじゃなければそうそう問題なさそうですが。

【公式】配信多重度 (hulft.com)

【公式】集信多重度 (hulft.com)

HULFT,JP1/AJS

Posted by admin