User Tools

Site Tools


exceptions

Differences

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

Link to this comparison view

Both sides previous revisionPrevious revision
Next revision
Previous revision
exceptions [2016/05/31 11:30] z0hpvkexceptions [2025/03/08 22:24] (current) – external edit 127.0.0.1
Line 1: Line 1:
 ===== Exception Handling Setup ===== ===== Exception Handling Setup =====
 +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 ( <code>CREATE TABLE GGATE.EXCEPTIONS (
 EXCP_DATE              TIMESTAMP(6), EXCP_DATE              TIMESTAMP(6),
Line 19: Line 23:
 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.1464694222.txt.gz · Last modified: 2025/03/08 22:23 (external edit)