前記事(「WindowsにJobSchedulerをインストールする手順を解説」)ではWindowsにJob Schedulerをインストールしました。本記事ではオープンソースで有名なジョブ管理ツールJob Schedulerの機能を評価していきます。
GUIでのジョブエディター
Job Schedulerは設定ファイルをXMLで記述します。このXMLファイルを編集するGUIのツール「Job Editor」が標準で含まれています。手作業でXMLを編集するとエラーが起こりやすいため、Job Editorを利用してXMLを編集します。
XMLの構文を間違えずにジョブ設定を行う事ができます。
ジョブ実行状況を確認できるウェブUI
Job Schedulerは標準でジョブ実行結果やスケジュールを確認できるウェブUIが備わっています。ログファイルを開く操作もウェブUIから行えます。ジョブの設定確認や停止、開始といった基本的な操作も行うことができます。
利用可能データベース
Job Schedulerで利用可能なデータベースを列挙します。よく利用されるメジャーなリレーショナルデータベースをサポートしています。
- Oracle
- SQL Server
- DB2
- Adaptive Server Enterprise
- MySQL
- MariaDB
- PostgreSQL
Job SchedulerはSQLiteのようなエンベデットデータベースを持たないため、外部のデータベースを利用する必要があります。そのためデータベースの可用性は必要に応じて別途確保する必要があります。
サポートするプラットフォーム
2015/7/25日時点でのJob Schedulerがサポートするプラットフォーム情報です。
- Windows2008 R2、2012 R8
- Linux RHEL 5、6、7 CentOS 5、6、7
- Cloud (Amazon EC2、Microsoft Azure)
今JobScheduler Universal Agentが準備されている最中でこちらのバージョンではWindows、Linux、Cloudに加えて以下OSも対応可能なようです。
- Mac OS X 10.9
- AIX 6、7
- Solaris 9、10、11
- HP-UX 11
-
詳細を確認したい方は以下URLを参照ください。
https://kb.sos-berlin.com/pages/viewpage.action?pageId=3638020クラスター/ロードバランサー
Job Schedulerではアクティブクラスター/パッシブクラスターが構築できます。データベース等サーバーの複数台になるシステム運用経験のある方にはお馴染の構成だと思います。障害時に用意した系統の切り替え、または複数系統の同時稼働が可能です。
パッシブクラスター: https://kb.sos-berlin.com/display/PKB/Passive+Cluster
アクティブクラスター: https://kb.sos-berlin.com/display/PKB/Active+ClusterJob Scheduler1.8からはエージェントクラスターが利用出来るようになりました。
エージェントクラスター:https://kb.sos-berlin.com/pages/viewpage.action?pageId=8225958
ジョブチェイン、トリガー
Job Schedulerは1方向のみのジョブチェインだけではなく、複数ワークフローへの分割、同期、パラレル実行も可能です。そのため1つのジョブから始まって、セパレートされながら処理が進み最後1つにまとめると行ったジョブが実現できます。
画像引用元URL:https://kb.sos-berlin.com/display/PKB/Example+showing+the+synchronization+of+multiple+job+chains
複数ジョブチェインの説明URL:https://kb.sos-berlin.com/display/PKB/Example+showing+the+synchronization+of+multiple+job+chains
トリガーには、予約時間、UIからの操作、イベントからの通知、ディレクトリとファイルのモニタリング、APIでの操作と一般的に利用されるトリガーが一通りそろっています。実行可能なスクリプト
Job Schedulerではシェルスクリプト、Java、Perl、VBScriptの他にJavaScriptが実行可能です。JavaScriptはJVMベースで実装されたNashorn(https://blogs.oracle.com/nashorn/)で実行されるようです。
エラーハンドリング/エラー処理
エラー発生時にジョブの停止、サスペンド、再開、やり直し、特定のジョブの後に再登録が可能です。ジョブチェインで条件に合わせたエラー処理を行う事もできます。
モニタリング
システムのモニタリングには外部のHP OpenView, Microsoft SCOM, Nagios, op5, Opsview, Zabbixなどのモニタリングツールを利用します。
Job Scheduler1.8からはモニタリング用のインターフェイスを備えているため、正常系とエラー系と合わせてジョブ単位やイベント単位での細かなモニタリングが可能です。
JobScheduler Monitoring InterfaceURL:https://kb.sos-berlin.com/display/PKB/JobScheduler+Monitoring+Interface
プログラミングインターフェイス(API)
Job SchedulerはジョブをC#、Java、Perl、PowerShell(windows)から操作できるAPIを提供しています。JavaのEJBに対応した説明もあります。用途としては一時的に実行や都度パラメーターやルールが異なるジョブを実行するのに向いています。
コマンドラインかXMLを利用したAPIの利用も可能です。ジョブの開始や停止といった操作を行う事ができます。
コマンドラインでのコマンド一覧:http://www.sos-berlin.com/doc/en/scheduler.doc/command_line.xml#option_cmd
XMLインターフェイスでのコマンド一覧:http://www.sos-berlin.com/doc/en/scheduler.doc/xml_commands.xmlマニュアル、情報
オフィシャルサイト内のマニュアルとQ&Aが充実しています。目的別の操作を説明したPDFも多々準備されています。利用者も多いようでメッセージのやり取りが活発で、よく起こるエラーや現象はほぼ解決できるのではないかと思います。ただし日本語での情報となると、とても少ないです。
マイグレーション
cronコンバーター(http://www.sos-berlin.com/doc/en/scheduler_cron_converter/sos_help.htm)が準備されているなど、cronやControl-M等の他ツールからのマイグレーション方法が意識されています。シンプルなバッチ処理システムからJob Schedulerへの移行であれば、比較的トラブルが少なく完了するのではないでしょうか。
要約・まとめ
ここまでJob Schedulerの機能について確認してきましたが、一通りバッチ処理に必要な機能が不足なく揃っている印象です。主に欧米での運用実績が多々あるため、ソフトウェアの品質で言えばオープンソースですが商用プロダクトと比べて遜色ないと言えそうです。
Job Schedulerは開発元がドイツのため、日本を含めたアジア圏での運用実績が少ないのは自然な流れになります。
ワークフローをグラフィカルなエディター内で操作してジョブのルール定義するツールなど、GUIの側面は少し弱い印象です。
WindowsでのLinux上でも動作し、メジャーな各種RDBに対応しているため動作する環境を選びません。可用性の対応は別途必要ですが、構築にあたり制約が少なく利用しやすいジョブスケジューラーだと思います。
本ブログは、Git / Subversionのクラウド型ホスティングサービス「tracpath(トラックパス)」を提供している株式会社オープングルーヴが運営しています。
エンタープライズ向け Git / Subversion 導入や DevOps による開発の効率化を検討している法人様必見!
「tracpath(トラックパス)」は、企業内の情報システム部門や、ソフトウェア開発・アプリケーション開発チームに対して、開発の効率化を支援し、品質向上を実現します。
さらに、システム運用の効率化・自動化支援サービスも提供しています。
”つくる情熱を支えるサービス”を提供し、まるで専属のインフラエンジニアのように、あなたのチームを支えていきます。
1 Comment
ご紹介ありがとうございます。日本語情報は以下もご覧ください。
日本語紹介資料 http://www.ossl.co.jp/jpn/Products/infrastructure/JobScheduler
日本JobSchedulerユーザーグループ https://sites.google.com/site/jobschedulerja/
https://groups.google.com/forum/?hl=ja#!forum/jobscheduler-ja
https://www.facebook.com/Jobscheduler-Japan-%E3%83%A6%E3%83%BC%E3%82%B6%E3%83%BC%E3%82%B0%E3%83%AB%E3%83%BC%E3%83%97-594469610565511/timeline/