JP1/AJS HULFT配信ジョブユニットが一定時間経過後、異常終了になるが配信は成功している場合
考えられる原因
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は正常終了
配信多重度、集信多重度の確認
一応、配信多重度、集信多重度も気にしておきますか。多重度に応じてパラで処理が可能なようです。相手がメインフレームとかじゃなければそうそう問題なさそうですが。