3.2.2 処理を複数の実行ホストで分散して実行させる場合の構成例
複数の実行ホストで分散して業務を実行させたい場合は,業務の管理ホストとしてJP1/AJS2 - Managerを使用し,実行ホストとしてJP1/AJS2 - Agentを使用します。なお,JP1/AJS2 - Agentの代わりに実行ホストとしてJP1/AJS2 - Managerを使用することもできます。また,監視ホストとしてJP1/AJS2 - Viewを使用します。
- <この項の構成>
- (1) 1台の業務管理ホストを使用する場合
- (2) 複数の業務管理ホストを使用する場合
- (3) タイムゾーン
- (4) 文字コード
- (5) 同一マシンを複数の実行ホストとして使用する方法
- (6) イベントジョブ使用時に同一マシンを複数の実行ホストとして使用する方法
- (7) 注意事項
(1) 1台の業務管理ホストを使用する場合
JP1/AJS2 - Manager用ホストを1台用意し,JP1/AJS2 - Agent用ホストを複数台用意します。また,必要に応じてJP1/AJS2 - View用のホストを用意します。
1台のJP1/AJS2 - Managerホストを使ったマネージャー・エージェント構成のシステム構成例を次の図に示します。
図3-2 1台のJP1/AJS2 - Managerホストを使ったマネージャー・エージェント構成のシステム構成例
![[図データ]](figure/zud03020.gif)
(2) 複数の業務管理ホストを使用する場合
JP1/AJS2 - Manager用ホストとJP1/AJS2 - Agent用ホストを複数台用意します。また,必要に応じてJP1/AJS2 - View用ホストを用意します。
複数のJP1/AJS2 - Managerを使ったマネージャー・エージェント構成のシステム構成例を次の図に示します。
図3-3 複数のJP1/AJS2 - Managerを使ったマネージャー・エージェント構成のシステム構成例
![[図データ]](figure/zud03030.gif)
なお,JP1/AJS2は自ホスト名からIPアドレスが解決できる環境で動作させてください。自ホスト名からIPアドレスが解決できない環境では,JP1/AJS2は起動できません。
また,複数ホストでジョブを実行する場合は,マネージャー,エージェントおよび他システムの各ホスト上で,IPアドレスが解決できるように設定してください。DNS運用をしている場合は,FQDN形式のホスト名のIPアドレスが解決できるように設定してください。
(3) タイムゾーン
JP1/AJS2 - Viewを使ってJP1/AJS2 - Managerにログインして業務の実行状況や実行結果を確認する場合,表示される時刻はJP1/AJS2 - ViewのがインストールされているマシンのOSに設定されたタイムゾーンに従います。
- Windowsの場合
- Windows上のJP1/AJS2 - Managerは,OSの構造上,プロセス単位にタイムゾーンを扱えません(1台のJP1/AJS2 - Managerで複数のタイムゾーンを扱うことはできません)。したがって,タイムゾーン別にJP1/AJS2 - ManagerおよびJP1/AJS2 - Viewを複数台用意してください。
- UNIXの場合
- UNIXではプロセス単位にタイムゾーンを設定できるので,JP1/AJS2 - Managerに実行登録するジョブネットに対して,実行登録するユーザーごとに環境変数TZを選択できます(1台のJP1/AJS2 - Managerで複数のタイムゾーンを扱うことができます)。
- ただし,ユニットに対して操作を行う場合は,次の制限があります。
- JP1/AJS2 - Viewから操作する場合は,一つのタイムゾーンしか扱えないため,タイムゾーン別にユニット定義を用意し,タイムゾーンごとにJP1/AJS2 - Viewを起動する。
- 実行登録を行う場合は,タイムゾーン別に環境変数TZを設定した環境で,ajsentryコマンドを使用する。
- 日時変更などの時刻に関する指定は,相対指定だけとする。
- 実行登録した内容をコマンドで確認する場合は,実行登録したときと同じ環境変数TZを設定した環境で,ajsshowコマンドを使用する。
業務の実行先が海外であっても,日本時間に設定されているJP1/AJS2 - Viewを使って実行状況や実行結果を表示させると,現地時間ではなく日本時間で時刻が表示されます。Windowsの場合は,タイムゾーンが異なるエリアの業務の実行状況や実行結果を現地時間で確認するには,現地のタイムゾーンに合わせたJP1/AJS2 - Viewマシンを別途用意する必要があります。例えば,ニューヨークでの実行状況をニューヨーク時間で表示させるにはニューヨークのタイムゾーンに合わせて時刻を調整したJP1/AJS2 - Viewマシンを用意してください。UNIXの場合は,プロセスごとにタイムゾーンを設定すれば,タイムゾーンが異なるエリアの実行状況を1台のJP1/AJS2 - Viewマシンで確認することができます。
異なるタイムゾーンにある複数の管理業務ホストの実行状況を確認する場合のシステム構成例を次の図に示します。
図3-4 異なるタイムゾーンにある複数の管理業務ホストの実行状況を確認する場合のシステム構成例
![[図データ]](figure/zud03040.gif)
マネージャー・エージェント間でタイムゾーンが異なる場合の注意事項を次の表に示します。
なお,次に示す注意事項は,スケジュールされ実行されているジョブに対する注意事項です。ジョブネットの実行スケジュールを定義するときの注意事項ではありません。
ジョブネットの実行スケジュールは,マネージャーのタイムゾーンに従ってスケジュールされます。
表3-3 マネージャー・エージェント構成時のタイムゾーンに関する注意事項
注意事項 | PCジョブ UNIXジョブ QUEUEジョブ カスタムジョブ | アクションジョブ | イベントジョブ |
---|
ジョブは,エージェントのタイムゾーン環境下で実行されます。標準出力ファイルおよび標準エラー出力ファイル(実行結果詳細)のメッセージ中の時刻は,エージェントのタイムゾーンの時刻です。 | ○ | ○ | ○ |
ジョブに定義した打ち切り時間などによる時間計算は,エージェントのタイムゾーンの時刻で行われます。マネージャーのタイムゾーンの時刻ではありません。 | - | ○ | - |
イベントジョブの引き継ぎ情報内の時刻は,イベントが発生したエージェントのタイムゾーンの時刻です。マネージャーのタイムゾーンや,(引き継ぎ情報を使用する)ジョブを実行するときのタイムゾーンの時刻ではありません。 | ○ | ○ | ○ |
- (凡例)
- ○:対象
- -:対象外
(4) 文字コード
JP1/AJS2で使用する文字コードは,JP1/Baseで使用している文字コードに合わせてください。
マネージャー・エージェント構成,国内版・海外版のJP1/AJS2製品を混在環境で使用する場合の組み合わせについては,「5.6.1 システムで使用する言語種別を検討する」を参照してください。
マネージャーとエージェントで文字コードが異なる場合,マネージャー・エージェント間の通信時に,次に示す定義,入力ファイル,および実行結果の文字コードは通信先で使用している文字コードに変換されます(マネージャーからエージェントに通信する場合は,エージェントで使用している文字コードに変換されます。エージェントからマネージャーに通信する場合は,マネージャーで使用している文字コードに変換されます)。
なお,PCジョブ,UNIXジョブ,アクションジョブがキューレスエージェントで実行される場合で,エージェントのバージョンが07-00~07-00-/Bの場合は,一切変換されません。
- PCジョブ,UNIXジョブ,およびQUEUEジョブの場合
- 定義
- 実行ファイル名
- コマンド文
- スクリプトファイル名
- パラメーター
- 環境変数
- 環境変数ファイル名
- エージェントプロセス実行時のワークディレクトリ名
- 標準入力ファイル名
- 標準出力ファイル名
- 標準エラー出力ファイル名
- 転送ファイル名
- ジョブ名(QUEUEジョブの場合)
- ジョブに定義したマクロ変数の値
- 入力ファイル
- 実行結果
- 標準出力ファイルの内容
- 標準エラー出力ファイルの内容(実行結果詳細)
- アクションジョブ,カスタムジョブの場合
- 定義
- ジョブに定義した情報
- ジョブに定義したマクロ変数の値
- 実行結果
- イベントジョブの場合
- 定義
- 実行結果
- 標準エラー出力ファイルの内容(実行結果詳細)
- 引き継ぎ情報(ジョブに定義したマクロ変数の値)
(5) 同一マシンを複数の実行ホストとして使用する方法
JP1/AJS2で管理するエージェントは,エージェントごとにジョブの実行多重度を設定できます。同一マシン(一つのIPアドレス)に対して複数のエージェントホストをエイリアスとして定義し,特性の異なるジョブを別のエージェントホストに登録することで,一つのマシン上で業務を振り分けることができます。例えば,実ホスト(hostA)に対してhostB,hostCというエイリアスを定義し,一つのマシン上で次の図のように業務を振り分けることができます。なお,キューレスジョブは,エイリアスのエージェントホスト名を使用できません。
図3-5 業務の振り分け例
![[図データ]](figure/zud03050.gif)
このような運用をするには,ジョブ実行制御の構成定義にエイリアスのエージェント名を追加します。なお,その際はhostsファイルでエイリアス名を指定して,エイリアス名でIPアドレスが解決できることを確認してください。エージェント名の追加方法については,以下の設定方法の「(b) ジョブ実行制御の構成定義」を参照してください。
また,JP1/Baseのバージョン06-71でサポートされたjp1hosts情報で定義すると,hostsファイルなどのOSの設定を変更せずにJP1独自のhosts情報を持つことができます。次に設定方法を示します。
- 注意
- JP1独自のhosts情報を持つには,JP1/Baseのバージョン06-71以降が必要になります。
(a) jp1hosts情報の定義
IPアドレスが100.0.0.10,実ホスト名がhostAであるノードに対してhostB,hostCというエイリアスのホスト名を定義する場合の例を説明します。
- JP1/AJS2のサービスを停止する。
- jp1hosts定義ファイルを編集する。
デフォルトで提供されているjp1hosts定義ファイルを編集します。
hostA 100.0.0.10
hostB 100.0.0.10
hostC 100.0.0.10
なお,この設定はマネージャーホスト上で設定します。
- JP1/Baseを停止する。
- jbshostsimportコマンドを実行して共通定義情報に登録する。
次のコマンドを実行して,jp1hosts情報を共通定義情報に登録します。
jbshostsimport {-o|-r} jp1hosts定義ファイル名 [-h 論理ホスト名]
共通定義情報に登録したjp1hosts情報を確認する場合は,jbshostsexportコマンドを利用してください。なお,これらのコマンドは,JP1/Baseを停止した状態で実行してください。
これらのコマンドの詳細については,マニュアル「JP1/Base 運用ガイド」のコマンドの章を参照してください。
- JP1/Baseを再起動する。
- JP1/AJS2を再起動する。
JP1/AJS2を再起動します。JP1/AJS2の再起動によって,設定したjp1hosts情報が有効になります。
- 注意
- jp1hosts情報を設定した場合,jp1hosts情報に定義されたホスト名およびIPアドレスに関しては,hostsファイルやDNSの定義を参照しません。したがって,jp1hosts情報に設定したIPアドレスに対応する実ホスト名とエイリアス名の両方をjp1hosts情報に定義しておく必要があります。また,実ホスト名はエイリアス名よりも先に定義してください。jp1hosts情報の定義方法の詳細については,マニュアル「JP1/Base 運用ガイド」のjp1hosts情報の定義に関する説明を参照してください。
(b) ジョブ実行制御の構成定義
エイリアスエージェントを追加する場合の手順を次に示します。
コマンドの詳細については,マニュアル「JP1/Automatic Job Management System 2 コマンドリファレンス 1. コマンド」を参照してください。
- エージェント定義を動的に追加する。
jpqagtaddコマンドを使用してjp1hosts情報にエイリアスとして定義したものと同じ名前のエージェントホスト名を-ahオプションに指定し,追加します。また,-cpオプションに実行多重度を設定します。実行多重度は排他実行をしたいジョブの運用方法に合わせて設定します。
例えば,hostAでは通常業務を行い,エイリアス定義したhostBでは一つだけ実行したい業務だけを行う場合,次のように実行多重度を設定します。
jpqagtadd [-mh マネージャーホスト名] -ah hostA -cp 0:00-0:00=5
jpqagtadd [-mh マネージャーホスト名] -ah hostB -cp 0:00-0:00=1
hostAでは常に5個までのジョブが実行されるのに対し,hostBに登録したジョブは常に一つだけ実行されます。
- キューをオープンする。
エージェント定義追加時はキューの受付口がクローズ状態になっているため,jpqqueopenコマンドを使用してキューの受付口をオープンしてください。
例えば,hostAのキューの受付口をオープンしたい場合は次のコマンドを実行します。
jpqqueopen [-mh マネージャーホスト名] -ah hostA -en
(6) イベントジョブ使用時に同一マシンを複数の実行ホストとして使用する方法
イベントジョブを使用する場合に,あらかじめ同一マシン(一つのIPアドレス)に対して複数のエージェントホストをエイリアスとして定義することで,擬似的に複数のエージェントが存在する環境で運用テストを行ったり,管理上やジョブの性質上から実行エージェントを分けたいときに一つのエージェントホストに対してジョブを振り分けたりすることができます。
例えば,IPアドレスが100.0.0.10,ホスト名がHostMのマネージャーホストで,IPアドレスが100.0.0.20,実ホスト名がHostAであるエージェントホストに対して,HostBというエイリアスのホスト名を定義する場合の例を次に示します。
図3-6 エイリアスの設定例
![[図データ]](figure/zud03070.gif)
このような場合,マネージャー側とエージェント側のhostsファイルをそれぞれ次のように設定します。
- マネージャー側のhostsファイルの設定
HostAとHostBの名前解決するために次のように設定する。
100.0.0.20 HostA HostB
- エージェント側のhostsファイルの設定
HostMと名前解決するために次のように設定する
100.0.0.10 HostM
- 注意事項
- 複数ホストでジョブを実行する場合は,マネージャー,エージェントおよび他のシステムの各ホスト上で,IPアドレスによる解決ができるように設定してください。また,hostnameコマンドで返る値で求まるIPアドレスと,エイリアス名で求まるIPアドレスは同一になるように設定してください。
(7) 注意事項
マネージャー・エージェント構成時の注意事項を次に示します。
- マネージャー・エージェント構成で標準ジョブ,アクションジョブ,カスタムジョブ,またはイベントジョブがキューイング状態のままになるような場合は,次のケースに該当しないか確認してください。該当する場合は,システムの設定などを見直してください。
- マネージャーホスト上でエージェントホストの名前が解決できない,またはエージェントホスト上でマネージャーホストの名前が解決できない場合
マネージャーホストではエージェントホストのホスト名が,エージェントホストではマネージャーホストのホスト名が,互いにホスト名から名前解決できるようにそれぞれのホストでhostsファイル,DNSファイル,またはjp1hostsファイルを設定してください。jp1hostsファイルについての詳細は,マニュアル「JP1/Base 運用ガイド」を参照してください。
ここでは,hostsファイルの設定例を示します。次のように設定してください。
図3-7 互いにホスト名から名前解決するためのhostsファイルの設定例
![[図データ]](figure/zud03071.gif)
なお,ホスト名は,次の方法で確認できます。
・物理ホストの場合
マネージャーホストまたはエージェントホスト上でhostnameコマンドを実行して得られるホスト名。
・論理ホストの場合(Windows)
JP1/AJS2を運用しているホスト上で[コントロールパネル]ウィンドウから[サービス]を選択するか,または[管理ツール]-[サービス]を選択し,[サービス]ウィンドウに表示される「JP1/AJS2_XXXXX」の「XXXXX」の部分に表示されるホスト名。
・論理ホストの場合(UNIX)
psコマンドを実行し,jajs_spmdプロセスの後ろに表示されるホスト名。
- マネージャーホストで,エージェントホスト名についてエイリアス定義をしていて,エージェントホスト上でhostnameコマンドを実行して得られるホスト名と,エイリアス定義で指定したホスト名で,同じIPアドレスが得られない場合
次のように設定してください。
図3-8 ホスト名をエイリアス定義する場合のhostsファイルの設定例
![[図データ]](figure/zud03072.gif)
- マネージャーホスト側ではhostsファイルにエージェントホスト名をFQDN形式で定義しているが,エージェントホスト上でhostnameコマンドを実行して得られるホスト名はショート名になっているためマネージャーホスト上で名前解決できない,またはその逆で,マネージャーホスト側ではhostsファイルにエージェントホスト名をショート名で定義しているが,エージェントホスト上でhostnameコマンドを実行して得られるホスト名はFQDN形式になっているためマネージャーホスト上で名前解決できない場合
名前解決できない例を次に示します。
図3-9 hostsファイルでホスト名をFQDN形式で定義している例
![[図データ]](figure/zud03073.gif)
図3-10 hostsファイルでホスト名をショート名で定義している例
![[図データ]](figure/zud03074.gif)
このような場合,ジョブが実行できてもマネージャーとエージェント間でジョブの一連の通信が完結しないため,マネージャー側やエージェント側に大量の再試行用データが滞留することがあります。また,それらのデータの再試行によって次の現象が発生することがあります。
・システムが高負荷状態になり,実行したジョブがキューイング状態のままになったり,イベントの検知が極端に遅れたり,またはイベントを検知しなくなったりする。
・エージェントのJP1/AJS2サービスを再起動すると,過去に検知したイベントが再検知される。
後者の現象は,エージェントの再起動時にイベントを検知した旨の再試行用データがある場合に,マネージャーに再通知する機能が働くために発生します。
これらの現象が発生した場合は,マネージャーとエージェントのJP1/AJS2サービスをいったん停止し,マネージャーとエージェント間で互いに名前解決できるように設定したあとマネージャーとエージェントのJP1/AJS2サービスをコールドスタートしてください。そのあと必要に応じてジョブネットを実行登録し直してください。
- マネージャー・エージェント間はネットワークで接続されています。ジョブ実行時にネットワークエラーなどが発生した場合の,ジョブの再試行処理を次の表に示します。
表3-4 ネットワークエラー時のジョブ再試行処理
ジョブ種別 | 再試行処理 |
---|
PCジョブ,UNIXジョブ,QUEUEジョブ,アクションジョブ,カスタムジョブ | - マネージャーからエージェントへの再試行
- 監視間隔を300秒※1として,2回再試行する。
- エージェントからマネージャーへの再試行
- ジョブの結果ファイルの転送を,監視間隔を300秒として288回(24時間)再試行する。※2
|
PCジョブ(キューレスジョブ),UNIXジョブ(キューレスジョブ),アクションジョブ(キューレスジョブ) | 再試行されない。 |
イベントジョブ | マネージャーからエージェントへの再試行
- エージェントホストに接続できない(タイムアウトする)場合,監視間隔を300秒,600秒,900秒,1800秒,3600秒(以降3600秒)として,27回(24時間)再試行する。
- 上記以外のネットワークエラーの場合,監視間隔を30 秒として,2880回(24時間)再試行する。
エージェントからマネージャーへの再試行(イベント成立時の再試行)
- 監視間隔を10 秒として,8640回(24時間)再試行する。
|
- 注※1
- ジョブ実行制御の環境設定パラメーター「エージェント監視インターバル」の
- デフォルト値です。
- 注※2
- 監視間隔と再試行回数は運用に合わせて変更できます。詳細については,Windowsホストの場合は,マニュアル「JP1/Automatic Job Management System 2 セットアップガイド 7.17 ジョブの結果ファイルの再送間隔・再送回数の変更」を,UNIXホストの場合は,マニュアル「JP1/Automatic Job Management System 2 セットアップガイド 16.15 ジョブの結果ファイルの再送間隔・再送回数の変更」を参照してください。
ネットワークエラーが発生した場合,ジョブの実行は監視時間分だけ遅延しますが,運用は続行できます。ただし,上記の監視間隔よりも長くネットワークエラーの状態が続くと,ジョブの実行結果には「起動失敗」と出力されます。
- エラーメッセージ「KAVU2227-E TCP/IP通信で接続エラーが発生しました」が出力された場合,システム全体で使用できるソケットポートが枯渇しているおそれがあります。対処方法を次に示します。
- Windowsホストの場合
- 「netstat -a」コマンドを実行してシステムのソケットの状態を調べて,TIME_WAIT状態のソケットが多数あるかどうかを確認します。TIME_WAIT状態のソケットが多数ある場合は,一時的に空いているソケットポートが不足しているおそれがあります。通信エラーメッセージが出力される場合は,ソケット接続できないため,ジョブの実行やジョブの状態確認に失敗しているおそれがあります。このような場合は,TIME_WAIT状態のソケットが少なくなってから,ジョブを再実行してください。
- なお,Windowsが管理するTIME_WAITポートの回復時間を早めることで,通信エラーを抑止する方法もあります。TIME_WAITポートの回復時間を早める手順を次に示します。
- 1. 次のコマンドを実行して,レジストリーエディターを起動する。
- C:¥> regedt32.exe
- 2. 次に示すTCP/IPのキーを開く。
- ¥¥HKEY_LOCAL_MACHINE¥SYSTEM¥CurrentControlSet¥Services¥Tcpip¥Parameters
- 3. 次に示すレジストリー値を追加する。
- 名前:TcpTimedWaitDelay
- データ型:REG_DWORD
- データ:任意の値(10進数の値)
- 4. Windowsを再起動する。
- TcpTimedWaitDelayパラメーターに指定する値は任意です。運用環境に適した値を設定してください。なお,標準値は240秒,最小値は30秒です。
- UNIXホストの場合
- TIME_WAIT状態のソケットが多数ある場合は,一時的に空いているソケットポートが不足しているおそれがあります。通信エラーメッセージが出力される場合は,ソケット接続できないため,ジョブの実行やジョブの状態確認に失敗しているおそれがあります。このような場合は,TIME_WAIT状態のソケットが少なくなってから,ジョブを再実行してください。
- PCジョブ,UNIXジョブ,QUEUEジョブ,アクションジョブ,およびカスタムジョブの場合,JP1/AJS2 - Managerは,実行ホスト(エージェント)で実行しているジョブを5分間隔で監視します。
通信障害や実行ホストでの電源断などでジョブを確認できない状態が10分以上続くと,ジョブの状態は変更されます。ジョブネットで実行したジョブは,異常終了(終了コードは「-1」)になります。jpqjobsubコマンドで実行したジョブは,jpqjobsubコマンドの-rsオプションの指定に従って状態は変更されます。
- イベントジョブの場合,イベントジョブの実行中にエージェントが停止したときのイベントジョブの状態は,エージェントの停止状況およびイベントジョブ実行継続オプションの使用状況によって異なります。
エージェントが停止しているときにイベントジョブを実行登録すると,一定間隔でイベントジョブの開始要求が再試行されます。エージェントの停止状況ごとのジョブの状態については,「15.4.1(4) エージェントホストを再起動する場合のマネージャーホスト上でのジョブの状態」を参照してください。
イベントジョブ実行継続オプションについては,「8.5.8 JP1/AJS2のサービスが停止してもイベントジョブの実行を継続させる」を参照してください。イベントジョブの再試行処理の詳細については,表3-4を参照してください。
- エージェントホストに複数のIPアドレスが割り当てられている場合,イベント・アクション制御マネージャーは一つのホストについて最大四つまで管理します。したがって,IPアドレスは一つのホストに対して最大四つまでの環境で運用してください。ホスト名から取得できるアドレス数が四つを超える場合,取得したアドレスの中から四つだけを管理しますが,どのアドレスを管理するかについては一定の規則性はありません。
- 実ホスト名がHostAであるエージェントホストに対して,HostBというエイリアスのホスト名を定義する場合,同じIPアドレスが返るように設定してください。
- マネージャー・エージェント間の通信では,各マシンのホスト名を使用します。マネージャーホストとエージェントホストで互いのホスト名について正しく名前解決できるように設定してください。なお,ここでいうホスト名とは,次の方法で確認できる名前です。
- 物理ホストの場合
- JP1/AJS2ホスト上でhostnameコマンドで求まる名前
- 論理ホストの場合
- Windows版
- JP1/AJS2ホスト上で,[コントロールパネル]ウィンドウで[サービス]を選択する,または[管理ツール]-[サービス]を選択し,サービスウィンドウで表示される「JP1/AJS2_xxxxx」の「xxxxx」部分に表示されるホスト名
- UNIX版
- psコマンドを実行し,jajs_spmdプロセスの後ろに表示されるホスト名