db2sqljbind: vinculador de perfiles SQLJ

db2sqljbind vincula los paquetes de DB2 para un perfil serializado previamente personalizado con el mandato db2sqljcustomize.

Las aplicaciones que se ejecutan con IBM® Data Server Driver for JDBC and SQLJ requieren paquetes pero no planes. Si se especifica YES en la opción -automaticbind de db2sqljcustomize, db2sqljcustomize vincula los paquetes en la fuente de datos que especifique con el parámetro -url. Sin embargo, si -automaticbind es NO, si una vinculación falla al ejecutarse db2sqljcustomize, o si desea crear paquetes idénticos en varias ubicaciones para el mismo perfil serializado, puede utilizar el mandato db2sqljbind para vincular paquetes.

Autorización

El conjunto de privilegios del proceso tiene que incluir una de las autorizaciones posibles:
  • Autorización SYSADM
  • Autorización DBADM
  • Si el paquete no existe, el privilegio BINDADD y uno de los privilegios siguientes:
    • Privilegio CREATEIN
    • Autorización PACKADM sobre la colección o sobre todas las colecciones
  • Si el paquete existe, el privilegio BIND sobre el paquete

Sintaxis del mandato

Read syntax diagramSkip visual syntax diagramdb2sqljbind-help-urljdbc:db2:// server:port/ databasejdbc:db2: database:property= value;-datasourceJNDI-name-useruser-ID-passwordpassword-bindoptions"options-string"-staticpositionedNO-staticpositionedYES-genDBRM-DBRMDirdirectory-name-tracefilefile-name-tracelevelTRACE_SQLJ-tracelevel,TRACE_NONETRACE_CONNECTION_CALLSTRACE_STATEMENT_CALLSTRACE_RESULT_SET_CALLSTRACE_DRIVER_CONFIGURATIONTRACE_CONNECTSTRACE_DRDA_FLOWSTRACE_RESULT_SET_META_DATATRACE_PARAMETER_META_DATATRACE_DIAGNOSTICSTRACE_SQLJTRACE_XA_CALLSTRACE_TRACEPOINTSTRACE_SYSPLEXTRACE_ALLserialized-profile-namefile-name.grp

Parámetros del mandato

-help
Especifica que db2sqljbind describe todas las opciones a las que da soporte. Si se especifica cualquier otra opción con -help, no se tiene en cuenta.
-url
Especifica el URL del servidor de datos al que se vinculará el perfil. URL : puede ser un URL para IBM Data Server Driver for JDBC and SQLJ tipo 4 o IBM Data Server Driver for JDBC and SQLJ tipo 2. Las partes variables del valor -url son:
server
Nombre de dominio o dirección IP del sistema operativo donde reside el servidor de bases de datos.
port
El número de puerto del servidor TCP/IP que está asignado al servidor de bases de datos. El valor predeterminado es 446.
database
Nombre del servidor de bases de datos para el que se va a personalizar el perfil.
Si la conexión es con un Db2 for z/OS® servidor, la base de datos es el Db2 nombre de ubicación que se define durante la instalación. Todos los caracteres de este valor deben ser caracteres en mayúsculas. Puede determinar el nombre de ubicación ejecutando la sentencia de SQL siguiente en el servidor:
SELECT CURRENT SERVER FROM SYSIBM.SYSDUMMY1;

Si la conexión es a un servidor de sistemas UNIX, Windows y Db2 en Linux®, la base de datos es el nombre de la base de datos que se define durante la instalación.

