DDLERROR
Válido para
Extraer y Replicat
Descripción
Utilice el parámetro DDLERROR para manejar errores DDL en los sistemas de origen y destino. Las opciones están disponibles para Extract y Replicat.
DDLERROR para extracción
Utilice la opción Extract del parámetro DDLERROR para gestionar los errores en los objetos encontrados por Extract para los que no se pueden encontrar metadatos.
Valor por defecto
Fin anormal
Sintaxis
DDLERROR [RESTARTSKIP <number_of_skips>] [RETRYDELAY <seconds>] [SKIPTRIGGERERROR <number_of_errors>]
RESTARTSKIP <number_of_skips>
Hace que Extract omita e ignore un número específico del número de operaciones de DDL al iniciarse, para impedir que Extract finalice de manera anormal cuando se produzca un error. Por defecto, un error DDL hace que Extract finalice de forma anormal para que no se omita ninguna operación. Los valores válidos son de 1 a 100000.
Para escribir información sobre las operaciones omitidas en el archivo de informe Extract, utilice el parámetro DDLOPTIONS con la opción REPORT.
SKIPTRIGGERERROR <number_of_errors>
(Oracle) Hace que Extract omita e ignore un número específico de errores DDL provocados por el disparador de DDL al iniciarse. Los valores válidos son del 1 al 100000.
SKIPTRIGGERERROR se comprueba antes de la opción RESTARTSKIP. Si Extract omite una operación DDL debido a un error de disparador, esa operación no se cuenta para la especificación RESTARTSKIP.
DDLERROR para Replicat
Utilice las opciones de Replicat del parámetro DDLERROR para manejar los errores que se producen cuando se aplica DDL a la base de datos destino. Con las opciones DDLERROR, puede manejar la mayoría de los errores de manera predeterminada, por ejemplo, para detener el procesamiento y también para manejar otros errores de una manera específica. Puede utilizar varias instancias de DDLERROR en el mismo archivo de parámetros para manejar todos los errores que se anticipan.
Valor por defecto
Fin anormal
Sintaxis
DDLERROR
{<error> | DEFAULT} {<response>}
{INCLUDE <inclusion_clause> | EXCLUDE <exclusion_clause>}
[IGNOREMISSINGOBJECTS | ABENDONMISSINGOBJECTS]
[RETRYDELAY <seconds>]
{<error> | DEFAULT} {<response>}
<error>
Especifica un error DDL explícito para que maneje esta sentencia DDLERROR.
DEFAULT
Especifica un valor <response> por defecto para cualquier error DDL para el que no hay una sentencia DDLERROR explícita.
<response>
Acción realizada por Replicat cuando se produce un DDL <error>. Puede ser uno de los siguientes:
ABEND
Realice un rollback de la operación y termine el procesamiento de forma anormal. ABEND es el valor por defecto.
DISCARD
Registre la operación ofensiva en el archivo de desecho, pero continúe procesando DDL posterior.
IGNORE
Ignore el error.
{INCLUDE <inclusion_clause> | EXCLUDE <exclusion_clause>}
Identifica el comienzo de una cláusula de inclusión o exclusión que controla si la sentencia DDLERROR maneja o no DDL específico. Consulte "DDL Filtering Options" para obtener información sobre sintaxis y uso.
[IGNOREMISSINGOBJECTS |
ABENDONMISSINGOBJECTS] |
Controla si Extract finaliza de forma anormal cuando se emite DML en objetos que no se han encontrado en el destino. Esta condición suele producirse cuando DDL que no está en la configuración de replicación se emite directamente en el destino o puede producirse cuando hay una discrepancia entre las definiciones de origen y destino.
IGNOREMISSINGOBJECTS
Hace que Replicat omita las operaciones DML en las tablas que faltan.
ABENDONMISSINGOBJECTS
Hace que Replicat finalice de forma anormal en las operaciones DML en las tablas que faltan.
[RETRYDELAY <seconds>]
Especifica el retraso en segundos entre los intentos de reintentar una operación fallida. El valor por defecto es 10 segundos.
Ejemplos
Ejemplo 1 DDLERROR Ejemplo básico
En el siguiente ejemplo, la sentencia DDLERROR hace que Replicat ignore el error especificado, pero no antes de volver a intentar la operación tres veces en intervalos de diez segundos. Replicat aplica el manejo de errores a las operaciones DDL ejecutadas en objetos cuyos nombres cumplen el comodín tab* (cualquier usuario, cualquier operación), excepto los que cumplen tab1*.
DDLERROR 1234 IGNORE RETRYOP MAXRETRIES 3 RETRYDELAY 10 &
INCLUDE ALL OBJTYPE TABLE OBJNAME tab* EXCLUDE OBJNAME tab1*
Para manejar todos los errores excepto ese error, se puede agregar la siguiente sentencia DDLERROR.
DDLERROR DEFAULT ABEND
En este caso, Replicat finaliza de forma anormal en los errores DDL.
Ejemplo 2 Uso de varias sentencias DDLERROR
El orden en el que se muestran las sentencias DDLERROR en el archivo de parámetros no afecta a su validez a menos que varias sentencias DDLERROR especifiquen el mismo error, sin calificadores adicionales. En ese caso, Replicat solo utiliza el primero que se muestra. Por ejemplo, dadas las siguientes sentencias, Replicat finalizará de forma anormal en el error.
DDLERROR 1234 ABEND
DDLERROR 5678 IGNORE
Sin embargo, con los calificadores adecuados, la configuración anterior se convierte en una configuración más útil. Por ejemplo:
DDLERROR 1234 ABEND INCLUDE OBJNAME tab*
DDLERROR 5678 IGNORE
En este caso, debido a que hay una sentencia INCLUDE, Replicat finalizará de forma anormal solo si un nombre de objeto en una sentencia DDL errónea coincide con el comodín tab*. Replicat ignorará las operaciones erróneas que incluyen cualquier otro nombre de objeto.