User Tools

Site Tools


exceptions

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Next revision
Previous revision
exceptions [2016/05/31 11:30] – created z0hpvkexceptions [2025/03/08 22:24] (current) – external edit 127.0.0.1
Line 1: Line 1:
 ===== Exception Handling Setup ===== ===== Exception Handling Setup =====
-<CODE>CREATE TABLE GGATE.EXCEPTIONS (+An Exception table will hold the details of all Conflicts that have occured within GoldenGate.\\ 
 +This is neccessary because Conflict Detection and Resolution (CDR) will be in place. \\ 
 +==== Create Exception Table ==== 
 +As the GGATE user create the EXCEPTIONS table ...\\ 
 +<code>CREATE TABLE GGATE.EXCEPTIONS (
 EXCP_DATE              TIMESTAMP(6), EXCP_DATE              TIMESTAMP(6),
 REP_NAME               VARCHAR2(10), REP_NAME               VARCHAR2(10),
Line 18: Line 22:
 CNT_CDR_CONFLICTS      NUMBER, CNT_CDR_CONFLICTS      NUMBER,
 CNT_CDR_RESOLUTIONS    NUMBER, CNT_CDR_RESOLUTIONS    NUMBER,
-CNT_CDR_FAILED         NUMBER);</CODE>+CNT_CDR_FAILED         NUMBER);</code> 
 + 
 +==== Macro ==== 
 +Now create a macro that will convert GoldenGate environment variables into values for inserting.\\ 
 +Save this macro as a file called exceptions.inc in $GGHOME/dirsql/macros/exceptions.inc ...\\ 
 +<code>MACRO #exceptioncols 
 +BEGIN 
 +excp_date = @DATENOW(), 
 +rep_name = @GETENV ('GGENVIRONMENT', 'GROUPNAME'), 
 +table_name = @GETENV ('GGHEADER', 'TABLENAME'), 
 +errno = @GETENV ('LASTERR', 'DBERRNUM'), 
 +errmsg = @GETENV ('LASTERR', 'DBERRMSG'), 
 +optype = @GETENV ('LASTERR', 'OPTYPE'), 
 +committimestamp = @GETENV ('GGHEADER', 'COMMITTIMESTAMP'), 
 +reccsn = @GETENV ('TRANSACTION', 'CSN'), 
 +recseqno = @GETENV ('RECORD', 'FILESEQNO'), 
 +logrba = @GETENV ('GGHEADER', 'LOGRBA'), 
 +logposition = @GETENV ('GGHEADER', 'LOGPOSITION'), 
 +grouptype = @GETENV ('GGENVIRONMENT', 'GROUPTYPE'), 
 +filename = @GETENV ('GGFILEHEADER', 'FILENAME'), 
 +srcrowid = @GETENV ('RECORD', 'ROWID'), 
 +replag = @GETENV ('LAG', 'SEC'), 
 +cnt_cdr_conflicts = @GETENV ('DELTASTATS','TABLE', @GETENV ('GGHEADER', 'TABLENAME'),'CDR_CONFLICTS'), 
 +cnt_cdr_resolutions = @GETENV ('DELTASTATS','TABLE', @GETENV ('GGHEADER', 'TABLENAME'),'CDR_RESOLUTIONS_SUCCEEDED'), 
 +cnt_cdr_failed = @GETENV ('DELTASTATS','TABLE', @GETENV ('GGHEADER', 'TABLENAME'),'CDR_RESOLUTIONS_FAILED'
 +END;</code> 
 + 
 +==== Replicat Parameter File ==== 
 +Within all 4 replicat parameter files add an "INCLUDE" line to describe the location of the macro file.\\ 
 +Also after every table involved in CDR, place the "MAP" statement below after it.\\ 
 +<code>INCLUDE ./dirprm/macros/exceptions.inc 
 +.... 
 +MAP MAILONLINE.USER_TRANSFER_ITEM, TARGET GGATE.EXCEPTIONS, 
 +    EXCEPTIONSONLY, INSERTALLRECORDS, COLMAP (#exceptioncols());</code>
exceptions.1464694204.txt.gz · Last modified: 2025/03/08 22:23 (external edit)