OGG Integrated Replicat TRANSEXCEPTION Does Not Write Conflict Records To Exception Table Always (Doc ID 2291745.1)

Last updated on AUGUST 01, 2017

Applies to:

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

Symptoms

When you are using transexception in IR, and expect conflict transactions to be pushed to exception table but not all the exception records are correctly written into exceptional table , then this issue may have been encountered.

Test Case:  

replicat parameters:

REPERROR (default, transexception)
MAP hshi.test, target test.test comparecols(ON UPDATE ALL, ON DELETE ALL);
MAP hshi.test, target ogguser.gg_excpt_test
,EXCEPTIONSONLY
,INSERTALLRECORDS
,COLMAP ( usedefaults, table_name = @GETENV ('GGHEADER','TABLENAME')
,database_name = @GETENV('DBENVIRONMENT','DBNAME')
,rep_name = @GETENV ('GGHEADER','BEFOREAFTERINDICATOR')
,TRANSACTION_SCN = @GETENV('ORATRANSACTION','SCN'));

 

Source Table:
SQL> select * from hshi.test;
ID NAME CREATE_TM
---------- -------------------- ---------
1 AA 01-MAR-17
2 BB 28-FEB-17
3 CC 02-MAR-17

Target Table:
SQL> select * from test.test;
ID NAME CREATE_TM
---------- -------------------- ---------
1 NONE 03-MAR-17

SQL>truncate table ogguser.gg_excpt_test; -- clean up exception table first
.
SQL> begin
2 for i in 1 .. 10 loop
3 update hshi.test set name=i where id=2;
4 commit;
5 end loop;
6 end;
7 /

SQL> select id, name, REP_NAME from gg_excpt_test;
ID NAME REP_NAME
---------- -------------------- ------------------------------
2 1 BEFORE
2 2 AFTER
2 4 BEFORE
2 5 AFTER
2 7 BEFORE
2 8 AFTER

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