REBIND PACKAGE subcomando (DSN)

El submandato de DSN REBIND PACKAGE vuelve a enlazar un paquete de aplicación cuando se realizan cambios que afectan al paquete, pero no se han cambiado las sentencias SQL en el programa.

Por ejemplo, puede utilizar REBIND PACKAGE después de completar las actividades siguientes:

  • Migrar a un nuevo release de Db2
  • Aplicar mantenimiento a Db2
  • Modificar autorizaciones
  • Crear un nuevo índice que las sentencias del paquete pueden utilizar
  • Recopilar estadísticas utilizando el programa de utilidad RUNSTATS u otro programa de utilidad utilizando la palabra clave STATISTICS

Inicio del cambioEste comando se puede utilizar para volver a vincular un paquete para activadores avanzados. Sin embargo, si se emite el comando REBIND PACKAGE con un desencadenador creado antes de la activación del nivel de función 500 o superior, o con un desencadenador básico, se produce un error.fin del cambio

Inicio del cambioPara un paquete de activación para una activación avanzada, puede utilizar el PAQUETE DE REACTIVACIÓN para las siguientes actividades:fin del cambio

Inicio del cambio
  • Reoptimizar sentencias de SQL en el desencadenante después de crear un nuevo índice o utilizar el programa de utilidad RUNSTATS
  • Cambiar algunas de las opciones de enlace predeterminadas que se utilizaron cuando se creó el paquete
  • Hacer que un paquete de desencadenante sea válido después de que se haya marcado como no válido porque se eliminó un objeto del cual el desencadenante dependía
fin del cambio

Inicio del cambioPuede utilizar REBIND PACKAGE para cambiar la versión de servicio rest predeterminada de un servicio REST existente.fin del cambio

REBIND PACKAGE es generalmente más rápido y más económico que BIND PACKAGE. Debe utilizar BIND PACKAGE con la opción ACTION(REPLACE) en las condiciones siguientes:
  • Cuando cambie las sentencias de SQL
  • Cuando vuelva a compilar el programa
  • Cuando haya ejecutado anteriormente BIND PACKAGE con la opción SQLERROR(CONTINUE)

Inicio del cambioCuando se emite el mandato REBIND PACKAGE(*), los únicos paquetes desencadenantes afectados son los de los desencadenantes avanzados que el emisor está autorizado a volver a enlazar.fin del cambio

Inicio del cambio

Introducción gradual de copias de paquetes para REBIND PACKAGE

FL 505

El comando REBIND PACKAGE puede crear una nueva copia actual del paquete, mientras conserva la copia actual existente como copia de eliminación gradual. Esto se llama fase transitoria de revinculación. Puede haber varias copias de un paquete existente, pero sólo habrá una copia actual. Puede haber una copia original, una copia anterior y varias copias de eliminación gradual.

La copia actual, con el ID de copia 0 (o distinto de 0) se almacena en la tabla de catálogo SYSPACKAGE. Las copias anteriores y originales tienen el ID de copia 1 y 2, respectivamente, y se pueden encontrar en la tabla SYSPACKCOPY. Todas las copias de eliminación gradual tienen un ID de copia distinto de 1 y 2 y se pueden encontrar también en SYSPACKCOPY.

La copia del paquete que ejecuta una hebra se puede encontrar en el registro de rastreo de contabilidad de paquetes. Esa copia puede ser actual o eliminada. Db2 podría eliminar las copias eliminadas en ejecuciones posteriores del comando REBIND PACKAGE. Es posible que desee desactivar temporalmente las hebras que ejecutan las copias de eliminación gradual y, a continuación, volver a enlazar el paquete para reducir el almacenamiento generado por las copias de eliminación gradual.

El rebind phase-in es compatible con las siguientes opciones:
  • APREUSE(NONE) PLANMGMT(EXTENDED)
  • APREUSE(WARN) PLANMGMT(EXTENDED) APREUSESOURCE(CURRENT)
  • APREUSE(ERROR) PLANMGMT(EXTENDED) APREUSESOURCE(CURRENT)

Inicio del cambioNo se admite la introducción gradual de reencuadernación para ningún comando que también especifique cambios en cualquier opción de reencuadernación que impida el uso de la opción PLANMGMT(EXTENDED). Para más información, consulte la opción PLANMGMT bind.fin del cambio

El paquete no debe ser un paquete generado para un desencadenador o una rutina SQL, como un procedimiento o una función definida por el usuario.

Db2 espera el tiempo de duración especificado por el parámetro de subsistema IRLMRWT antes de crear copias de paquete para la operación de frase transitoria de revinculación.

Para obtener más información, consulte Introducción gradual de las revinculaciones de paquetes.

fin del cambio

Medio ambiente para REBIND PACKAGE

