Limitaciones de características de funciones definidas por el usuario y procedimientos almacenados

Este tema describe las limitaciones actuales de las características de procedimientos almacenados y funciones definidas por el usuario del entorno de trabajo.

Limitación y prerrequisitos para la construcción y ejecución de procedimientos almacenados Java cuando el destino es un servidor DB2 z/OS v8

Limitación para importar un procedimiento almacenado Java desde el sistema de archivos y desplegarlo en la base de datos de destino.

Después de importar un procedimiento almacenado Java desde el sistema de archivos, y desplegarlo satisfactoriamente en la base de datos de destino, es posible que la ejecución del procedimiento almacenado falle. El nombre del método puede entrar en conflicto con un nombre de método existente en el entorno en el que se está ejecutando el procedimiento almacenado.

Debe asegurarse de que la clase de implementación del procedimiento almacenado se identifica exclusivamente incluyéndola en un paquete. Inserte una sentencia de paquetes en el origen de Java e importe el procedimiento almacenado en el proyecto de desarrollo. Asegúrese también de que el método de implementación del procedimiento almacenado tiene un nombre exclusivo. Puede hacerlo modificando el nombre del método en el origen Java antes de importarlo al proyecto de desarrollo.

Limitación cuando se especifica la opción de enlace ACTION(REPLACE)

Cuando se construye un procedimiento almacenado SQLJ utilizando el controlador JDBC de DB2, se pueden producir errores de construcción con la opción de enlace ACTION(REPLACE). Este error se puede producir en DB2 UDB para Linux, UNIX y Windows versión 8 Fixpak 5 o releases anteriores cuando un procedimiento almacenado se conecta a un servidor DB2 UDB para Linux, UNIX y Windows versión 8 o DB2 UDB para z/OS versión 8. Cuando se compila el procedimiento SQLJ, el mandato DB2SQLJCUSTOMIZE puede lanzar la siguiente excepción:
java.sql.SQLException: invalid options string
	at com.ibm.db2.jcc.sqlj.Binder.a(Binder.java:1018)
	at com.ibm.db2.jcc.sqlj.Binder.a(Binder.java:775)
	at com.ibm.db2.jcc.sqlj.Binder.a(Binder.java:432)
	at com.ibm.db2.jcc.sqlj.Binder.bindMain(Binder.java:338)
	at com.ibm.db2.jcc.sqlj.Customizer.customizeMain(Customizer.java:810)
	at com.ibm.db2.jcc.sqlj.Customizer.main(Customizer.java:272)

Este problema está resuelto en DB2 UDB para Linux, UNIX y Windows versión 8 Fixpak 6. Para evitar este error, especifique el resto de opciones de enlace después de la opción ACTION(REPLACE). Por ejemplo, utilice ACTION(REPLACE) BLOCKING(ALL) en vez de BLOCKING(ALL) ACTION(REPLACE).

Para evitar este error si sólo se utiliza la opción ACTION(REPLACE), el nivel de validación predeterminado para enlazar un paquete a un servidor remoto se añadirá automáticamente de la siguiente manera: ACTION(REPLACE) VALIDATE(BIND).


Comentarios