Gestione degli errori di replica durante le operazioni DML
Per controllare il modo in cui Replicat risponde a un errore durante una delle istruzioni DML, utilizzare il parametro REPERROR nel file dei parametri Replicat. È possibile utilizzare REPERROR come parametro globale o come parte di un'istruzione MAP. È possibile gestire la maggior parte degli errori in modo predefinito (ad esempio, per interrompere l'elaborazione) con le opzioni DEFAULT e DEFAULT2, nonché gestire altri errori in modo specifico.
Di seguito è riportato l'intervallo di risposte REPERROR.
-
ABEND: esegue il rollback della transazione e interrompe l'elaborazione. -
DISCARD: registra l'errore nel file eliminato e continua l'elaborazione. -
EXCEPTION: inviare l'errore per l'elaborazione delle eccezioni. -
IGNORE: ignora l'errore e continua l'elaborazione. -
RETRYOP [MAXRETRIESn]: eseguire di nuovo l'operazione, facoltativamente fino a un numero di volte specifico. -
TRANSABORT [, MAXRETRIESn] [, DELAY[C]SECSn]: interrompe la transazione e riposiziona all'inizio, facoltativamente fino a un numero specifico di volte a intervalli specifici. -
RESET: rimuove tutte le regoleREPERRORprecedenti e ripristina il valore predefinito diABEND. -
TRANSDISCARD: elimina l'intera transazione di origine replicata se qualsiasi operazione all'interno di tale transazione, incluso il commit, causa un errore Replicat elencato nella specifica degli errori. Questa opzione è utile quando il controllo dei vincoli di integrità è disabilitato sulla destinazione. -
TRANSEXCEPTION: esegue il mapping delle eccezioni per ogni record della transazione di origine replicata, in base alla relativa istruzione di mappatura delle eccezioni, se qualsiasi operazione all'interno di tale transazione (incluso il commit) causa un errore Replicat elencato nella specifica degli errori.
La maggior parte delle opzioni opera sul singolo record che ha generato un errore e Replicat elabora le altre operazioni riuscite nella transazione. Le eccezioni sono TRANSDISCARD e TRANSEXCEPTION: queste opzioni interessano tutti i record di una transazione se un record di tale transazione genera un errore. (L'opzione ABEND si applica anche all'intera transazione, ma non applica la gestione degli errori.)
Per informazioni sulla sintassi e l'uso, vedere REPERROR.