HtJavaDBツール(自作のJavaDBアクセスツール)では、derby.jarの場所を動的に変えられるようにしている。
でも全く同じjarファイルでも、クラスローダーのインスタンス及びDriverのインスタンスを新しくすると、変更前に接続していたDB(もちろんコネクションは事前に切断(close())している)に再度接続した時にエラーになってしまう(汗)
この現象は、EclipseのプラグインであるDBViewerを試した際と全く同じ!
(アプリケーションを再起動したら直るが、Eclipseの再起動は時間がかかるのでつらい…その点、HtJavaDBツールの方が再起動はまだ軽い(笑))
あれはDBViwerのバグかと思っていたが、問題はJavaDBの方だったのか…たぶん。
改めて試してみたら、jarファイル関連の設定を変えない限りは、何回か接続・切断を繰り返しても問題無かった。まぁ、そりゃそーだよなー。
同じEclipseのプラグインであっても、データソース・エクスプローラーの方はjarファイルを設定する箇所が無い。つまりクラスパスにderby.jarが入っている前提で、素直にDriverManagerを使っているのだろう。(少なくとも後から変更しない)
そうであれば今回の問題は発生しないはずで、理に適っている。
あと直接は関係ないけど、JDK1.6.0_13でJavaDBを試してみた。
JavaDBのインストール箇所(derby.jarの場所)が変更されているのは知っていたが、他にも色々便利になってる。
ij.batを動かす際に、以前は環境変数DERBY_HOMEを設定する必要があったが、バッチファイルの場所から相対的に探すようになったらしく、設定する必要が無くなった。(stopバッチもちゃんと動くようになってるしな!w)
とは言ってもij.bat自体が使いやすくなった訳ではないけど^^;
※コメント投稿者のブログIDはブログ作成者のみに通知されます