16.17 TCP/IP通信接続エラーのリトライ間隔・回数の変更

ジョブ実行制御ではジョブの登録,ジョブの配信,ジョブの状態通知,ジョブの状態確認またはエージェントホストの状態確認を行う際,プロセス間で情報を受け渡すためにTCP/IP通信を使用しています。接続先のマシンが起動していない場合やネットワーク障害が発生している場合,TCP/IP通信の接続エラーが発生します。

このとき,ジョブ実行制御のTCP/IP通信処理では,最初の接続要求に対して通信相手から応答がなかった場合に最大で90秒待ち,その後,20秒の間隔をおいて再接続を試みるリトライを2回行います。このため,リトライがすべて失敗し最終的に接続エラーとなるまでにおよそ4~5分が掛かることがあります。

ジョブの登録,ジョブの配信,ジョブの状態通知,ジョブの状態確認またはエージェントホストの状態確認を行う際に通信障害が発生すると,その検知に遅れが生じることがあります。障害の検知が遅れることによって,結果的にジョブの状態を変更するまでの時間が遅れることになります。

TCP/IP通信の接続エラーが頻繁に発生する場合は,接続タイムアウト時間,リトライ回数,リトライ間隔を短く設定変更することで,障害状態をより早く検知できます。

表16-19 値を変更する定義キー

定義キー使用目的
JP1NBQMANAGER¥Networkジョブの配信,ジョブの状態確認,ジョブの状態通知,エージェントホストの状態確認(障害回復の検知)
JP1NBQAGENT¥Networkジョブの状態通知
JP1NBQCLIENT¥Networkスケジュール制御からのジョブの登録,ジョブ実行に使用するコマンド
JP1NBQNOTIFY¥Network他システム(JP1/NQSEXECやJP1/OJEなど)のジョブの状態確認,および状態通知

ジョブ実行制御の接続タイムアウト,リトライ間隔・回数の設定手順を次に示します。

<この節の構成>
(1) 定義手順
(2) 定義パラメーター一覧
(3) 定義内容

(1) 定義手順

  1. JP1/AJS2のサービスを停止する。
    次のコマンドを実行して,プロセスがすべて停止していることを確認します。

    # /etc/opt/jp1ajs2/jajs_stop
    # /opt/jp1ajs2/bin/jajs_spmd_status

    注※
    自動停止の設定が行われていることを確認してください。
  2. viなどのエディターで,「(2) 定義パラメーター一覧」の定義パラメーターを記述した設定ファイルを作成する。
    設定ファイルのファイル名は任意です。
  3. ファイルを保存し,次のコマンドを実行する。

    jbssetcnf 設定ファイル名

    jbssetcnfコマンドのパスは,「/opt/jp1base/bin/jbssetcnf」です。
    jbssetcnfコマンドの詳細については,マニュアル「JP1/Base 運用ガイド」を参照してください。
  4. JP1/AJS2を再起動する。
    設定ファイルに記述した内容が反映されます。

(2) 定義パラメーター一覧

表16-20 ジョブ実行制御のTCP/IP通信定義パラメーター一覧

定義キー環境設定パラメーター定義内容
[{JP1_DEFAULT|論理ホスト名}¥JP1NBQMANAGER¥Network]"ConnectTimeout"=ジョブ実行制御マネージャーのTCP/IP通信接続タイムアウト値の定義(単位:ミリ秒)
"CommunicateRetryCount"=ジョブ実行制御マネージャーのTCP/IP通信接続エラーのリトライ回数の定義
"CommunicateRetryInterval"=ジョブ実行制御マネージャーのTCP/IP通信接続エラーのリトライ間隔の定義(単位:秒)
[{JP1_DEFAULT|論理ホスト名}¥JP1NBQAGENT¥Network]"ConnectTimeout"=ジョブ実行制御エージェントのTCP/IP通信接続タイムアウト値の定義(単位:ミリ秒)
"CommunicateRetryCount"=ジョブ実行制御エージェントのTCP/IP通信接続エラーのリトライ回数の定義
"CommunicateRetryInterval"=ジョブ実行制御エージェントのTCP/IP通信接続エラーのリトライ間隔の定義(単位:秒)
[{JP1_DEFAULT|論理ホスト名}¥JP1NBQCLIENT¥Network]"ConnectTimeout"=ジョブ実行に使用するコマンドおよびスケジュール制御のTCP/IP通信接続タイムアウト値の定義(単位:ミリ秒)
"CommunicateRetryCount"=ジョブ実行に使用するコマンドおよびスケジュール制御のTCP/IP通信接続エラーのリトライ回数の定義
"CommunicateRetryInterval"=ジョブ実行に使用するコマンドおよびスケジュール制御のTCP/IP通信接続エラーのリトライ間隔の定義(単位:秒)
[{JP1_DEFAULT|論理ホスト名}¥JP1NBQNOTIFY¥Network]"ConnectTimeout"=ジョブ実行制御状態通知プロセスのTCP/IP通信接続タイムアウト値の定義(単位:ミリ秒)
"CommunicateRetryCount"=ジョブ実行制御状態通知プロセスのTCP/IP通信接続エラーのリトライ回数の定義
"CommunicateRetryInterval"=ジョブ実行制御状態通知プロセスのTCP/IP通信接続エラーのリトライ間隔の定義(単位:秒)
注※
{JP1_DEFAULT|論理ホスト名}の部分は,物理ホストの場合は「JP1_DEFAULT」を,論理ホストの場合は「論理ホスト名」を指定します。

(3) 定義内容

"ConnectTimeout"=dword:設定値
TCP/IP通信の接続タイムアウト値を16進数で指定します。
指定できる範囲は00002710~000927C0(10進数で10,000~600,000)(単位:ミリ秒)です。
デフォルトは「dword:00015F90」(10進数で90,000)で90秒です。
"CommunicateRetryCount"=dword:設定値
TCP/IP通信の接続エラーのリトライ回数を16進数で指定します。
指定できる範囲は00000000~00000064(10進数で0~100)です。
デフォルトは「dword:00000002」(10進数で2)です。
"CommunicateRetryInterval"=dword:設定値
TCP/IP通信の接続エラーのリトライ間隔を16進数で指定します。
指定できる範囲は00000001~0000012C(10進数で1~300)(単位:秒)です。
デフォルトは「dword:00000014」(10進数で20)です。
注意事項
接続タイムアウト,リトライ回数,リトライ間隔の値を小さくし過ぎると,通信のリトライ間隔が短くなるため,通信障害が回避できなくなり,TCP/IP通信の接続エラーが頻繁に発生することがありますので注意してください。
また,オペレーティングシステムの接続タイムアウト仕様とその設定によって,ConnectTimeoutに設定した値より前に接続のタイムアウトが発生することがあります。