オープンソースのジョブ管理システム「SOS JobScheduler」ですが、動作させるには今のところ32bit環境が必要です。OSはWindowsでもLinuxでもなんですけどね。(Linuxの64bit版はベータテストに入っているので、そのうちリリースされるものと思います。)
JobSchedulerのサーバ側はどうしても32bit版のJavaを準備しないと動作しないようです。SOS社が公式で出しているAmazon EC2(64bit環境)へのインストールマニュアルを見ても、Javaは32bit版をインストールするように書いてありますので、やはりそういうことなのでしょう。
ただ、ジョブをGUIで作成するJOE(JobScheduler Object Editor)は、64bit版のWindows7及びCentOS6.3で動作させることに成功しました。ここでは、その方法についてまとめておこうと思います。
64bit版のOSで動作させるなら、JavaとSWTを64bit版で揃えよう
JOEはJavaのSWTを使って実装されています。SWTというのはEclipseでも使われているのですが、JavaでOSネイティブのユーザインタフェースを作る際に使われるライブラリです。そのため、JOEはJavaアプリでありながらOSネイティブのユーザインタフェースネイティブに近い見た目を有しています。操作性の向上にも役立っていることでしょう。
ただ、SWTはOSごと、さらには32bitと64bitではそれぞれ別のバイナリが提供されているので、それがずれてしまうとアプリが起動しなくなるのです。
JOEのインストール時(JobSchedulerのフルインストール時に導入されるJOEを含む)に、swt.jar(SWTライブラリの実体)は同梱されているのですが、Windows版でもLinux版でも32bit版のものになっています。
ここで、
32bit版のJava + 32bit版のSWT + 32ビット版のWindows/Linux
であれば、問題なく動作するわけです。
しかし、
64bit版のJava + 32bit版のSWT + 64bit版のWindows/Linux
では、JavaからSWTのロード時にエラーになってしまい、JOEの起動に失敗します。
動作させるには、
64bit版のJava + 64bit版のSWT + 64bit版のWindows/Linux
という環境にして、さらにJOEの起動スクリプトを修正する必要があります。JOEなら、これで動作しました。
つまり、やるべきことは2つ。
64bit版のSWTを準備することと、JOEの起動スクリプトを修正することです。
Windowsの場合
Javaは64bit版のJDKをインストールします。最新(執筆時点)のJDK1.7.0_10で正常に動作しました。
64bit版のSWTは、http://www.eclipse.org/swt/ からダウンロード出来ます。moreのリンクからx86_64版をダウンロードしましょう。
C:Program Filessos-berlin.comjoelibにあるswt.jarを、ダウンロードしたswt.jarで置き換えます。
Windowsは基本的にはこれでJOEが動作するようになります。
CentOS 6.3の場合
Javaは64bit版のJDKをインストールします。yumでインストールできるOpenJDK1.7で正常に動作しました。
64bit版のSWTは、http://www.eclipse.org/swt/ からダウンロード出来ます。moreのリンクからx86_64/GTK2版をダウンロードしましょう。
yumからEclipseをインストールしたりしていれば、/usr/lib64/eclipse配下にswt.jarがあります。
ホームディレクトリの.swt配下にx86_64ディレクトリを作成し、libswt-*に向けたシンボリックリンクを作ります。
jobeditor.shとjobscheduler_environment_variables.shの64bit版を作ります。
jobeditor64.sh
jobscheduler_environment_variables64.sh
あとはJOEを起動します。
CentOS6.3でもJOEが起動しました。
(2013/4/29追記)
この記事では紹介していないJobScheduler Information Dashboard(JID)を64bit環境で動作させる記事を書きました。こちらもご参照下さい。