BIND PACKAGE subcomando (DSN)
El submandato BIND PACKAGE de DSN crea un paquete de aplicaciones. Db2 registra la descripción del paquete en las tablas de catálogo y guarda el paquete preparado en el directorio.
BIND PACKAGE también elimina las copias de paquetes eliminados.
Medio ambiente para BIND PACKAGE
Puede utilizar BIND PACKAGE desde DB2I o desde una sesión DSN bajo TSO que se ejecute en primer plano o en segundo plano.
Ámbito de uso compartido de datos: Grupo
Autorización para BIND PACKAGE
El propietario del paquete debe tener autorización para ejecutar todas las instrucciones incluidas en el paquete para que BIND PACKAGE cree un paquete sin producir mensajes de error. La autoridad SYSADM y la autoridad DATAACCESS incluyen esta autorización.
Para VALIDATE(BIND), Db2 verifica la autorización en el momento de la vinculación, con la excepción de la instrucción LOCK TABLE y algunas instrucciones CREATE, ALTER y DROP. Para esas sentencias SQL, Db2 verifica la autorización en tiempo de ejecución.
Para VALIDATE(RUN), Db2 verifica la autorización inicialmente en el momento de la vinculación, pero si la verificación de la autorización falla, Db2 la vuelve a verificar en el momento de la ejecución.
La autorización necesaria para añadir un nuevo paquete o una nueva versión de un paquete existente depende del valor del parámetro del subsistema BINDNV. El valor predeterminado es BINDADD.
El propietario del paquete debe ser un rol para ejecutar BIND PACKAGE en un contexto de confianza con propiedad de rol. Si se realiza un enlace en un contexto de confianza que tiene un propietario de rol como objeto, entonces el propietario del paquete será un rol. Si se especifica PROPIETARIO, se asume que es un rol. Si no se especifica, el rol del vinculador pasa a ser el de propietario.
Para especificar la opción SQLERROR(CHECK), el aglutinante debe tener el privilegio BIND, BINDAGENT o EXPLAIN.
Para especificar la opción EXPLAIN(ONLY), el binder debe tener el privilegio EXPLAIN.
La siguiente tabla resume la autorización necesaria para ejecutar BIND PACKAGE, dependiendo de las opciones de enlace que especifique, y en el caso de la opción ADD, el valor del campo del panel de instalación BIND NEW PACKAGE.
| Opción de enlace | Campo del panel de instalación ENLACE NUEVO PAQUETE (parámetro del subsistema BINDNV) | Se requiere autorización para ejecutar BIND PACKAGE |
|---|---|---|
| AÑADIR, utilizando el propietario predeterminado o el ID de autorización principal | BINDADD | El ID de autorización principal o el rol deben tener uno de los siguientes para agregar un nuevo paquete o una nueva versión de un paquete existente a una colección:
|
| AÑADIR, utilizando el propietario predeterminado o el ID de autorización principal | BIND | El ID de autorización principal o el rol debe tener uno de los siguientes para agregar un nuevo paquete o una nueva versión de un paquete existente a una colección:
|
| AÑADIR, especificando un PROPIETARIO distinto del ID de autorización principal1 | BINDADD | Si alguno de los ID de autorización o roles del proceso tiene autorización SYSADM, autorización SYSCTRL o autorización DBADM del sistema, OWNER id-autorización puede ser cualquier valor, cuando el parámetro de subsistema SEPARATE_SECURITY está establecido en NO. Si alguno de los ID de autorización tiene el privilegio BINDAGENT otorgado por el propietario, id-autorización puede especificar el otorgante como OWNER. De lo contrario, el OWNER id-autorización debe ser uno de los ID de autorización primarios o secundarios del enlazador. Si especifica OWNER id-autorización, Db2 primero comprueba OWNER y luego el enlazador para el privilegio de enlace necesario. Si el enlazador no tiene autorización SYSADM, SYSCTRL o DBADM del sistema, el ID de autorización o rol del PROPIETARIO debe tener uno de los siguientes para añadir un paquete nuevo o una nueva versión de un paquete existente a una colección:
|
| AÑADIR, especificando un PROPIETARIO distinto del ID de autorización principal1 | BIND | Si alguno de los ID de autorización o roles del proceso tiene autorización SYSADM, autorización SYSCTRL o autorización DBADM del sistema, OWNER id-autorización puede ser cualquier valor, cuando el parámetro de subsistema SEPARATE_SECURITY está establecido en NO. Si alguno de los ID de autorización tiene el privilegio BINDAGENT otorgado por el propietario, id-autorización puede especificar el otorgante como OWNER. De lo contrario, el OWNER id-autorización debe ser uno de los ID de autorización primarios o secundarios del enlazador. Si especifica OWNER id-autorización, Db2 primero comprueba OWNER y luego el enlazador para el privilegio de enlace necesario. Si el enlazador no tiene autorización SYSADM, SYSCTRL o DBADM del sistema, el ID de autorización o rol del PROPIETARIO debe tener uno de los siguientes para añadir un paquete nuevo o una nueva versión de un paquete existente a una colección:
|
| REEMPLAZAR, utilizando el propietario predeterminado o el ID de autorización principal | BINDADD o BIND | La identificación o función de autorización principal debe tener uno de los siguientes:
|
| REEMPLAZAR, especificando un PROPIETARIO distinto del ID de autorización principal 1 | BINDADD o BIND | Si alguno de los ID de autorización o roles del proceso tiene autorización SYSADM, autorización SYSCTRL o autorización DBADM del sistema, OWNER id-autorización puede ser cualquier valor, cuando el parámetro de subsistema SEPARATE_SECURITY está establecido en NO. Si alguno de los ID de autorización tiene el privilegio BINDAGENT otorgado por el propietario, id-autorización puede especificar el otorgante como OWNER. De lo contrario, el OWNER id-autorización debe ser uno de los ID de autorización primarios o secundarios del enlazador. Si especifica OWNER id-autorización, Db2 primero comprueba OWNER y luego el enlazador para el privilegio de enlace necesario. Si el administrador no tiene autoridad SYSADM o SYSCTRL o de sistema DBADM, el ID de autorización o el rol del PROPIETARIO debe tener uno de los siguientes:
|
| COPIAR | BINDADD o BIND | El ID de autorización principal o secundario o el rol del vinculante o del PROPIETARIO debe tener uno de los siguientes en el paquete que se está copiando:
|
Nota:
|
||
Sintaxis
- 1 El valor predeterminado para un paquete local es el valor del plan. El valor predeterminado para un paquete remoto es CS.
Descripciones para BIND PACKAGE
Las siguientes opciones identifican el paquete a vincular. Puede identificar la ubicación y el ID de la colección. El DBRM proporciona el ID del paquete y el ID de la versión si utiliza la opción MIEMBRO. Véase la opción de vinculación de MIEMBRO. De lo contrario, estos ID provienen de la opción COPY. Ver opción de encuadernación COPY
- PACKAGE( nombre de la ubicación )
La ubicación del DBMS donde se vincula el paquete y donde reside la descripción del paquete. El nombre de la ubicación debe estar definido en la tabla de catálogo SYSIBM.LOCATIONS. Si esa tabla no existe o si el DBMS no está en ella, recibirá un mensaje de error. Consulte la tabla del catálogo de LOCALIZACIONES.
El valor predeterminado es el DBMS local.
- PACKAGE( id de colección )
Especifica la colección que contendrá el paquete a vincular. No existe ningún valor predeterminado.
collection-id puede ser un identificador delimitado o no delimitado. El delimitador para id-colección son las comillas dobles ("). Si id-colección está delimitado, Db2 no convierte el valor a mayúsculas.
- Otras opciones para ENVIAR PAQUETE
Para ver las descripciones de las otras opciones en el diagrama de sintaxis, consulte Opciones BIND y REBIND para paquetes, planes y servicios.
Notas de uso para BIND PACKAGE
- Información de seguimiento para miembros que comparten datos
- Cuando este comando con ámbito de grupo se emite en un miembro de intercambio de datos de Db2 , también se ejecuta en todos los demás miembros activos. Los registros de rastreo de IFICID 090 para otros miembros del grupo pueden mostrar que el mismo comando fue emitido por el ID de autorización SYSOPR desde el ID de correlación de la 016.TLPKN5F, además de los registros de rastreo del miembro donde se emitió el comando original. Véase el ámbito de aplicación de Command en el intercambio de datos de Db2.
Ejemplos para BIND PACKAGE
- Ejemplo: Sustitución de una versión de un paquete
- El siguiente comando reemplaza la versión APRIL_VERSION del paquete TEST.DSN8BC12 en la ubicación local USIBMSTODB22 por otra versión del paquete. La nueva versión (o podría ser la misma) está en el DBRM DSN8BC12. Si el DBRM no contiene ningún ID de versión, el ID de versión del paquete toma por defecto la cadena vacía. El paquete solo funciona desde el entorno TSO BATCH y desde el entorno CICS® si el ID de conexión es CON1. El nombre PRODUCTN califica todos los nombres de tabla, vista, alias e índice no calificados.
BIND PACKAGE (USIBMSTODB22.TEST) - MEMBER (DSN8BC12) - ACTION (REPLACE) REPLVER (APRIL_VERSION) - QUALIFIER (PRODUCTN) - ENABLE (BATCH, CICS) CICS (CON1) - Ejemplo: Vinculación del paquete SPUFI con ISOLATION(UR)
- El aislamiento UR no adquiere casi ningún bloqueo. Es rápido y ocasiona
muy poca contienda, pero lee datos no confirmados. No utilice ISOLATION(UR) a menos que esté seguro de que sus aplicaciones y usuarios finales pueden aceptar los datos lógicamente incoherentes que pueden producirse, como en el caso de este ejemplo.
Supongamos que una supervisora ejecuta habitualmente sentencias SQL utilizando SPUFI para comprobar el estado de las piezas a medida que pasan por el proceso de montaje y para actualizar una tabla con los resultados de su inspección. No necesita conocer el estado exacto de las piezas; un pequeño margen de error es aceptable.
El supervisor consulta el estado de las piezas desde una tabla de producción llamada ASSEMBLY-STATUS y realiza las actualizaciones en una tabla de no producción llamada REPORTS. Utiliza la opción AUTOCOMMIT NO de SPUFI y tiene la costumbre de dejar datos en la pantalla mientras realiza otras tareas.
Si el supervisor ejecuta una versión de SPUFI que está vinculada con ISOLATION(UR), la consulta del estado de las piezas se ejecuta sin adquirir bloqueos utilizando el nivel de aislamiento UR y la actualización se ejecuta utilizando el nivel de aislamiento CS. De este modo, la consulta no retiene inadvertidamente bloqueos en la tabla de producción, lo que interfiere con los trabajos de producción, y la supervisora dispone de datos suficientemente buenos para sus fines.
La aplicación SPUFI está vinculada de la siguiente manera:
BIND PACKAGE(DSNESPUR) - COPY(DSNESPCS.DSNESM68) - ACTION(ADD) - ISOLATION(UR) - Ejemplo: Encuadernación de un paquete para un procedimiento SQL nativo
- El siguiente comando crea un procedimiento SQL nativo llamado CHICAGO.PRODUCTION.MYPROC a partir del procedimiento de ubicación actual TEST.MYPROC.Función obsoleta: La opción de enlace DEPLOY está obsoleta. Para obtener los mejores resultados, implemente funciones SQL compiladas y procedimientos SQL nativos en múltiples entornos emitiendo las mismas sentencias CREATE o ALTER por separado en cada entorno de e Db2 .Ambos procedimientos SQL nativos tienen la misma versión ABC. El paquete para el procedimiento nativo de SQL CHICAGO.PRODUCTION.MYPROC.(ABC) tiene XYZ como CALIFICADOR.
CREATE PROCEDURE TEST.MYPROC LANGUAGE SQL VERSION ABC ... BEGIN ... END BIND PACKAGE(CHICAGO.PRODUCTION) DEPLOY(TEST.MYPROC) COPYVER(ABC) ACTION(ADD) QUALIFIER(XYZ)El siguiente comando reemplaza el procedimiento nativo de SQL CHICAGO.PRODUCTION.MYPROC versión ABC, utilizando la ubicación actual del procedimiento nativo de SQL TEST.MYPROC versión ABC.
BIND PACKAGE(CHICAGO.PRODUCTION) DEPLOY(TEST.MYPROC) COPYVER(ABC) ACTION(REPLACE) REPLVER(ABC)
