JavaDBを使用して発生する以下のトラブルについて対処方法を説明します。
Java DBが意図せず異常終了した場合
Java DBが意図せず異常終了した場合、Java DBシステムディレクトリにdb.lckファイルが残存して、データベースのアクセスに失敗する場合があります。
データベースを起動するために、手動でdb.lckファイルを削除してください。データベースを使用中の場合に本ファイルを削除すると、他のJava VMからデータベースを参照されてデータ破壊が発生する可能性があります。ファイルを削除する時にはデータベースを使用していないことを確認してから実施してください。
データベースに接続する時のURLのポート番号に0を指定した場合
データベースに接続する時のURLのポート番号に0を指定した場合、実際に接続するポート番号は1527が使用されます。
Java DBの接続時にファイルが開きすぎである旨のエラーが出力された場合
Java DBの接続時にファイルが開きすぎである旨のエラーが出力された場合、ファイルディスクリプタ不足が発生している可能性があります。不要な接続を解放するか、ファイルディスクリプタの設定を見直してください。
Java DBの起動時にderby.logへアクセスできない旨の警告が出力された場合
Java DBを起動するユーザーが、derby.logの出力先ディレクトリおよびderby.logへの書き込み権限を有していない場合、起動時に以下の警告が出力され起動処理が継続されます。
Unable to access derby.log in derby.logの絶対パス.
CLI416: Continuing to start database
このメッセージが出力された場合、そのまま継続してJava DBを利用することができますが、起動・停止時のログ情報はderby.logへ書き込まれません。起動・停止時のログ情報をderby.logへ書き込む必要がある場合は、derby.logの出力先ディレクトリおよびderby.logに対し、Java DBを起動するユーザーの読み込み権限・書き込み権限を手動で付与し、Java DBを再起動してください。
dblookツールの実行時にdblook.logに対してPermission deniedが出力された場合
dblookツールの実行者が、カレントディレクトリおよびカレントディレクトリに存在するdblook.logへ書き込み権限を有していない場合、ツールの実行時に以下のエラーが出力され処理が中断されます。
Error initializing log file(s): java.io.FileNotFoundException: dblook.log (Permission denied)
カレントディレクトリおよびカレントディレクトリに存在するdblook.logに対し、dblookツールの実行者の読み込み権限・書き込み権限を手動で付与し、再度処理を実行してください。
その他の既知の問題
Derby Reference Manualに記載されたLONG VARCHARデータタイプの格納範囲の最大値は32700文字となっていますが、正しい仕様は32672文字です。
Derby Reference Manualに記載された「ALTER TABLE statement」のSyntaxに誤りがあります。正しい仕様は以下のとおりです。
-----------------------------------------------------------------------------------------
ALTER TABLE table-Name
{
ADD COLUMN column-definition |
ADD CONSTRAINT clause |
DROP [ COLUMN ] column-name [ CASCADE | RESTRICT ] | DROP { PRIMARY KEY | FOREIGN KEY constraint-name | UNIQUE constraint-name | CHECK constraint-name | CONSTRAINT constraint-name } |
ALTER [ COLUMN ] column-alteration | LOCKSIZE { ROW | TABLE }
}
-----------------------------------------------------------------------------------------