Puede utilizar REBIND PACKAGE a través de DB2I o especificar el submandato REBIND PACKAGE desde una sesión DSN que se ejecuta en primer plano o en el fondo.

Ámbito de uso compartido de datos: Grupo

Autorización para REBIND PACKAGE

El propietario del paquete debe tener autorización para ejecutar todas las sentencias de SQL incorporadas en el paquete para REBIND PACKAGE para crear un paquete sin devolver mensajes de error. Para VALIDATE(BIND), Db2 verifica la autorización en tiempo de vinculación. Para VALIDATE(RUN), Db2 verifica la autorización inicialmente en tiempo de vinculación, pero si la comprobación de autorización falla, Db2 la vuelve a comprobar en tiempo de ejecución.

Cuando se especifica EXPLAIN(ONLY), debe tener el privilegio EXPLAIN.

El propietario del paquete debe ser un rol para ejecutar REBIND PACKAGE en un contexto de confianza con propiedad de rol.

La tabla siguiente explica la autorización necesaria para ejecutar REBIND PACKAGE, en función de las opciones especificadas.

Tabla 1. Resumen de privilegios para REBIND PACKAGE
Opción Autorización necesaria para ejecutar REBIND PACKAGE
REBIND PACKAGE sin ningún cambio en la propiedad porque no se ha especificado la palabra clave OWNER. Los ID de autorización del proceso deben tener una de las autorizaciones siguientes:
  • Propiedad del paquete
  • Privilegio BIND sobre el paquete
  • Privilegio BINDAGENT del propietario del paquete
  • Autorización PACKADM sobre la colección o sobre todas las colecciones
  • Autorización SYSADM o SYSCTRL o DBADM del sistema
REBIND PACKAGE sin ningún cambio en la propiedad, aunque se especifique el propietario original para la palabra clave OWNER. Los ID de autorización del proceso deben tener una de las autorizaciones siguientes:
  • OWNER id-autorización debe ser uno de los ID de autorización primarios o secundarios del enlazador
  • Privilegio BINDAGENT del propietario del paquete
REBIND PACKAGE con cambio de propiedad. (Se especifica un ID de autorización que no es el propietario original en la palabra clave OWNER.) El nuevo PROPIETARIO debe tener una de las siguientes autorizaciones:
  • Privilegio BIND sobre el paquete
  • Autorización PACKADM sobre la colección o sobre todas las colecciones
  • Autorización SYSADM o SYSCTRL o DBADM del sistema

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:

  • El privilegio del sistema BINDADD y el privilegio CREATE IN o la autorización PACKADM en la colección o en todas las colecciones
  • Autorización SYSADM, SYSCTRL o DBADM del sistema
Inicio del cambio

Sintaxis para REBIND PACKAGE

Leer diagrama de sintaxisOmitir el diagrama de sintaxis visual REBIND PACKAGEbloque-IDOWNER( identificación de autorización)QUALIFIER( nombre-del-calificador) bloque-habilitarbloque-gestión-plan bloque-aceleraciónCONCENTRATESTMT(NOYES)CURRENTDATA(YESNO)DBPROTOCOL(DRDADRDACBF)DEFER(PREPARE)DEFER(INHERITFROMPLAN)NODEFER(PREPARE)DEGREE(1ANY)DESCSTAT(NOYES)DYNAMICRULES(RUNBINDDEFINEINVOKE)ENCODING(ASCIIEBCDICUNICODEccsid)ACCELERATOR( ' nombre-acelerador' )EXPLAIN(YESNOONLY)FLAG(IWEC)IMMEDWRITE(INHERITFROMPLANNOYES)ISOLATION(RRRSCSURNC)KEEPDYNAMIC(NOYES)REOPT(NONE1ALWAYS2ONCEAUTO)OPTHINT(' hint-id')PATH(,nombre-esquemaUSER) PATHDEFAULT3 ROUNDING(CEILINGDOWNFLOORHALFDOWNHALFEVENHALFUPUP)RELEASE(COMMITDEALLOCATEINHERITFROMPLAN)RESTSERVICEDEFAULT4(SÍ)SWITCH(PREVIOUSORIGINAL)VALIDATE(RUNBIND)EXTENDEDINDICATOR(NOYES)CONCURRENTACCESSRESOLUTION(USECURRENTLYCOMMITTEDWAITFOROUTCOME)GENERIC( ' serie' )BUSTIMESENSITIVE(YESNO)SYSTIMESENSITIVE(YESNO)ARCHIVESENSITIVE(YESNO)APPLCOMPAT( nivel de compatibilidad de aplicaciones)
Notas:
  • 1 NOREOPT(VARS) puede especificarse como sinónimo de REOPT(NONE)
  • 2 REOPT(VARS) puede especificarse como sinónimo de REOPT(ALWAYS)
  • 3 La palabra clave PATHDEFAULT es mutuamente excluyente con la palabra clave PATH. No especifique ambas palabras clave en el mismo mandato REBIND.
  • 4 La opción RESTSERVICEDEFAULT solo es válida para paquetes de servicios REST locales.

