DDLERROR
Valido per
Estrai e Replicat
Descrizione
Utilizzare il parametro DDLERROR per gestire gli errori DDL nei sistemi di origine e di destinazione. Sono disponibili opzioni per Extract e Replicat.
DDLERROR per estrazione
Utilizzare l'opzione Extract del parametro DDLERROR per gestire gli errori sugli oggetti trovati da Extract per i quali non è possibile trovare i metadati.
Predefinito
Interruzione anomala
Sintassi
DDLERROR [RESTARTSKIP <number_of_skips>] [RETRYDELAY <seconds>] [SKIPTRIGGERERROR <number_of_errors>]
RESTARTSKIP <number_of_skips>
Fa in modo tale che Extract salti e ignori un numero specifico di operazioni DDL all'avvio, per evitare l'interruzione di Extract a causa di un errore. Per impostazione predefinita, un errore DDL causa la sospensione di Extract in modo che nessuna operazione venga saltata. I valori validi sono compresi tra 1 e 100000.
Per scrivere le informazioni sulle operazioni saltate nel file del report Extract, utilizzare il parametro DDLOPTIONS con l'opzione REPORT.
SKIPTRIGGERERROR <number_of_errors>
(Oracle) Fa in modo che Extract salti e ignori un numero specifico di errori DDL provocati dal trigger DDL all'avvio. I valori validi sono compresi tra 1 e 100000.
La casella SKIPTRIGGERERROR viene selezionata prima dell'opzione RESTARTSKIP. Se Extract salta un'operazione DDL a causa di un errore di trigger, tale operazione non viene conteggiata ai fini della specifica RESTARTSKIP.
DDLERROR per Replicat
Utilizzare le opzioni Replicat del parametro DDLERROR per gestire gli errori che si verificano quando DDL viene applicato al database di destinazione. Con le opzioni DDLERROR, è possibile gestire la maggior parte degli errori in modo predefinito, ad esempio per interrompere l'elaborazione e gestire anche altri errori in modo specifico. È possibile utilizzare più istanze di DDLERROR nello stesso file di parametri per gestire tutti gli errori previsti.
Predefinito
Interruzione anomala
Sintassi
DDLERROR
{<error> | DEFAULT} {<response>}
{INCLUDE <inclusion_clause> | EXCLUDE <exclusion_clause>}
[IGNOREMISSINGOBJECTS | ABENDONMISSINGOBJECTS]
[RETRYDELAY <seconds>]
{<error> | DEFAULT} {<response>}
<error>
Specifica un errore DDL esplicito da gestire per questa istruzione DDLERROR.
DEFAULT
Specifica un valore predefinito <response> per qualsiasi errore DDL per il quale non esiste un'istruzione DDLERROR esplicita.
<response>
Azione intrapresa da Replicat quando si verifica un DDL <error>. Può essere uno dei nomi riportati di seguito.
ABEND
Eseguire il rollback dell'operazione e terminare l'elaborazione in modo anomalo. ABEND è l'impostazione predefinita.
DISCARD
Registrare l'operazione non riuscita nel file eliminato, ma continuare a elaborare il file DDL successivo.
IGNORE
Ignorare l'errore.
{INCLUDE <inclusion_clause> | EXCLUDE <exclusion_clause>}
Identifica l'inizio di una clausola di inclusione o esclusione che controlla se DDL specifico viene gestito o meno dall'istruzione DDLERROR. Per la sintassi e l'uso, vedere "DDL Filtering Options".
[IGNOREMISSINGOBJECTS |
ABENDONMISSINGOBJECTS] |
Controlla se Extract viene interrotto o meno quando viene emesso DML sugli oggetti che non sono stati trovati nella destinazione. Questa condizione si verifica in genere quando DDL non presente nella configurazione di replica viene emesso direttamente sulla destinazione oppure quando esiste una discrepanza tra le definizioni di origine e destinazione.
IGNOREMISSINGOBJECTS
Causa a Replicat di saltare le operazioni DML sulle tabelle mancanti.
ABENDONMISSINGOBJECTS
Causa a Replicat di interrompere le operazioni DML sulle tabelle mancanti.
[RETRYDELAY <seconds>]
Specifica il ritardo in secondi tra i tentativi di riprovare un'operazione non riuscita. Il valore predefinito è 10 secondi.
Esempi
Esempio 1 DDLERROR Esempio di base
Nell'esempio seguente, l'istruzione DDLERROR fa sì che Replicat ignori l'errore specificato, ma non prima di riprovare l'operazione tre volte a intervalli di dieci secondi. Replicat applica la gestione degli errori alle operazioni DDL eseguite su oggetti i cui nomi soddisfano il carattere jolly tab* (qualsiasi utente, qualsiasi operazione) ad eccezione di quelli che soddisfano tab1*.
DDLERROR 1234 IGNORE RETRYOP MAXRETRIES 3 RETRYDELAY 10 &
INCLUDE ALL OBJTYPE TABLE OBJNAME tab* EXCLUDE OBJNAME tab1*
Per gestire tutti gli errori ad eccezione di tale errore, è possibile aggiungere la seguente istruzione DDLERROR.
DDLERROR DEFAULT ABEND
In questo caso Replicat si interrompe in caso di errori DDL.
Esempio 2 con più istruzioni DDLERROR
L'ordine di elencazione delle istruzioni DDLERROR nel file dei parametri non influisce sulla loro validità a meno che più istruzioni DDLERROR non specifichino lo stesso errore, senza qualificatori aggiuntivi. In questo caso, Replicat utilizza solo il primo elencato. Ad esempio, date le seguenti istruzioni, Replicat interromperà l'errore.
DDLERROR 1234 ABEND
DDLERROR 5678 IGNORE
Con i qualificatori adeguati, tuttavia, la configurazione precedente diventa più utile. Ad esempio:
DDLERROR 1234 ABEND INCLUDE OBJNAME tab*
DDLERROR 5678 IGNORE
In questo caso, poiché esiste un'istruzione INCLUDE, Replicat interromperà solo se un nome oggetto in un'istruzione DDL errata corrisponde al carattere jolly tab*. Replicat ignorerà le operazioni errant che includono qualsiasi altro nome oggetto.