ページの先頭行へ戻る
Systemwalker Operation Manager  活用ガイド
Systemwalker

1.11 サーバがダウンした場合に自動的に別サーバにジョブを再投入させたい

以下のように、スケジュールサーバから実行サーバにジョブを投入する構成で、ジョブの実行中に実行サーバBがダウンした場合、自動的に実行中のジョブを実行サーバAまたは実行サーバCに再投入させる方法について説明します。

実行サーバがダウンした場合に、自動的に別サーバにジョブを再投入させるには、以下の方法があります。

ポイント

どの方法が良いか迷ったら・・・

以下に、それぞれの運用方法について概要を示すので、用途に合わせて選択してください。

メリット

デメリット

分散実行

最大10台まで分散先サーバを設定可能。特定のサーバがダウンした場合、最大10分間該当サーバがダウンしたと認識し、該当サーバへの投入を行わないようにできる(ダウンしているサーバへの投入を試みることはない)。

ジョブがどのサーバで実行されるか予測が出来ない。

実行サーバの二重化

通常第1候補のサーバで実行。第1候補のサーバがダウンしている場合だけ、第2候補で実行。異常時だけ代替サーバで実行するという運用が可能。

第1候補のサーバがダウンした場合、まずは第1候補のサ-バに投入を試みてから第2候補に遷移するため、投入に時間がかかる。


分散実行

本来は負荷分散を目的とし、複数の実行サーバをグループ化して負荷の低い実行サーバにジョブを割り振る機能ですが、グループ内の実行サーバがダウンした場合には、ダウンしたサーバ以外のグループ内の実行サーバで再度割り振りを行い、ジョブが再投入されます。

分散実行を利用する場合は、分散実行用のキューを作成する時に、分散先となる実行サーバグループを登録します。手順については、“1.9 ジョブを自動的に負荷の少ないサーバに分散して実行させたい”を参照してください。


参考

実行サーバがダウンしているかどうかの判断は?

デフォルトでは10秒間隔で6回のリトライをします。リトライしても実行サーバに接続できなかった場合に、実行サーバがダウンしていると判断し、ダウンした実行サーバ以外で一番負荷の低い実行サーバにジョブを依頼します。

リトライの回数等については、[運用情報の定義]ウィンドウ-[ネットワーク]シートの[ネットワークジョブで接続エラー時のリトライの動作を変更する]で定義できます。


実行サーバの二重化

ネットワークジョブの場合、実行サーバとして第1候補、第2候補を指定しておくことで、第1候補の実行サーバがダウンしていた場合に、第2候補の実行サーバへ自動的にジョブの実行を依頼することができます。

ネットワークジョブの実行サーバを二重化する場合は、第1候補、第2候補の実行サーバをジョブの登録時に定義します。


注意

第1候補から第2候補へ遷移するときに発生するオーバーヘッド

第1候補のサーバが停止状態でジョブが投入された場合に、第1候補が停止状態だと分かっていても、いきなり第2候補の実行サーバに依頼はされません。毎回、第1候補へのリトライ処理を行ってから第2候補の実行サーバへ依頼されるため、第2候補へ遷移するときには必ずオーバーヘッドが発生します。

オーバヘッドはOS、サーバ、ネットワークの状態に依存します。

手順

以下のいずれかの方法で、第1候補、第2候補の実行サーバを登録してください。

注意

登録できない実行サーバ

第1候補および第2候補に、ローカルホスト名は指定できません。

ジョブ単位で実行サーバを二重化させたい場合

  1. 実行サーバを二重化させたいジョブの[登録-ジョブ]ウィンドウ-[基本情報]シートを表示します。

  2. [登録-ジョブ]ウィンドウ-[基本情報]シートで以下を指定します。

    • [ジョブをネットワークジョブとして投入する]をチェック

    • [依頼ホスト名]に、第1候補および第2候補の実行サーバを、以下の形式で指定

      第1候補のホスト名,第2候補のホスト名

    参考

    ジョブ制御文で登録する場合

    1. ジョブ制御文のreq_hostオペランドに、“第1候補のホスト名,第2候補のホスト名”の形式で実行サーバを設定します。

    2. -nentまたは-ncheオペランドを指定してjobschsetnetコマンドを実行します。定義ファイルには、1.で編集したジョブ制御文を格納したファイル名を指定します。

ジョブネット単位で実行サーバを二重化させたい場合

  1. 実行サーバを二重化させたいジョブネットの[ジョブネットのプロパティ]ウィンドウ-[基本情報]シートを表示します。

  2. [ジョブネットのプロパティ]ウィンドウ-[基本情報]シートで以下を指定します。

    • [ジョブネット内のジョブをネットワークジョブとして投入する]をチェック

    • [デフォルトホスト名]に、第1候補および第2候補の実行サーバを、以下の形式で指定

      第1候補のホスト名,第2候補のホスト名

    参考

    ジョブネット制御文で登録する場合

    1. ジョブネット制御文のdefaulthostオペランドに、“第1候補のホスト名,第2候補のホスト名”の形式で実行サーバを設定します。

    2. -nentまたは-ncheオペランドを指定してjobschsetnetコマンドを実行します。定義ファイルには、1.で編集したジョブネット制御文を格納したファイル名指定します。


参考

実行サーバがダウンしているかどうかの判断は?

以下の場合に、第1候補の実行サーバがダウンしていると判断し、第2候補の実行サーバにジョブを依頼します。

  • 第1候補のサーバへのネットワークが到達できない状況

  • 第1候補のサーバ自体のダウン

  • 第1候補のジョブ実行制御デーモンが停止


参考

実行サーバがすべてダウンしていた場合

実行時に第1候補、第2候補ともにダウンしていた場合、ジョブは異常終了となります。


マニュアルの参照先

<分散実行>
Systemwalker Operation Manager 導入手引書 “運用情報の定義”

<実行サーバの二重化>
Systemwalker Operation Manager 使用手引書 “ネットワークジョブの実行サーバを二重化する”