bloque-ID

Leer diagrama de sintaxisOmitir el diagrama de sintaxis visual(,nombre-ubicación.id-colección*.id-paquete*.(identificador de versión*)*)

bloque-habilitar

Leer diagrama de sintaxisOmitir el diagrama de sintaxis visualENABLEDISABLE(,BATCHDLIBATCHDB2CALLCICSIMSIMSBMPIMSMPPREMOTERRSAF)ENABLE(*)DLIBATCH(,nombre-conexión)CICS(,IDAPL)IMSBMP(,imsID)IMSMPP(,imsID)

bloque-gestión-plan

Leer diagrama de sintaxisOmitir el diagrama de sintaxis visual PLANMGMT1(BASICEXTENDEDOFF) APREUSE1(NONEERRORWARN)APREUSESOURCE(CURRENTPREVIOUSORIGINAL)APCOMPARE1(NONEWARNERROR)APRETAINDUP1(YESNO)
Notas:
  • 1 Esta opción no está disponible para los paquetes de activación.

bloque-aceleración

Leer diagrama de sintaxisOmitir el diagrama de sintaxis visualGETACCELARCHIVE(NOYES)QUERYACCELERATION(NONEENABLEENABLEWITHFAILBACKELIGIBLEALL)

bloque-aceleración

Leer diagrama de sintaxisOmitir el diagrama de sintaxis visualbloque-aceleraciónQUERYACCELERATION(NONEENABLEENABLEWITHFAILBACKELIGIBLEALL)GETACCELARCHIVE(NOYES)ACCELERATIONWAITFORDATA( ' nnnn.m' )ACCELERATOR( ' nombre-acelerador' )
Leer diagrama de sintaxisOmitir el diagrama de sintaxis visualQUERYACCELERATION(NONEENABLEENABLEWITHFAILBACKELIGIBLEALL)GETACCELARCHIVE(NOYES)ACCELERATIONWAITFORDATA( ' nnnn.m' )ACCELERATOR( ' nombre-acelerador' )
fin del cambio

Descripciones para REBIND PACKAGE

Las siguientes opciones identifican los paquetes que se deben reenviar especificando la ubicación, la recogida, el nombre del paquete y la versión. Debe identificar un nombre de paquete, y también puede proporcionar un ID de versión.

nombre-ubicación

La ubicación del DBMS donde el paquete se vuelve a vincular y donde reside la descripción del paquete. El nombre de la ubicación debe estar definido en la tabla del catálogo de 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.

collection-id o *

Especifica la colección que contendrá el paquete a encuadernar, o que ya contiene el paquete a re-encuadernar. No hay ningún valor predeterminado.

Puede utilizar un asterisco (*) para volver a vincular todos los paquetes locales con el id de paquete especificado en todas las colecciones para las que tenga privilegios de vinculación.

id del paquete o *

Especifica el nombre del paquete que se va a reasignar, tal como aparece en la columna NAME de la tabla de catálogo SYSPACKAGE. No hay ningún valor predeterminado. Puede utilizar un asterisco (*) para volver a vincular todos los paquetes locales en collection-id para los que tenga privilegios de vinculación.

