HOME


流通工房について

各フェーズ定義


トピックについて

Link


サイトマップ

書籍・プロフィール

サイト内検索

-------------------------









流通業・流通システムにおけるシステム設計の実務ノウハウが満載−流通工房

実装OnePoint!
【ジョブスケジューラの活用方法
<吉田君>
 昨日友達と話をしていたら今までバッチ処理はシェルで制御していたから
 ジョブスケジューラは使ったことがないといっていました。
 「わざわざ高いジョブスケジューラなんて買う必要ないよ」ということだったのですが
 ジョブスケジューラをはどのような時に使うものなのですか

<早瀬>

 確かに、複雑な処理でなければ

 ・OSがUNIX系の場合はシェルとcron
 ・Windows系の場合はWSHとタスクスケジューラ

 などでバッチ処理を実行することが可能だね。

 私も小規模のシステムの場合はそのような形での実装をしてきたよ。
 バッチ処理数が数個〜10個くらいで処理制御も複雑なものがなければジョブスケジューラ
 を使う必要はないんだ。

 ただ、基幹業務系でバッチ処理数が数十から数百あり、さらに先行、後続関係が複雑な
 ケース、処理が異常終了した時のリカバリーなどを半自動で行ったり、担当者が早急に
 対応を行う必要がある時には非常に有用なツールだ


【ポイント】
各メーカのカタログ情報を見ると、機能説明やこんな形で導入したという事例はたくさん
あるのですが、「だから結局どんな活用方法があるの?」と思うことも多々あるかと思います。
そこで、ここでは今までの導入経験を元に実運用に即した形の検討ポイント、導入のメリット
について書きます。

■どんなものがあるのか?選定基準は?

 主なものとしてはIBMのTivoli、富士通のSystemWalker 、日立のJP1などです。

 それぞれの製品を出されている側からするといろいろ他にはないメリット、特徴がある
 といいたいかもしれませんが(笑)、どの商品も基本機能は同じなので、どれを採用
 したらよいかといったことについては選定サーバー機器(例えばIBM機の場合はTivoli
 になるでしょう)や、自社、あるいは自分のプロジェクトの担当者の実装経験、運用経験
 のあるものを採用するといったことでよいかと思います。

■JOBスケジューラのメリットって何?

1.さまざまな起動条件での稼動

 JOBスケジューラは下記によるJOB起動制御が可能です。

 ・時間起動
  指定した時間に起動することができます
 ・先行JOBの指定
  Aという処理が終わっていなければBの処理は実行しないといった制御が出来ます
 ・ファイルが生成されたら起動
  指定したフォルダ(ディレクトリ)にファイルが生成されたら起動する

 それぞれの単一機能についてはシェルやcron(あるいはWSHとタスクスケジューラ)
 などの組み合わせで容易に実行ができますが、これらの起動条件が複数かつ多岐に
 わたる場合にJOBスケジューラは便利です。

 例えば、23:00になり、XXフォルダに○○データファイルが作成され、先行に
 実行しているA処理とB処理、C処理が全て終了していたらD処理を実行するなど。

 もちろん、こういった処理をシェルなどを駆使して制御することもできますが
 JOBスケジューラではGUIでパラメータ設定とJOBの関連付けで容易に登録、修正
 することが可能です。

 ・外部からコマンドによる起動
  シェルやバッチファイル、JavaなどからコマンドでJOBスケジューラに登録して
  あるJOBを実行することができます。

 これは、日中、画面から仮締め処理などのバッチ処理を実行したい際に、バッチ処理
 自体をスケジューラに登録をしておくことで、稼動状況を確認したり複雑なJOB制御
 をしたいときには非常に便利な使い方となります


2.稼動状況の視覚化、異常時の通知

 夜間バッチで処理するJOBが30とか50とかあった時に、今どこまで処理が進んでいる
 かといったことを管理画面から視覚的にみて把握することができます。

 これにより、

 ・いつもはH処理は3:00には終了しているのに、まだ終了していない

 といった時に

 ・今どこまで処理が進んでいるのか
 ・実行のログを確認することで、いつもよりも時間がかかっていた処理は何か

 といった確認をすることができます。

 また、その対策として、後続処理で今の処理を待たなくても実行できるものがあり
 サーバー負荷的に問題なければ、その部分のJOBを切り出して先行実行するといった
 ことも容易に行えます。(管理画面上でJOBネットをコピーして、不要なJOBを削除すれば
 臨時の実行JOBネットの作成がすぐにできます)

 また、処理結果について正常終了、異常終了、警告終了といったアプリの処理結果
 も視覚的に把握をすることができます。
 ※これは設定によります。アプリケーションからのリターンコードが0の場合は
  正常終了、1〜10の場合は異常終了、20以上の場合は警告終了などといった
  設定をしておき、アプリケーションが返すリターンコードで、管理画面上の
  処理結果(色表示)が変化します

 これは異常終了は当然のことですが、例えば処理としては後続の処理も実行して
 良いが、何かしらの異常データがありデータの調査が必要といったワーニング
 レベルについても容易に把握が出来るようになります。

 また、視覚以外に、各スケジューラともメール送付などをする機能もあるため
 異常終了や警告終了の場合はメール通知するようにしておけば、管理画面を
 毎日見なくても、異常が発生したことを検知することが可能です

3.処理レベルでの制御が可能

 異常終了した時に、その時点で処理を終了させる他、後続処理を実行する前に、
 あらかじめ登録をしておいたエラー時処理を実行することで、想定されるエラー
 パターンの場合のみはその処理でリカバリーをして、処理を継続するといった
 障害時の半自動対応も可能です。

 その他、JOBの終了が指定した時間に終了していない場合のみ、異常通知処理
 を実行するといったことも可能です。

 例えば、処理の遅延により朝の4:00までにXX処理が終了していない場合は、
 翌朝の店舗営業や本部の業務に支障がある場合に、メール通知をしたり
 IDCのオペレータに障害通知をすることで、自社の担当者に連絡が行くように
 するなどの対応が可能となります




質問 このトピックの情報は役立ちましたか?
役に立った
目的の情報と異なったが、参考になった
役に立たなかった

コメント




結果