連載
» 2013年11月15日 18時00分 公開

OSS「JobScheduler」で実現するこれからの運用自動化(2):これからの運用自動化にJobSchedulerを活用する〜基礎編2 (2/2)

[秋穂賢(TIS株式会社),@IT]
前のページへ 1|2       

基本機能を使った活用例

 最後に基礎編のまとめとして、複数サーバにまたがって順序性を持たせたジョブの制御方法を紹介しましょう。これをJobSchedulerで実現するには下記の定義を用います。

・Process Classes定義

 前述の通り、ジョブを稼働させるホストなどを定義。

・Order Job定義

 実行するジョブの実態を定義。

・Job Chain定義

 Order Jobの順序関係などを定義。各Order Jobを実行した際に正常終了/エラー終了を判断し、後続で実行するジョブを分岐する。

・Order定義

 Job Chainを実行させるための命令を定義。Job Chainを実行するには、必ずOrderを発行する必要がある。

図1 Job Chainの構成要素

 これらの定義を用いて下図のジョブ構成の実装方法について解説します。

図2 基本機能を使った活用例で実装する構成

1.Process Classesの定義

 各ホストにEngineおよびAgentをインストールした後、まずは実行対象ホストごとにProcess Classesを定義します。定義方法については、前述の「実行エージェントの設定」と同様に実施してください。例では、各Process Classesに定義した名前(Process Class)はそれぞれのホスト名(agent1/agent2/agent3)と同一名とします。

2.Order Jobの定義

 Order JobはJOEでNew Order Jobを選択して作成すること以外は、Standalone Jobと同様に定義可能です。JOEで作成されたXMLファイルを確認してみると、Standalone Jobに比べ、jobタグ内に「order="yes"」が含まれていることが分かります。

<job order="yes" stop_on_error="no" process_class="agent1" title="agent1">

 この定義以外、Standalone JobとOrder Jobの内容は同一です。例では各Order Job(job1/job2/job3)に、実行したいホストのProcess Class(agent1/agent2/agent3)をそれぞれ割り当て、各ジョブ内容は稼働ホスト名を表示する設定とします。

3.Job Chainの定義

 定義した各Order Jobの実行順序をJob Chainに定義します。Job Chainでは各Stateに対してOrder Jobを定義し、Order Jobが正常終了した際に後続で実行するStateと、エラーが発生した際に後続で実行するStateを定義します。Job Chainでは最後に遷移するStateは必ずEnd Nodeである必要があります(図1では「Error Node」と「Success Node」がEnd Nodeに当たります)。

 JOEでは、下図のように定義できます。

図3 JOEでのJob Chain設定例

■表1 Job Chainでの設定パラメータ

設定パラメータ 説明
State 1つのJob Chain内で順序制御をする際に判別する一意な名前を設定
Job 実行対象Order Jobを設定
Next State 実行したOrder Jobが正常終了だった場合の遷移先State名を設定
Delay Next Stateで設定されたOrder Jobを実行する前に待機する時間(秒)を設定
Error State 実行したOrder Jobがエラー終了だった場合の遷移先State名を設定
On Error エラーが発生した場合の挙動を設定
Suspend:後続Stateに定義されたOrder Jobを実行せずに処理を停止させる
Setback:ジョブ定義のSetBackで設定された定義に従い、ジョブを再実行した後、Error Stateに定義されたStateに遷移する
Full Node Order Jobを定義する場合に設定
End Node End Nodeを定義する場合に設定
File Sink ファイル監視によるState遷移を定義する場合に設定
※ファイル監視は特定ディレクトリ内の正規表現で指定したファイルを監視し、変更などがあった場合に指定したStateに遷移する機能です。ここでは、設定方法などの詳細は省略します。

4.Orderの定義

 Job Chainを実行させるためのOrderを定義します。OrderにはID、対象のJob Chain名、開始と終了のStateなどを定義します。また、Orderの中で実行するJob Chainに与えたい外部パラメータや実行スケジュール(Run Time)を定義することもできます。

図4 JOEでのOrder設定例

■表2 Orderでの設定パラメータ

設定パラメータ 説明
Order ID 特定のJob Chainを実行するOrderを一意に判別するためのIDを設定
Job Chain 実行対象のJob Chainを設定
Title Orderのタイトルを設定
Priority Orderの優先度を設定。複数Orderを同時稼働させた場合に、高い数値のOrderが優先して実行される
State Orderを発行した際に最初に実行されるJob ChainのStateを設定
End State 実行したらOrderが終了となるJob ChainのStateを設定
最下部にあるStateおよびParameterボタン Job Chainの各State単位、もしくはJob Chain全体に与えたい外部パラメータを設定

5.稼働確認

 JOCのOrdersタブより、設定したOrderを右クリックで選択し、「Start order now」を選択します。すると設定したOrderが発行され、対象のJob Chainが実行されます。Jobsタブより実行された各Order Jobを確認すると、Process Classにて設定したホストで稼働したことが確認できます。

図5 JOCでのOrder発行例

 このような方法によって、JobSchedulerを用い、複数サーバにまたがって順序性を持たせたジョブを実行させることができます。今回の例ではJobChainを手動で実行しましたが、Orderにスケジュールを定義すれば、指定した時間に自動的にJob Chainを実行させることも可能です。

まとめ〜ジョブの自動化で効率的な運用を

 第1回でも触れましたが、バッチジョブはコンピュータというものが生まれた当初から重要な処理形態であり、それは今日も変わっていません。ジョブの運用自動化は今なお、ITシステムの運用効率化において重要な役割を担っています。ここまで説明したように、JobSchedulerを用いればそのジョブ運用を自動化し、さまざまなメリットを享受できます。

 第1回目と第2回目ではJobSchedulerの基礎的な部分と基本的な使い方について解説しました。次回はJobSchedulerの特徴的な機能をより詳細に解説し、複雑なジョブの制御方法や付属ツール群などを紹介します。

著者プロフィール

秋穂賢

TIS株式会社 戦略技術センター所属。入社後4年間、メインフレームを用いた大規模基幹システムのシステム管理業務に従事。その後OSSの世界に飛び込み、推奨OSSミドルウェアスタック「ISHIGAKI Template」の開発に従事。OSSの活動の一環でJobSchedulerと出会い、日本JobSchedulerユーザ会の立ち上げに携わる。戦略技術センターでは、技術情報をブログ『Tech-Sketch』にて発信中。


前のページへ 1|2       

Copyright © ITmedia, Inc. All Rights Reserved.

編集部からのお知らせ

RSSについて

アイティメディアIDについて

メールマガジン登録

@ITのメールマガジンは、 もちろん、すべて無料です。ぜひメールマガジンをご購読ください。