El valor de id del paquete puede ser un identificador delimitado o no delimitado. El delimitador para el identificador de paquete son las comillas dobles ("). Si el identificador de paquete está delimitado, Db2 no convierte el valor a mayúsculas.

version-id o *
Especifica la versión del paquete que se va a volver a enlazar, tal como aparece en la columna VERSION de la tabla de catálogo SYSPACKAGE.

Puede utilizar un asterisco (*) para volver a vincular todas las versiones locales del paquete-id especificado en la colección-id para el que tiene privilegios de vinculación.

Usar solo () vuelve a vincular la versión del paquete que se identifica por la cadena vacía.

Si omite version-id, el valor predeterminado depende de cómo especifique package-id. Si utiliza * para id-paquete , entonces version-id se establece por defecto en *. Si proporciona explícitamente un valor para id-paquete , entonces version-id se establece por defecto en la versión de cadena vacía.

*
Vuelve a vincular todos los paquetes de Db2 locales para los que el ID de autorización aplicable tiene el privilegio BIND. Especificar (*) es lo mismo que especificar el nombre del paquete como (*.*.(*)) o (*.*). El ID de autorización aplicable es:
  • El valor de PROPIETARIO, si utiliza esa opción
  • El ID de autorización principal del proceso que ejecuta el enlace, si no utiliza la opción PROPIETARIO
Otras opciones para el PAQUETE REBIND

Para obtener descripciones de las demás opciones del diagrama de sintaxis, consulte el tema Opciones BIND y REBIND para paquetes, planes y servicios.

Notas de uso para REBIND PACKAGE

Reencuadernación de varios paquetes
Si vuelve a vincular varios paquetes, Db2 confirma cada reasociación correcta antes de volver a vincular el siguiente paquete.
Inicio del cambioReencuadernación progresiva de paquetesfin del cambio
Inicio del cambioFL 505Con rebind-phase in, Db2 puede rebindar un paquete concurrentemente con su ejecución. Una operación de reimpresión crea una nueva copia del paquete. Cuando finaliza la operación de reenlace, las nuevas hebras pueden utilizar la nueva copia de paquete inmediatamente y las hebras existentes pueden continuar utilizando la copia que estaba en uso antes del reenlace (la copia de eliminación gradual) sin interrupciones. Para más información, consulte la introducción progresiva de los reencuadres de paquetes.fin del cambio
Reencuadernación de un paquete para un procedimiento SQL nativo
Inicio del cambioSi emite un comando REBIND PACKAGE contra un paquete de procedimientos SQL nativo, las únicas opciones bind que puede cambiar son EXPLAIN (pero no se acepta EXPLAIN(ONLY)), PLANMGMT, SWITCH, APRETAINDUP, APREUSE, APREUSESOURCE y APCOMPARE.fin del cambio Si intenta cambiar otras opciones de bind, el comando fallará y devolverá el mensaje DSNT215I. El mandato REBIND PACKAGE únicamente vuelve a enlazar las sentencias de SQL incluidas en el procedimiento y no las sentencias de control de la definición de procedimiento.
Reencuadernación de un paquete para una función SQL
Si emite un comando REBIND PACKAGE contra un paquete para una función SQL, las únicas opciones de enlace que puede cambiar son EXPLAIN, PLANMGMT y SWITCH. Si intenta cambiar otras opciones de enlace, el mandato no se ejecutará correctamente y devolverá el mensaje DSNT215I. El mandato REBIND PACKAGE únicamente vuelve a enlazar las sentencias SQL incluidas en la función y no las sentencias de control en la definición de función.
Inicio del cambioReencuadernación de paquetes para activadoresfin del cambio
Inicio del cambioAunque los caracteres DBCS suelen estar permitidos en los nombres de activadores, los nombres de activadores que contienen caracteres DBCS no pueden utilizarse en operaciones REBIND TRIGGER PACKAGE. fin del cambio
Inicio del cambioPaquetes de reenganche para activadores avanzadosfin del cambio
Inicio del cambio

Si emite un comando REBIND PACKAGE contra un paquete para un activador avanzado, las únicas opciones de enlace que puede cambiar son EXPLAIN (pero EXPLAIN(ONLY) no se acepta ), FLAG, PLANMGMT y CONCENTRATESTMT. Si intenta cambiar otras opciones de enlace, el mandato no se ejecutará correctamente y devolverá el mensaje DSNT215I.

El mandato REBIND PACKAGE únicamente vuelve a enlazar las sentencias de SQL incluidas en el desencadenante y no las sentencias de control en la definición de desencadenante.

fin del cambio
Inicio del cambioRestricciones para los paquetes de activaciónfin del cambio
Inicio del cambioUn paquete de activación puede rebotarse explícitamente, pero no puede vincularse explícitamente mediante el subcomando BIND PACKAGE. No se puede liberar explícitamente un paquete desencadenante utilizando el submandato FREE PACKAGE o la sentencia DROP PACKAGE. Utilice la sentencia DROP TRIGGER para suprimir el paquete desencadenante. No se puede copiar un paquete desencadenante y únicamente se puede volver a vincular localmente. No se permite la revinculación remota de un paquete desencadenante.fin del cambio
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 red de área local ( 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.

Ejemplo para REBIND PACKAGE

Vuelva a enlazar los paquetes TEST.DSN8BC81.(MAY_VERSION) y PRODUCTION.DSN8BC81.(DEC_VERSION), que se encuentran en la ubicación local USIBMSTODB22. Los paquetes solo pueden ejecutarse desde los entornos CICS® o DLIBATCH si el ID de conexión es CON2. Esto reemplaza el CON1 que se especifica en el comando BIND PACKAGE.
REBIND PACKAGE (USIBMSTODB22.TEST.DSN8BC81.(MAY_VERSION),
                USIBMSTODB22.PRODUCTION.DSN8BC81.(DEC_VERSION)) -
  ENABLE (CICS,DLIBATCH) CICS (CON2)