Quitada ブログ HAX

Hatena Blog でも Quitada ブログ

SQLFire ベータ版を日本語環境で動かす時の注意


SQLFire は、VMware 社の商用 KVS 実装+αである GemFire をベースとした、インメモリ型の RDBMS ライクなソフトウェアである。特徴としては、ベースの GemFire がシェアード・ナッシング型でスケールアウトしやすい KVS なので、SQL でお話しできてトランザクション対応しているのにサーバ数を増やせばリニアにパフォーマンスが向上するところであろう。RDBMS のパフォーマンス向上のため、多くの場合従来はスケールアップしかなかったのが、データをインメモリで保持して高速な上、スケールアウトできるところがポイントである。JDBCADO.NET に対応しているんで、既存のデータベースアクセス系アプリケーションとの連携もやりやすい。

さて現在、VMware 社のこちらからベータ版がダウンロードできて、弄ることが可能なんですが、事件はチュートリアル "Persist tables to disk" を終えて、サーバを再起動したときに起こりました。以下のようにエラーがでて起動に失敗しましたー。

% sqlf server start -dir=server1 -client-port=1527 -mcast-port=12333
msgID 4813: Starting network server for SQLFire Server at address localhost/127.0.0.1[1527]
SQLFire Server pid: 13000 status: stopped
Error starting server process:
IllegalStateException: The following required files could not be found: *.crf files with these ids: [1], *.drf files with these ids: [1]. - msgID 3971: 詳細は、ログ・ファイルを参照してください。
msgID 5067: Logs generated in /path/to/dir/server1/sqlfserver.log

#なお、今回は Mac OS X で動かしてます。ほぼ pure java なんで、Windows とか Linux といった動作保証されているプラットフォーム以外でもとりあえず動きはするんで。

どうやら、メモリ上にあるデータをディスクに永続化した際にできたファイルが見つからない的なエラーのようで。で、それっぽいデータのあるとこでファイル名を確認してみるとこんな感じでした。

BACKUPSQLF-DD-DISKSTORE.if
msgID 3636: バックアップSQLF-DD-DISKSTORE_1.crf
msgID 3636: バックアップSQLF-DD-DISKSTORE_1.drf

おっと、ファイル名が日本語になっているじゃありませんか。なんだか、余計な L10N 対応でファイル名が日本語化されているところがあやしい。。。

ということでまず、日本語化されてしまったファイルも含めて、サーバ用ディレクトリ配下のすべてのファイルを以下のように手動で削除。

% cd /path/to/dir/server1
% rm -rf *
zsh: sure you want to delete all the files in /path/to/dir/server1 [yn]? y
% ls -la
total 8
drwxr-xr-x 3 quitada 1010 102 8 9 10:00 .
drwxr-xr-x 6 quitada 1010 204 8 8 16:06 ..
-rw-r--r-- 1 quitada 1010 3456 8 9 10:00 .sqlfserver.ser
% rm .sqlfserver.ser

そんでもって、以下のように -J-Duser.language=en を付与して起動。

% sqlf server start -J-Duser.language=en -dir=server1 -client-port=1527 -mcast-port=12333

で、再度チュートリアルの "Persist tables to disk" を行って、前回は日本語化されていたファイルも以下のようにアルファベットを使ったファイル名になっていることを確認。

BACKUPSQLF-DD-DISKSTORE_1.crf
BACKUPSQLF-DD-DISKSTORE_1.drf

最後に、再起動も正常にできることを確認。

L10NI18N がかみ合ってませんでしたー、みたいな問題。製品版はたぶん直っていると思う。どどーん。