DDLERROR
Válido Para
Extract e Replicat
Descrição
Use o parâmetro DDLERROR para tratar erros DDL nos sistemas de origem e de destino. Há opções disponíveis para Extract e Replicat.
DDLERROR para Extração
Use a opção Extract do parâmetro DDLERROR para tratar erros em objetos encontrados pelo Extract para os quais não é possível encontrar metadados.
Padrão
Término Anormal
Sintaxe
DDLERROR [RESTARTSKIP <number_of_skips>] [RETRYDELAY <seconds>] [SKIPTRIGGERERROR <number_of_errors>]
RESTARTSKIP <number_of_skips>
Faz o Extract ignorar e ignorar um número específico de operações DDL na inicialização, para impedir que o Extract diminua em um erro. Por padrão, um erro DDL faz com que o Extract seja encerrado de forma que nenhuma operação seja ignorada. Os valores válidos vão de 1 a 100000.
Para gravar informações sobre operações ignoradas no arquivo de relatório do Extract, use o parâmetro DDLOPTIONS com a opção REPORT.
SKIPTRIGGERERROR <number_of_errors>
(Oracle) faz com que a Extração ignore e ignore um número específico dos erros DDL causados pelo acionador DDL na inicialização. Os valores válidos são 1 a 100000.
SKIPTRIGGERERROR é marcado antes da opção RESTARTSKIP. Se o Extract ignorar uma operação DDL por causa de um erro de trigger, essa operação não será contada na especificação RESTARTSKIP.
DDLERROR para Replicat
Use as opções de Replicat do parâmetro DDLERROR para tratar erros que ocorrem quando DDL é aplicado ao banco de dados de destino. Com as opções DDLERROR, você pode tratar a maioria dos erros de maneira padrão, por exemplo, para interromper o processamento e também tratar outros erros de maneira específica. Você pode usar várias instâncias de DDLERROR no mesmo arquivo de parâmetros para tratar todos os erros previstos.
Padrão
Término Anormal
Sintaxe
DDLERROR
{<error> | DEFAULT} {<response>}
{INCLUDE <inclusion_clause> | EXCLUDE <exclusion_clause>}
[IGNOREMISSINGOBJECTS | ABENDONMISSINGOBJECTS]
[RETRYDELAY <seconds>]
{<error> | DEFAULT} {<response>}
<error>
Especifica um erro DDL explícito para este comando DDLERROR.
DEFAULT
Especifica um <response> padrão para qualquer erro DDL para o qual não haja uma instrução DDLERROR explícita.
<response>
A ação executada pelo Replicat quando ocorre um DDL <error>. Pode ser um dos seguintes:
ABEND
Reverta a operação e encerre o processamento de forma anormal. ABEND é o padrão.
DISCARD
Registre a operação ofensiva no arquivo de descarte, mas continue processando o DDL subsequente.
IGNORE
Ignore o erro.
{INCLUDE <inclusion_clause> | EXCLUDE <exclusion_clause>}
Identifica o início de uma cláusula de inclusão ou exclusão que controla se o DDL específico é tratado ou não pela instrução DDLERROR. Consulte "DDL Filtering Options" para obter sintaxe e uso.
[IGNOREMISSINGOBJECTS |
ABENDONMISSINGOBJECTS] |
Controla se o Extract é encerrado quando DML é emitido em objetos que não puderam ser encontrados no destino. Essa condição geralmente ocorre quando o DDL que não está na configuração de replicação é emitido diretamente no destino ou pode ocorrer quando há uma discrepância entre as definições de origem e de destino.
IGNOREMISSINGOBJECTS
Faz com que o Replicat ignore as operações DML em tabelas ausentes.
ABENDONMISSINGOBJECTS
Faz com que o Replicat seja encerrado em operações DML em tabelas ausentes.
[RETRYDELAY <seconds>]
Especifica o atraso em segundos entre as tentativas de repetir uma operação com falha. O default é 10 segundos.
Exemplos
Exemplo 1 DDLERROR Exemplo Básico
No exemplo a seguir, a instrução DDLERROR faz com que o Replicat ignore o erro especificado, mas não antes de tentar a operação novamente três vezes em intervalos de dez segundos. O Replicat aplica o tratamento de erros às operações DDL executadas em objetos cujos nomes satisfaçam o curinga de tab* (qualquer usuário, qualquer operação), exceto aqueles que satisfaçam a tab1*.
DDLERROR 1234 IGNORE RETRYOP MAXRETRIES 3 RETRYDELAY 10 &
INCLUDE ALL OBJTYPE TABLE OBJNAME tab* EXCLUDE OBJNAME tab1*
Para tratar todos os erros, exceto esse erro, a instrução DDLERROR a seguir pode ser adicionada.
DDLERROR DEFAULT ABEND
Nesse caso, o Replicat é encerrado com erros DDL.
Exemplo 2 Usando Várias Instruções DDLERROR
A ordem na qual você lista instruções DDLERROR no arquivo de parâmetros não afeta sua validade, a menos que várias instruções DDLERROR especifiquem o mesmo erro, sem qualquer qualificador adicional. Nesse caso, o Replicat usa apenas o primeiro listado. Por exemplo, com as instruções a seguir, o Replicat terá término anormal no erro.
DDLERROR 1234 ABEND
DDLERROR 5678 IGNORE
Com os qualificadores adequados, no entanto, a configuração anterior se torna mais útil. Por exemplo:
DDLERROR 1234 ABEND INCLUDE OBJNAME tab*
DDLERROR 5678 IGNORE
Nesse caso, como há uma instrução INCLUDE, o Replicat só será encerrado se um nome de objeto em uma instrução DDL incorreta corresponder ao caractere curinga tab*. O processo Replicat ignorará as operações incorretas que incluem qualquer outro nome de objeto.