Si la conexión es a un servidor IBM Cloudscape, la base de datos es el nombre completo del archivo que contiene la base de datos. Este nombre debe estar entre comillas dobles ("). Por ejemplo:
"c:/databases/testdb"
property=value;
Propiedad de la conexión JDBC.
-datasource JNDI-name
Especifica el nombre lógico de un objeto DataSource que se registró con JNDI. El objeto DataSource representa la fuente de datos para la que se va personalizar el perfil. Se establece una conexión con la fuente de datos si la opción -automaticbind o -onlinecheck se especifica como YES o toma de por omisión el valor YES. La especificación de -datasource es una alternativa a especificar -url. El objeto DataSource debe representar una conexión que utilice conectividad de tipo 4 IBM Data Server Driver for JDBC and SQLJ.
-user user-ID
Especifica el ID de usuario que se utilizará para conectarse con la fuente de datos para vincular el paquete.
-password password
Especifica la contraseña que se utilizará para conectarse con la fuente de datos para vincular el paquete.
-bindoptions options-string
Especifica una lista de opciones separadas por espacios. Estas opciones tienen la misma función que las opciones de precompilación y enlace de DB2 con los mismos nombres. Si está preparando su programa para ejecutarlo en un Db2 for z/OS sistema, especifique las opciones de z/OS. Si está preparando su programa para ejecutarlo en un sistema Db2 en sistemas Linux, UNIX y Windows, especifique las opciones de Db2 en sistemas Linux, UNIX y Windows.
Notas sobre las opciones de encuadernación:
  • Especifique VERSION solamente si se cumplen las condiciones siguientes son:
    • Si está vinculando un paquete en un sistema UNIX, Windows o Db2 en Linux, el sistema es de la versión 8 o posterior.
    • Ha vuelto a ejecutar el conversor en un programa antes de vincular el paquete asociado con un valor VERSION nuevo.

Importante: especifique solamente las opciones de preparación del programa que sean adecuadas para la fuente de datos en que se está vinculando el paquete. Algunos valores y valores predeterminados para el IBM Data Server Driver for JDBC and SQLJ son diferentes de los valores y valores predeterminados de Db2.

-staticpositioned NO|YES
Para los iteradores declarados en el mismo archivo fuente que las sentencias UPDATE de posición que utilizan los iteradores, especifica si las sentencias UPDATE de posición se ejecutarán como sentencias vinculadas estáticamente. El valor predeterminado es NO. NO significa que los UPDATE posicionados se ejecutan como sentencias preparadas dinámicamente. Este valor debe ser igual que el valor -staticpositioned de la invocación db2sqljcustomize anterior del perfil serializado.
-genDBRM
Especifica que db2sqljbind genera módulos de petición de base de datos (DBRM) a partir de un perfil serializado y que db2sqljbind no realiza operaciones de vinculación remotas.

-genDBRM se aplica a los programas que se ejecutarán en Db2 for z/OS servidores de bases de datos únicamente.

-DBRMDir directory-name
Cuando se especifica -genDBRM, -DBRMDir especifica el directorio local en el que db2sqljbind coloca los archivos DBRM generados. El valor por omisión es el directorio activo.

-DBRMdir se aplica a programas que se ejecutarán en Db2 for z/OS servidores de bases de datos únicamente.

-tracefile file-name
Habilita el rastreo e identifica el archivo de salida para la información de rastreo. Esta opción debe especificarse únicamente bajo la dirección del Soporte de Software de IBM.
-tracelevel
Si se especifica -tracefile, indica lo que se desea rastrear durante la ejecución de db2sqljcustomize. El valor por omisión es TRACE_SQLJ. Esta opción debe especificarse únicamente bajo la dirección del Soporte de Software de IBM.
serialized-profile-name|file-name.grp
Especifica los nombres de uno o varios perfiles serializados desde los que se ha vinculado el paquete. Un nombre de perfil serializado tiene el formato siguiente:
program-name_SJProfileIDNumber.ser
program-name es el nombre del programa fuente SQLJ, sin la extensión.sqlj. n es un número entero entre 0 y e m-1, donde e m es el número de perfiles serializados que el traductor SQLJ generó a partir del programa fuente SQLJ.
Puede especificar nombres de perfiles serializados de una de las maneras siguientes:
  • Liste los nombres en el mandato db2sqljcustomize. Si desea especificar varios nombres de perfiles serializados deben estar separados por espacios.
  • Especifique los nombres de perfiles serializados, uno en cada línea, en un archivo con el nombre nombre-archivo.grp y especifique nombre-archivo.grp en el mandato db2sqljbind.

Si especifica más de un nombre de perfil serializado para vincular un paquete de DB2desde varios perfiles serializados, debe haber especificado los mismos nombres de perfil serializado, en el mismo orden, cuando ha ejecutado db2sqljcustomize.

Si especifica uno o varios archivos nombre-archivo.grp, debe haber ejecutado db2sqljcustomize una vez con esa misma lista de archivos. El orden en el que se especifican los archivos en db2sqljbind debe ser igual que el orden en db2sqljcustomize.

No se puede ejecutar db2sqljcustomize en archivos individuales y agrupar estos archivos al ejecutar db2sqljbind.

ejemplos

   db2sqljbind -user richler -password mordecai
     -url jdbc:db2:⁄⁄server:50000⁄sample -bindoptions "EXPLAIN YES"
     pgmname_SJProfile0.ser                                          

Notas de uso

Nombres de paquetes generados por db2sqljbind: los nombres de los paquetes creados por db2sqljbind son los nombres especificados utilizando los parámetros -rootpkgname o -singlepkgname al ejecutar db2sqljcustomize. Si no se especificó -rootpkgname o -singlepkgname, los nombres de paquetes son los primeros siete bytes del nombre del perfil, a los que se añade el carácter de nivel de aislamiento.

Valor DYNAMICRULES para db2sqljbind: La opción de vinculación DYNAMICRULES determina varios atributos de ejecución para el paquete DB2. Dos de esos atributos son el ID de autorización que se utiliza para comprobar la autorización y el calificador que se utiliza para los objetos no calificados. Para asegurar la autorización correcta para sentencias UPDATE y DELETE de posición ejecutadas dinámicamente en programas SQLJ, db2sqljbind siempre vincula paquetes DB2 mediante la opción DYNAMICRULES(BIND). No se puede modificar esta opción. La opción DYNAMICRULES(BIND) hace que la instrucción SET CURRENT SQLID no tenga ningún impacto en un programa SQLJ, porque esas instrucciones afectan solo a las instrucciones dinámicas que están vinculadas con valores DYNAMICRULES distintos de BIND.

Con DYNAMICRULES(BIND), los nombres de tabla, vista, índice y alias no calificados en sentencias de SQL dinámico están calificados de forma implícita con el valor de la opción de vinculación QUALIFIER. Si no especifica QUALIFIER, DB2 utiliza el ID de autorización del propietario del paquete como calificador implícito. Si este comportamiento no es adecuado para el programa, podrá utilizar una de las técnicas siguientes para establecer el calificador correcto:
  • Haga que las sentencias UPDATE y DELETE de posición se ejecuten estáticamente. Para ello, se puede utilizar la opción -staticpositioned YES de db2sqljcustomize o db2sqljbind si el cursor (iterador) de una sentencia UPDATE o DELETE de posición está en el mismo paquete que la sentencia UPDATE o DELETE de posición.
  • Calificar completamente Db2 ƒ nombres de tablas en sentencias UPDATE y DELETE posicionadas.

Comportamiento de la opción de vinculación EXTENDEDINDICATOR: Si la opción de vinculación EXTENDEDINDICATOR no se especifica en la serie de opciones -bindoptions y el servidor de datos de destino soporta los indicadores ampliados, las operaciones de vinculación utilizan EXTENDEDINDICATOR(YES). Si se especifica explícitamente EXTENDEDINDICATOR(NO) y la aplicación contiene sintaxis de indicador extendido, puede producirse un comportamiento inesperado porque el IBM Data Server Driver for JDBC and SQLJ trata los indicadores extendidos como valores NULL.