Este apartado describe problemas conocidos relacionados con los controladores JDBC de Sun, junto con las soluciones pertinentes.
Para definir el nivel deseado de aislamiento para una conexión, el conjunto de conexiones correspondiente debe crearse en el mismo nivel de aislamiento. Consulte Sun Java System Application Server Enterprise Edition 8.2 Administration Guide para obtener más información sobre la configuración de conjuntos de conexión.
Si una aplicación genera más de 3000 objetos PreparedStatement en una transacción, se puede producir el siguiente error con DB2:
[sunm][DB2 JDBC Driver] No more available statements.. Please recreate your package with a larger dynamicSections value.
Agregue las siguientes propiedades a la definición del conjunto de conexiones para que el controlador vuelva a vincular los paquetes DB2 con un valor mayor de secciones dinámicas:
createDefaultPackage=true replacePackage=true dynamicSections=1000
Consulte Sun Java System Application Server Enterprise Edition 8.2 Administration Guide para más información sobre la configuración de conjuntos de conexión.
En relación con el error de PrepardStatement mencionado anteriormente, otro mensaje de error que se puede mostrar es:
[sunm][DB2 JDBC Driver][DB2]Virtual storage or database resource is not available.
Aumente el parámetro de configuración APPLHEAPSZ del servidor DB2 Un valor adecuado es 4096.
Nivel de aislamiento TRANSACTION_SERIALIZABLE. Si una aplicación utiliza un nivel de aislamiento TRANSACTION_SERIALIZABLE y emplea uno de los parámetros sugeridos anteriormente, es posible que se bloquee cuando intente obtener la conexión.
Para definir el nivel deseado de aislamiento para una conexión, el conjunto de conexiones correspondiente debe crearse en el mismo nivel de aislamiento. Consulte Sun Java System Application Server Enterprise Edition 8.2 Administration Guide para obtener instrucciones.
Es posible que se bloqueen las aplicaciones que utilizan el nivel de aislamiento TRANSACTION_SERIALIZABLE con el controlador de Sun integrado para Sybase Adaptive Server cuando se utiliza una instrucción preparada para actualizar, en caso de que se estén llevando a cabo dos transacciones paralelas y una de ellas se deshaga. El proceso para deshacer la conexión falla y se muestra el siguiente mensaje. Las conexiones deshechas no se pueden utilizar nunca más:
java.sql.SQLException: [sunm][Sybase JDBC Driver]Request cannot be submitted due to wire contention
Sybase Adaptive Server no es compatible con el nivel de aislamiento TRANSACTION_REPEATABLE_READ . No obstante, al realizar una consulta en DatabaseMetaData, el controlador integrado de Sun indica que dicho nivel de aislamiento sí es compatible con la base de datos. Las aplicaciones que utilizan este nivel de aislamiento fallarán.
Las aplicaciones que usan el controlador integrado de Sun no pueden establecer el nivel de aislamiento TRANSACTION_READ_UNCOMMITTED. La aplicación desencadena la siguiente excepción en el primer acceso de 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'.
Ninguna por ahora.
Defina la siguiente propiedad en el conjunto de conexiones de JDBC cuando use el origen de datos de Oracle SUN JDBC (com.sun.sql.jdbcx.oracle.OracleDataSource):
<property name="serverType" value="dedicated"/>
El valor de la propiedad depende del modo en que esté configurado el módulo de escucha del servidor Oracle. Si está configurado en el modo "compartido", el valor anterior deberá cambiarse a "dedicated".
Comience con controladores JDBC 10.2, si tiene más de un archivo jar JDBC en CLASSPATH puede que resulte en java.lang.SecurityException: Sealing violation exception.
Una explicación detallada de Oracle está documentada en el siguiente ID de Documento Oracle:
Note:405446.1 Subject: JDBC Driver 10.2 Uses Sealed JAR files and May Cause SecurityException Sealing Violation
(Suggested by Oracle) Make sure that the CLASSPATH includes only one JDBC driver JAR file.