Apache Derby データベースへのデータ・アクセスの問題

トラブルシューティングのヒントを使用して、Apache Derby データベースへのアクセスに役立ててください。

Apache Derby データベースにアクセス中に、予期しない IOException が SQLException にラップされた

この問題は、Apache Derby データベースが多数のファイルを使用することが原因で生じる可能性があります。Solaris オペレーティング環境などのオペレーティング・システムでは、 アプリケーションが一度に開くことができるファイル数に制限があります。 デフォルトが 64 などの低い数値である場合、この例外を受け取る場合があります。

使用しているオペレーティング・システムでファイル記述子の数を構成できる場合は、 その数を 1024 などのような高い値に設定することによってこの問題を解決できます。

Apache Derby にアクセス中に、「select for update」操作によって表ロックおよびデッドロックが生じる

ある行で select for update 操作を行うことによって表全体がロックしてデッドロック状態が発生すると、 その表の索引が未定義のままになることがあります。 where 文節で使用する列に索引がないと 、Apache Derby で行レベルのロックではなく表ロックが生じる場合があります。

この問題を解決するには、影響を受けた表上で索引を作成します。

「使用中の IBM Universal JDBC ドライバーのバージョンは、Apache Derby データベースへの接続が許可されていません」というエラー

クライアント・ランタイムに、 次のようなエラーが発生します。
The version of the IBM Universal JDBC driver in use is not
licensed for connectivity to Apache Derby databases.  To connect 
to this DB2 server, please obtain a licensed copy of the IBM DB2 
Universal Driver for JDBC and SQLJ.  An appropriate license file 
db2jcc_license_*.jar for this target platform must be installed to 
the application classpath.  Connectivity to Apache Derby databases is 
enabled by any of the following license files: 
{ db2jcc_license_c.jar, b2jcc_license_cu.jar, db2jcc_license_cisuz.jar }
この問題が発生するのは、誤った JDBC ドライバー Java™ アーカイブ (JAR) ファイル名が JDBC プロバイダーのクラスパスに指定されているためです。 例えば、次の例のように JAR ファイル名に余分な下線 (_) が含まれている場合があります。
${UNIVERSAL_JDBC_DRIVER_PATH}/db2jcc_license__cu.jar
この問題を解決するには、以下のようにします。
  1. JACL スクリプト内の UNIVERSAL_JDBC_DRIVER_PATH JAR ファイル名を訂正します。
  2. クラスターを再始動します。
  3. クライアントを再実行します。

アプリケーションを実行すると、判読できないメッセージを生成するランタイム例外が発生します。

クライアント・ランタイムに、次のようなメッセージを受け取る場合があります。 Caused by: com.ibm.db2.jcc.a.SqlException: DB2 SQL error: SQLCODE: -1, SQLSTATE: 42X05, SQLERRMC: ANNUITYHOLDER20^T42X05

この問題が発生するのは、WebSphere® Application Server に必要なプロパティー retrieveMessagesfromServerOnGetMessage が設定されていないためです。

この問題を解決するには、管理コンソール上で以下を行います。
  1. 「リソース」 > 「JDBC プロバイダー」をクリックします。
  2. 「Apache Derby プロバイダー (Apache Derby provider)」をクリックします。
  3. スクロールダウンし、「データ・ソース」をクリックします。
  4. ご使用のデータ・ソースを選択するか、新規データ・ソースを追加します.。
  5. カスタム・プロパティー」を選択します。
  6. プロパティー retrieveMessagesFromServerOnGetMessage が存在している場合は、 その値を true に設定します。 このプロパティーが存在していない場合は、「新規」を選択し、 値を true に設定したプロパティー retrieveMessagesFromServerOnGetMessage を追加します。
  7. クライアントを再実行します。
これで、SystemOut.log は読み取り可能なメッセージを生成するようになり、 ユーザーは根底にある問題を解決することができます。
注: このトピックでは、 1 つ以上のアプリケーション・サーバー・ログ・ファイルを参照します。推奨される代替案として、分散システムや IBM® i システムの SystemOut.logSystemErr.logtrace.logactivity.log ファイルではなく、High Performance Extensible Logging (HPEL) ログおよびトレース・インフラストラクチャーを使用するようにサーバーを構成できます。また HPEL は、ネイティブ z/OS® ロギング機能と連携させて使用することができます。HPEL を使用する場合、LogViewer コマンド・ライン・ツールを サーバー・プロファイルの bin ディレクトリーから使用して、すべてのログ・ファイルにアクセスし、 情報をトレースできます。HPEL の使用について詳しくは、HPEL を使用してのアプリケーションの トラブルシューティングに関する情報を参照してください。

トピックのタイプを示すアイコン 参照トピック



タイム・スタンプ・アイコン 最終更新: last_date
http://www14.software.ibm.com/webapp/wsbroker/redirect?version=cord&product=was-nd-mp&topic=rtrb_dsaccess5
ファイル名:rtrb_dsaccess5.html