Notas de la versión de Sun Java System Application Server Enterprise Edition 8.1 2005Q2

Controladores JDBC de Sun integrados

Este apartado describe problemas conocidos relacionados con los controladores JDBC de Sun, junto con las soluciones pertinentes.

ID del error 

Resumen 

6165970 

Es posible que se bloqueen las aplicaciones que utilizan el nivel de aislamiento TRANSACTION_SERIALIZABLE con el controlador de Sun integrado para Microsoft SQL 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.

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 la guía de administración para obtener información sobre cómo configurar los conjuntos de conexiones. 

Solución

Ninguna por ahora. 

6170432 

Errores de PreparedStatement.

Descripción nº 1

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.

Solución nº 1

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 Administration Guide para obtener información sobre cómo configurar los conjuntos de conexiones.

Descripción nº 2

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.

Solución nº 2

Aumente el parámetro de configuración APPLHEAPSZ del servidor DB2 Un valor adecuado es 4096.

Descripción nº 3

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.

Solución nº 3

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 Administration Guide para obtener más instrucciones.

6189199 

Surgen problemas al establecer el nivel de aislamiento con el controlador de Sun integrado para Sybase Adaptive Server. 

  • 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'.

Solución

Ninguna por ahora. 

6247468 

En Solaris 10 y Enterprise Linux 3.0, el controlador Oracle JDBC integrado en Sun no permite la creación de una conexión. 

Solución

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 de arriba deberá cambiarse a "dedicado". 

6554602 

A partir de la versión 10.2 de los controladores JDBC, si se tienen varios archivos jar de JDBC en CLASSPATH, es posible que se produzca una excepción, java.lang.SecurityException: Sealing violation exception.

Se proporciona información detallada en el siguiente Id. de documento de Oracle: 

Nota: 405446
Asunto: el controlador JDBC 10.2 utiliza archivos JAR sellados y puede provocar 
una excepción de seguridad
relacionada con una infracción de sellado.

Solución:

(Recomendación de Oracle) Asegúrese de que CLASSPATH incluya sólo el archivo JAR del controlador JDBC.