WebSphere Application Server, Version 6.1   
             オペレーティング・システム: AIX , HP-UX, Linux, Solaris, Windows, Windows Vista

             目次と検索結果のパーソナライズ化

データ・アクセスの問題 - Cloudscape データベース

この項目では、Cloudscape データベースにアクセスする際のトラブルシューティングのヒントを提供しています。

Cloudscape データベースへのアクセス時に、どのような問題が発生しましたか?

ヒント: Cloudscape errorCodes (2000、3000、4000) は、特定のエラー条件ではなく、 重大度レベルを示します。Cloudscape 問題を診断するときは、指定された sqlState 値に注意してください。

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

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

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

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

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

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

ERROR XSDB6: Another instance of Cloudscape may have already booted the database "database"

この問題は、Cloudscape の組み込みフレームワークで、 データベース・インスタンスに一度にアクセスできる Java 仮想マシン (JVM) が 1 つだけであるために生じます。

この問題を解決するには、以下を行います。
  1. WebSphere Application Server が実行されているときは、 そのデータベース・インスタンス上で ijcview などの他の JDBC クライアント・プログラムが実行されないようにします。
  2. 複数のデータ・ソースで同じデータベース・インスタンスを使用しないようにします。 あるいは、このような制限のない networkServer フレームワークを使用します。
  3. Cloudscape に接続しない場合は、 db.lck ロック・ファイルを削除します。このファイルは、 スキーマ・ディレクトリーの下の、Cloudscape データベースがマウントされるディレクトリーにあります。 例えば、データベースを /myCloudscapeDB にマウントする場合は、コマンド rm /myCloudscapeDB/schemaName/db.lck を実行します。
「The version of the IBM Universal JDBC driver in use is not licensed for connectivity to Cloudscape databases」というエラー。

「The version of the IBM Universal JDBC driver in use is not licensed for connectivity to Cloudscape databases」というエラー。

クライアント・ランタイムに、 次のようなエラーが発生します。
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
この問題を解決するには、以下のようにします。
  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. 「Cloudscape provider」をクリックします。
  3. スクロールダウンし、「データ・ソース」をクリックします。
  4. ご使用のデータ・ソースを選択します (あるいは新規に追加します)。
  5. スクロールダウンし、「カスタム・プロパティー」を選択します。
  6. プロパティー retrieveMessagesFromServerOnGetMessage が既に存在している場合は、 その値を true に設定します。 このプロパティーが存在していない場合は、「新規」を選択し、 値を true に設定したプロパティー retrieveMessagesFromServerOnGetMessage を追加します。
  7. クライアントを再実行します。
これで、SystemOut.log は読み取り可能なメッセージを生成するようになり、 ユーザーは根底にある問題を解決することができます。



関連概念
welc6toptroubleshooting.html
関連タスク
データ・アクセス・アプリケーションの開発
例: CMP Bean と BMP Bean 間の接続を共用するための IBM 拡張 API の使用
関連資料
データ・アクセスの問題
データ・アクセスの問題 - Oracle データ・ソース
データ・アクセスの問題 - DB2 データベース
データ・アクセスの問題 - SQL サーバー・データ・ソース
データ・アクセスの問題 - Sybase データ・ソース
データ・アクセス API に対する拡張機能
参照トピック    

ご利用条件 | フィードバック

最終更新: Jan 21, 2008 5:05:53 PM EST
http://publib.boulder.ibm.com/infocenter/wasinfo/v6r1/index.jsp?topic=/com.ibm.websphere.base.doc/info/aes/ae/rtrb_dsaccess5.html