[CentOS6] SOS JobScheduler


Create: 2013/02/20
LastUpdate: 2015/07/05

「SOS JobScheduler」は、オープンソースのジョブ管理ツールです。ドイツの企業である「Software-und Organisations-Service GmbH (※略称:SOS GmbH)」が開発を行なっています。
Linux/Windows版はGPLのもと、無償で公開されているようですが、HP-UX/Solaris/AIX 版は、有償のようです。
ドイツ語版と英語版があります。英語のドキュメントが用意されているので、英語が得意でない私でも何とか使えました。

非常に優れたジョブ管理ツールだと思います。
私が使い始めた2013年02月 時点では、日本語対応していませんでしたが、2014年10月時点では、JOCとJOEが、日本語表示できるようになりました。
ただし、ジョブの標準出力に日本語を使用すると、JOCのログ表示画面で文字化けしたりするので、完全に日本語対応しているわけではありません。画面の項目が日本語で表示されるだけだと思ったほうが良いです。
注) 2013/05/17 リリースの"1.3.12.3137" に「日本JobScheduler ユーザグループ(NJUG)」の翻訳作業の成果が取り込まれたそうです。JOCは日本語で表示できます。
JOC、JOEを日本語化する手順は、NJUG または、63rabbit を参照してください。

JobScheduler の特長は、「JobScheduler - Features」で見ることができます。
英語ですがGoogle翻訳で大体理解できると思います。
API、WebService などもあり、かなり高機能です。
ジョブ定義用のGUI(JOE)もありますが、慣れてくれば、サーバ上でプログラミング感覚でジョブ定義用のXMLファイルを編集することも可能です。私の感覚ですが、GUIを使うより、XMLファイルを直接編集するほうが楽だし、早いです。
詳しい情報を日本語で読みたいひとは、以下のブログも参照してみてください。

実際に環境を作って JobScheduler を使ってみたい場合は、「JobSchedulerアーキテクチャ解説(PDF)」が参考になります。
いろいろなシステム構成ができるようですが、私は、XenServer6.1に下図のようなテスト環境を構築して試しました。
JOEなどは、Windows版もありますが、個人的に好きなLinux(32bit)中心の構成にしました。
なお、私が使い始めた2013年02月 時点では、32bit版のJobSchedulerしかありませんでしたが、2014年10月時点では32bit版と64bit版があります。使用するOSに合わせて選択します。インストール手順は同じです。
インストールの詳細は、「インストールマニュアル(PDF)」を参照してください。


  • JobScheduler Engine ・・・ ジョブの管理を行うメインエンジン。Standalone構成
  • JobScheduler Agent ・・・ JobScheduler Engine からの命令でジョブを実行して、実行結果などの情報を返す。
  • Job Operation Center ( JOC ) ・・・ ジョブの実行結果確認や手動でのジョブ実行制御を行うためのWeb管理画面
  • JobScheduler Object Editor ( JOE ) ・・・ ジョブの定義を行うためのツール(GUI)

ここでの、JobSchedulerの基本的な使い方としては、
  1. JOEでジョブを定義
  2. JOCでジョブを実行(JobScheduler Engine が Agent にジョブの実行を指示)
  3. JOCでジョブの実行結果を参照
というような流れになります。
ジョブの定義は、liveフォルダの xmlファイルに保存され、ジョブの実行結果などがDBに保存されます。

ジョブ定義例やAPI、イベントハンドラなどの標準的な使用例は、ドキュメント以外にもSOS GmbH のサイトや、コミュニティサイトで見ることができます。(英語です)
詳しくは、ページ下の『参考サイト』を見てください。
(※ NJUG のページ には、日本語の資料があります。)

昔、JP1やSenju を使ったときも、上図のようなシステム構成が多かったと思います。Managerは、ジョブ管理の専用機で、Host-A と Host-B でシステムが稼動していて、ここでジョブ(バッチ処理)が実行される。運用オペレータは、JOC を使い、開発者は、JOE を使う、といったイメージです。
ただ、操作面では、JP1やSenjuと比較すると、複雑なジョブ連携の定義や実行結果・予定の確認などは、JP1やSenjuのほうがビジュアルで分かりやすいと思います。

個人的には、JobSchedulerを、WEBシステムでリアルタイムバッチなどを処理するバックエンドや、ファイルを集配信するEAIの中核を担うミドルウェアして使ってみたら面白いと思います。
以下の『メニュー』に、「上図のテスト環境を構築する手順」と、このテスト環境で「私が試した JobScheduler の使用手順」を紹介します。

使い始めの頃に書いた記事は JOE を使用した手順を紹介していますが、XML定義に慣れた頃からは、vi や emacs で直接XMLファイルを編集するような手順の紹介になってます。
特に記載がなければ JobScheduler のバージョンは "1.3.12.3044" を使用しています。
[ ] は、動作確認に使用した JobScheduler のバージョンです。

JobSchedulerは、ver.1.3 以降、多くの機能追加・変更があるので、ver1.3 で動作確認した手順が、ver1.7 では通用しない場合もあると思います。(特に、内部API)
最新版の正しい使用方法は、ドキュメント を参照してください。

■ メニュー