この項目では、Cloudscape データベースにアクセスする際のトラブルシューティングのヒントを提供しています。
ヒント: Cloudscape errorCodes (2000、3000、4000) は、特定のエラー条件ではなく、 重大度レベルを示します。Cloudscape 問題を診断するときは、指定された sqlState 値に注意してください。
この問題は、 Cloudscape データベースが多数のファイルを使用するために生じる可能性があります。 Solaris オペレーティング環境などのオペレーティング・システムでは、 アプリケーションが一度に開くことができるファイル数に制限があります。 デフォルトが 64 などの低い数値である場合、この例外を受け取る場合があります。
使用しているオペレーティング・システムでファイル記述子の数値を構成できる場合は、 その数値を 1024 などの高い値に設定することによってこの問題を解決できます。
ある行で select for update 操作を行うことによって表全体がロックしてデッドロック状態が発生すると、 その表の索引が未定義のままになることがあります。 where 文節で使用する列に索引がないと 、Cloudscape で行レベルのロックではなく表ロックが生じる場合があります。
この問題を解決するには、影響を受けた表上で索引を作成します。
この問題は、Cloudscape の組み込みフレームワークで、 データベース・インスタンスに一度にアクセスできる Java 仮想マシン (JVM) が 1 つだけであるために生じます。
The version of the IBM Universal JDBC driver in use is not licensed for connectivity to Cloudscape 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 Cloudscape databases is enabled by any of the following license files: { db2jcc_license_c.jar, b2jcc_license_cu.jar, db2jcc_license_cisuz.jar }この問題が発生するのは、 誤った JDBC Driver JAR ファイル名が JDBC プロバイダーのクラスパスに指定されているためです。 例えば、次の例のように JAR ファイル名に余分な下線 (_) が含まれている場合があります。
${UNIVERSAL_JDBC_DRIVER_PATH}/db2jcc_license__cu.jar
クライアント・ランタイムに、次のようなメッセージを受け取る場合があります。 Caused by: com.ibm.db2.jcc.a.SqlException: DB2 SQL error: SQLCODE: -1, SQLSTATE: 42X05, SQLERRMC: ANNUITYHOLDER20^T42X05
この問題が発生するのは、WebSphere Application Server に必要なプロパティー retrieveMessagesfromServerOnGetMessage が設定されていないためです。