Linux上でDBFluteを使って多くのテーブルを処理する

今まで、Linux 上で DBFlute で起きていた問題ですけど、原因がわかりました。ファイルを開き過ぎで、対象のリソースが開けなくなったみたいです。つまり、ファイルディスクリプタのリミットにはまった感じ。ユーザーごとの限界値を見てみると、デフォルトで、

$ ulimit -n
1024

という感じで、1024。というわけで、

$ su
# ulimit -n 65536
# su taro
$ ./generate.sh

とかやれば、成功する(ユーザーではulimitできんかった)。うーん、こんな所にはまるとは・・・。というか、これをログだけ見て気づくの無理なんじゃないか。だって、Velocity 1.3 の FileResourceLoader#findTemplate で FileNotFoundException を捨てるんだもん・・・(結局、Velocityを追いました)。というわけで、私みたいにテーブルをガツガツ作らないで Linux でやれば通るだろうし、他の OS ならリミットが違うから問題が起こらないわけなのね。0.5.7 では問題なかったということは、0.5.8 から開きっぱなしになるファイル数が増えているということかな・・・(DBFlute の差分は把握してないですが)。とりあえず、原因もわかってすっきりしました(id:jflute さん、お騒がせいたしました)。

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です