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 thejavawriter.bootoptions
property. Logging initializes immediately when the JVM is initialized while the contents of thegg.classpath
property is actually appended to theclassloader
after the logging is initialized. Second, theclasspath
to correctly load a properties file must be the directory containing the properties file without wildcards appended.
Parent topic: Logging