Oracle GoldenGate Activity Logging

Since the publication of my latest book Oracle GoldenGate 12c Implementer’s Guide, I have discovered a great feature that has existed in OGG from version 11.1.1.0.

Activity Logging provides a verbose tracing facility that enables dynamic activity logging of any GoldenGate process. The feature is very useful for obtaining additional debug information and is enabled by placing an XML initialisation file in the OGG Home having the following filename naming convention and content.

gglog-<process>.dmp

<?xml version="1.0" ?>
- <configuration reset="true">
- <appender name="traceini" class="RollingFileAppender">
           <param name="BufferedIO" value="false" />
           <param name="Append" value="true" />
           <param name="File" value="traceLog_%I_%A" />
           <param name="MaxBackupIndex" value="99" />
           <param name="MaxFileSize" value="10MB" />
- <layout class="PatternLayout">
           <param name="Pattern" value="%d{%m/%d %H:%M:%S} [%C{1}:%L] %m%n" />
  </layout>
  </appender>
- <logger name="gglog.std">
     <level value="all" />
     <appender-ref name="traceini" />
  </logger>
- <logger name="gglog.std.utility">
     <level value="off" />
     <appender-ref name="traceini" />
 </logger>
</configuration>

 

<process> can be replaced with either of the following options, depending on the extent of your tracing requirements:

gglog-EOLTP.xml            — to trace the extract process named EOLTP
gglog-extract.xml           — to trace all extract processes
gglog-ROLAP.xml           — to trace the replicat process named ROLAP
gglog-replicat.xml          — to trace all replicat processes
gglog-mgr.xml                — to trace the MGR process
gglog-server.xml            — to trace the server collector process

As soon as any of the above files are copied to the OGG Home directory and the OGG process is running, tracing will immediately start and produce a traceLog file containing logdump style output.

Below is an example traceLog for the Replicat ROLAP process:

 

09/16 02:18:45.392 [processloop.cpp:204] process_replicat_loop:
 main loop ----------------------------------------------*
 09/16 02:18:45.392 [etparse.c:1007] token header : hdr_ind : 000000: 47 |G |
 09/16 02:18:45.392 [etparse.c:1008] token header : info : 000000: 01 |. |
 09/16 02:18:45.392 [etparse.c:1009] token header : length : 235
 09/16 02:18:45.392 [etparse.c:1015] token trailer : hdr_ind : 000000: 5a |Z |
 09/16 02:18:45.392 [etparse.c:1016] token trailer : info : 000000: 01 |. |
 09/16 02:18:45.392 [etparse.c:1017] token trailer : length : 60160
 09/16 02:18:45.392 [api.c:4373] et_result: 0
 09/16 02:18:45.392 [api.c:4374] ET rec ggs tkn:
 000000: 52 00 14 00 41 41 44 7a 72 45 41 41 45 41 41 41 |R...AADzrEAAEAAA|

The trace log file is created dynamically in the OGG Home and has the following naming convention, based on the type of activity logging previously specified.

traceLog_EOLTP_extract
traceLog_extract_extract
traceLog_ROLAP_replicat
traceLog_replicat_replicat
traceLog_mgr_mgr
traceLog_server_server

For Linux installations, tracing may be disabled by renaming the files as follows:

cd $OGG_HOME

mv gglog-EOLTP.xml gglog-EOLTP.xml.txt

Note: It is important to only trace processes when necessary and to disable the activity logging to avoid performance and storage issues. In the above XML example, we specify a 10MB trace log file size limit that when hit, trace data will continue to be written to a new log file with a sequence number appended to the file name.

Warning: Don’t rename the file to gglog.xml and move it to the OGG Home directory as tracing will immediately begin on all running OGG processes.

[contact-form][contact-field label=’Name’ type=’name’ required=’1’/][contact-field label=’Email’ type=’email’ required=’1’/][contact-field label=’Website’ type=’url’/][contact-field label=’Comment’ type=’textarea’ required=’1’/][/contact-form]

 

Leave a Reply

Your email address will not be published. Required fields are marked *