ここでは、Sun の JDBC ドライバに関する既知の問題とその解決方法を示します。
希望の遮断レベルを接続に対して設定するには、対応する接続プールをその遮断レベルで作成する必要があります。接続プールの設定の詳細は、『Sun Java System Application Server Enterprise Edition 8.2 管理ガイド』 を参照してください。
1 つのトランザクションで 3000 を超える PreparedStatement オブジェクトを生成する場合、DB2 では次のエラーが発生する可能性があります。
[sunm][DB2 JDBC Driver] No more available statements. Please recreate your package with a larger dynamicSections value.
次のプロパティーを接続プール定義に追加して、ドライバが DB2 パッケージをより大きな動的セクション値に再バインドするようにします。
createDefaultPackage=true replacePackage=true dynamicSections=1000
接続プールの設定の詳細は、『Sun Java System Application Server Enterprise Edition 8.2 管理ガイド』 を参照してください。
前述の PrepardStatement エラーに関連して、次のエラーメッセージがスローされることがあります。
[sunm][DB2 JDBC Driver][DB2]Virtual storage or database resource is not available.
DB2 サーバー設定パラメータ APPLHEAPSZ の値を増やします。適度な値は 4096 です。
遮断レベル TRANSACTION_SERIALIZABLE。アプリケーションが遮断レベル TRANSACTION_SERIALIZABLE を採用し、前述したパラメータの 1 つを使用している場合、そのアプリケーションは接続を取得するときにハングアップすることがあります。
希望の遮断レベルを接続に対して設定するには、対応する接続プールをその遮断レベルで作成する必要があります。手順については、『Sun Java System Application Server Enterprise Edition 8.2 管理ガイド』を参照してください。
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'.
現時点ではありません。
Sun JDBC Oracle データソース (com.sun.sql.jdbcx.oracle.OracleDataSource) を使用する場合は、JDBC 接続プールに次のプロパティーを設定します。
<property name="serverType" value="dedicated"/>
このプロパティーの値は、Oracle サーバーのリスナーの設定方法によって異なります。「共有」モードで設定した場合は、上の値を「dedicated」に変更する必要があります。
JDBC 10.2 ドライバを使用して開始するとき、CLASSPATH に複数の JDBC jar ファイルが含まれる場合に java.lang.SecurityException: Sealing violation exception が発生する可能性があります。
Oracle が提供している詳細な説明については、次の Oracle マニュアル ID を参照してください。
Note:405446.1 Subject: JDBC Driver 10.2 Uses Sealed JAR files and May Cause SecurityException Sealing Vio lation
(Oracle 推奨) CLASSPATH には JDBC ドライバ JAR ファイルが 1 つだけ含まれるようにしてください。