Sun Java System Application Server Enterprise Edition 8.1 2005Q2 リリースノート

付属の Sun JDBC ドライバ

ここでは、Sun の JDBC ドライバに関する既知の問題とその解決方法を示します。

バグ ID 

概要 

6165970 

TRANSACTION_SERIALIZABLE 遮断レベルを Microsoft SQL Server 向けの付属の Sun ドライバとともに使用するアプリケーションは、2 つの並行トランザクションが実行されていて、その 1 つがロールバックされた場合、準備されているステートメントを使用して更新するときにハングアップすることがある。

希望の遮断レベルを接続に対して設定するには、対応する接続プールをその遮断レベルで作成する必要があります。接続プールの設定の詳細は、『管理ガイド』を参照してください。 

解決法

現時点ではありません。 

6170432 

PreparedStatement エラーが発生する。

説明 #1

1 つのトランザクションで 3000 を超える PreparedStatement オブジェクトを生成する場合、DB2 では次のエラーが発生する可能性があります。

[sunm][DB2 JDBC Driver] No more available statements. Please recreate your package with a larger dynamicSections value.

解決法 #1

次のプロパティーを接続プール定義に追加して、ドライバが DB2 パッケージをより大きな動的セクション値に再バインドするようにします。 

createDefaultPackage=true replacePackage=true dynamicSections=1000

接続プールの設定の詳細は、『管理ガイド』を参照してください。

説明 #2

前述の PrepardStatement エラーに関連して、次のエラーメッセージがスローされることがあります。

[sunm][DB2 JDBC Driver][DB2]Virtual storage or database resource is not available.

解決法 #2

DB2 サーバー設定パラメータ APPLHEAPSZ の値を増やします。適度な値は 4096 です。

説明 #3

遮断レベル TRANSACTION_SERIALIZABLE。アプリケーションが遮断レベル TRANSACTION_SERIALIZABLE を採用し、前述したパラメータの 1 つを使用している場合、そのアプリケーションは接続を取得するときにハングアップすることがあります。

解決法 #3

希望の遮断レベルを接続に対して設定するには、対応する接続プールをその遮断レベルで作成する必要があります。その手順については、『管理ガイド』を参照してください。

6189199 

Sybase Adaptive Server 用の付属の Sun ドライバでの遮断レベルの設定にかかわる問題。 

  • TRANSACTION_SERIALIZABLE 遮断レベルを Sybase Adaptive Server 向けの付属の Sun ドライバとともに使用するアプリケーションは、2 つの並行トランザクションが実行されていて、その 1 つがロールバックされた場合、準備されているステートメントを使用して更新するときにハングアップすることがあります。接続ロールバックは次のメッセージとともに失敗し、ロールバックされた接続はそれ以降は使用できません。

    java.sql.SQLException:[sunm][Sybase JDBC Driver]Request cannot be submitted due to wire contention

  • Sybase Adaptive Server は TRANSACTION_REPEATABLE_READ 遮断レベルをサポートしません。ただし、DatabaseMetaData をクエリーすると、付属の Sun ドライバは、この遮断レベルがこのデータベースによってサポートされていると返答します。この遮断レベルを使用するアプリケーションは処理に失敗します。

  • 付属の Sun ドライバを使用するアプリケーションは、TRANSACTION_READ_UNCOMMITTED 遮断レベルを設定できません。DataBaseMetaData に対する最初のアクセスの時点で、アプリケーションは次の例外をスローします。

    java.sql.SQLException:[sunm][Sybase JDBC Driver][Sybase]The optimizer could not find a unique index which it could use to perform an isolation level 0 scan on table 'sybsystemprocs.dbo.spt_server_info'.

解決法

現時点ではありません。 

6247468 

Solaris 10 および Enterprise Linux 3.0 で、Sun に付属している Oracle JDBC ドライバでは接続を作成できない。 

解決法

Sun JDBC Oracle データソース (com.sun.sql.jdbcx.oracle.OracleDataSource) を使用する場合は、JDBC 接続プールに次のプロパティーを設定します。

<property name="serverType" value="dedicated"/>

このプロパティーの値は、Oracle サーバーのリスナーの設定方法によって異なります。「共有」モードで設定した場合は、上の値を「dedicated」に変更する必要があります。 

6554602 

JDBC 10.2 ドライバを使用して開始するとき、CLASSPATH に複数の JDBC jar ファイルが含まれる場合に java.lang.SecurityException: Sealing violation exception が発生する可能性があります。

Oracle が提供している詳細な説明については、次の Oracle マニュアル ID を参照してください。 

注: 405446
Subject: JDBC Driver 10.2 はシールされた JAR ファイルを使用しており、セキュリティー例外シーリング違反が発生する可能性があります。

解決法

(Oracle 推奨) CLASSPATH には JDBC ドライバ JAR ファイルが 1 つだけ含まれるようにしてください。