DML/DDL CHANGES ARE REPLICATED TWICE ON THE EXCEPTION TABLE WHEN USING AN EXCEPTION HANDLER (Doc ID 1557347.1)

Last updated on MAY 17, 2017

Applies to:

Oracle GoldenGate - Version 11.2.1.0.1 and later
Information in this document applies to any platform.

Symptoms

<p >*Symptoms
<span >Briefly describe the symptoms of the problem. Remember to delete any customer specific information



DDL/DML  changes are applied on target, but the sentence is executed twice once against the correct table but additionally the change is on the Oracle GoldenGate exception table as well

eg:

When the DDL is a CREATE TABLE the statement will be created at target but additionally an error is raised because it says the exception table already exits.
In the same way, if a new column in added to a table, the change is applied on target but the column is tried to be added to the exception table. When the column is dropped from target it fails because does not find the column in the exception table.

Another scenario would be an unexpected:

WARNING OGG-01154  SQL error 1 mapping APT.DPS_CONTACT_INFO to APT.DPS_CONTACT_INFO OCI Error ORA-00001: unique constraint (APT.DPS_CONTACT_INFO_P) violated (status = 1).

Changes

Replicat parameter file contains:

MAP APT.* TARGET APT.*;

MAP APT.* , TARGET OGG.EXCEPTION_TABLE,
COLMAP ( rep_name = "REP_11"
, table_name = @GETENV ("GGHEADER", "TABLENAME")
, errno
, = @GETENV ("LASTERR", "DBERRNUM")
, dberrmsg = @GETENV ("LASTERR", "DBERRMSG")
, optype = @GETENV ("LASTERR", "OPTYPE")
, errtype = @GETENV ("LASTERR", "ERRTYPE")
, logrba = @GETENV ("GGHEADER", "LOGRBA")
, logposition = @GETENV ("GGHEADER", "LOGPOSITION")
, committimestamp = @GETENV ("GGHEADER", "COMMITTIMESTAMP"))
, INSERTALLRECORDS
, EXCEPTIONSONLY;


Cause

Sign In with your My Oracle Support account

Don't have a My Oracle Support account? Click to get started

My Oracle Support provides customers with access to over a
Million Knowledge Articles and hundreds of Community platforms