6.2 Logging
Logging is essential to troubleshooting Oracle GoldenGate for Distributed Applications and Analytics (GG for DAA) integrations with GG for DAA targets.
This topic details how GG for DAA integration log and the best practices for logging.
Parent topic: Configure
6.2.1 About Replicat Process Logging
Oracle GoldenGate for Distributed Applications and Analytics (GG for DAA) integrations leverage the Java Delivery functionality described in the Delivering Java Messages. In this setup, either a Oracle GoldenGate Replicat process loads a user exit shared library. This shared library then loads a Java virtual machine to thereby interface with targets providing a Java interface. So the flow of data is as follows:
Replicat Process —>User Exit—> Java Layer
It is important that all layers log correctly so that users can review the logs to troubleshoot new installations and integrations. Additionally, if you have a problem that requires contacting Oracle Support, the log files are a key piece of information to be provided to Oracle Support so that the problem can be efficiently resolved.
A running Replicat process creates or appends log files into the
GoldenGate_Home/dirrpt
directory that adheres to the following naming
convention:
process_name.rpt. If a
problem is encountered when deploying a new Oracle
GoldenGate process, this is likely the first log
file to examine for problems. The Java layer is
critical for integrations with GG for DAA
applications.
Parent topic: Logging
6.2.2 About Java Layer Logging
The Oracle GoldenGate for Distributed Applications and Analytics (GG for DAA) product provides flexibility for logging from the Java layer. The recommended best practice is to use Log4j logging to log from the Java layer. Enabling simple Log4j logging requires the setting of two configuration values in the Java Adapters configuration file.
gg.log=log4j gg.log.level=INFO
These gg.log settings will result in a Log4j file to be created in
the
GoldenGate_Home/dirrpt
directory that adheres to this naming convention,
{GROUPNAME}.log. The
supported Log4j log levels are in the following
list in order of increasing logging
granularity.
-
OFF -
FATAL -
ERROR -
WARN -
INFO -
DEBUG -
TRACE
Selection of a logging level will include all of the coarser logging levels as well (that is, selection of WARN means that log messages of FATAL, ERROR and WARN will be written to the log file). The Log4j logging can additionally be controlled by separate Log4j properties files. These separate Log4j properties files can be enabled by editing the bootoptions property in the Java Adapter Properties file. These three example Log4j properties files are included with the installation and are included in the classpath:
log4j-default.properties log4j-debug.properites log4j-trace.properties
You can modify the bootoptions in any of the files as follows:
javawriter.bootoptions=-Xmx512m -Xms64m
-Djava.class.path=.:ggjava/ggjava.jar
-Dlog4j.configurationFile=samplelog4j.properties
You can use your own customized Log4j properties file to control logging. The customized Log4j properties file must be available in the Java classpath so that it can be located and loaded by the JVM. The contents of a sample custom Log4j properties file is the following:
# Root logger option
log4j.rootLogger=INFO, file
# Direct log messages to a log file
log4j.appender.file=org.apache.log4j.RollingFileAppender
log4j.appender.file.File=sample.log
log4j.appender.file.MaxFileSize=1GB
log4j.appender.file.MaxBackupIndex=10
log4j.appender.file.layout=org.apache.log4j.PatternLayout
log4j.appender.file.layout.ConversionPattern=%d{yyyy-MM-dd HH:mm:ss} %-5p %c{1}:%L - %m%n
There are two important requirements when you use a custom Log4j properties file. First, the path to the custom Log4j properties file must be included in the javawriter.bootoptions property. Logging initializes immediately when the JVM is initialized while the contents of the gg.classpath property is actually appended to the classloader after the logging is initialized. Second, the classpath to correctly load a properties file must be the directory containing the properties file without wildcards appended.Parent topic: Logging