B ロギングのカスタマイズ
この例では、2つの方法のいずれかを使用した、11.2.1以上のOracle GoldenGateアダプタに対するロギングのカスタマイズ方法について説明します。
-
Javaアダプタ・プロパティの使用
gg.log={ jdk | logback | log4j } gg.log.level={ info | debug | trace } gg.log.classpath={ classpath for logging }
ログ実装プロパティ
gg.log
が設定されていない場合、jdk
オプションがデフォルトです。これは、java.util.logging
(JUL
)が使用されることを指定します。ログ・レベルのデフォルトは、info
です。これをカスタマイズするには、gg.log
を次のいずれかに設定します。-
log4j
- これによって、Log4jおよび適切なslf4j-log4j
バインドが含まれるようクラスパスが自動的に構成されます。 -
logback
-logback
オプションを使用するには、logback JARを手動でダウンロードし、インストール・ディレクトリにコピーする必要があります。あらかじめ定義された場所にJARがコピーされている場合は従前どおり、クラス・パスが自動的に構成されます。詳細は、ggjava/resources/lib/optional/logback/ReadMe-logback.txt
を参照してください。
-
-
JVMオプションの使用
デフォルトのロギングを使用したり、ロギング・プロパティを設定するかわりに、
jvm.bootoptions
を使用してロギングを定義できます。これを行うには、次のいずれかを実行して、構成ファイルを定義するシステム・プロパティを含むようjvm.bootoptions
を設定します。-
log4j
構成ファイルを指定します。jvm.bootoptions=-Dlog4j.configuration=
my-log4j.properties
これによって、ロギング実装のタイプである
gg.log
が暗黙的にlog4j
に設定され、slf4j-log4j12
バインドがクラスパスに追加されます。 -
java.util.logging
プロパティ・ファイルまたはクラスを指定します。jvm.bootoptions=-Djava.util.logging.config.file=
my-logging.properties
これによって
gg.log=jdk
が暗黙的に設定され、java.util.logging
(JUL
)が指定されます。slf4j-jdk14
バインドがクラスパスに追加されます。 -
まず、
logback-core-jar
およびlogback-classic-jar
をダウンロードし、ggjava/resources/lib/optional/logback
にコピーします。次に、logback構成ファイルを指定します。jvm.bootoptions=-Dlogback.configuationFile=
my-logback.xml
これによって、
gg.log=logback
が暗黙的に設定され、logback-classic
およびlogback-core
がクラスパスに追加されます。
これらは
gg.log
およびgg.log.classpath
の暗黙的な設定で、プロパティ・ファイルでこれらのいずれかのプロパティを明示的に設定することでオーバーライドされます。特定のJARを含むようJVMクラスパスを設定することでも、ロギング・クラスパスはオーバーライドされます。jvm.bootoptions=...-Djava.class.path=
mypath
/my1
.jar:mypath2
/my2
.jar...ノート:
特定のJARを含むようにJVMクラスパスを設定すると、クラスパスで重複する、場合によっては競合する実装が発生する可能性があります。
-
B.1 ADD HEARTBEATTABLE
このコマンドは、ggjava.jar
をjava -jar ggjava.jar ADD HEARTBEATTABLE RETENTION_TIME 30
のように実行して、dirprm/heartbeat.properties
を作成することによりハートビート機能をグローバルに有効にします。
ADD HEARTBEATTABLE [, FREQUENCY 秒数] [, RETENTION_TIME 日数] | [, PURGE_FREQUENCY 日数]
Extractが取得するためにHEARTBEAT_SEED
表を定期的に更新するジョブを作成するには、FREQUENCY
が必要です。ビッグ・データ抽出からのハートビート・レコードの生成は、後の設計で説明します。
RETENTION_TIME
は、履歴表で保存時間を過ぎたハートビート・エントリをパージするタイミングを指定します。デフォルトは30日です。
スケジュールできる実際のジョブが存在しないため、PURGE_FREQUENCY
は必要ありません。
B.2 ALTER HEARTBEAT TABLE
このコマンドは、ggjava.jarをjava -jar ggjava.jar ALTER HEARTBEATTABLE RETENTION_TIME 10
のように実行して、dirprm/heartbeat.properties
のheartbeat.retention_time
値を更新します。
ALTER HEARTBEATTABLE
[, FREQUENCY number in seconds]
[, RETENTION_TIME number in days] |
[, PURGE_FREQUENCY number in days]
FREQUENCY is not applicable and will be ignored
RETENTION_TIME update heartbeat.retention_time in dirprm/heartbeat.properties; will take affect on the next restart
PURGE_FREQUENCY is not applicable and will be ignored
B.4 概要
自動ハートビート機能を使用するには、まずGLOBALS
ファイルにGGSCHEMA
を指定する必要があります。その後、ハートビート表の機能は、GLOBALS
ファイルか、ExtractプロセスまたはReplicatプロセスのどちらかで有効または無効にできます。デフォルトでは有効です。
GLOBALS
ファイルの内容は次のとおりです。
GLOBALS
GGSCHEMA <schemaname>
ENABLEHEARTBEATTABLE
DISABLEHEARTBEATTABLE
Extract Parameter
ENABLEHEARTBEATTABLE
DISABLEHEARTBEATTABLE
Replicat Parameter
ENABLEHEARTBEATTABLE
DISABLEHEARTBEATTABLE
Tables
<source schema>.GG_HEARTBEAT_SEED
<target schema>.GG_HEARTBEAT
<target schema>.GG_HEARTBEAT_HISTORY
Views
<target schema>.GG_LAG
<target schema>.GG_LAG_HISTORY
GG_HEARTBEAT_SEED
表を更新します。ハートビートLCRのパスをトラッキングするために、各プロセスは次のようにその名前をハートビートLCRの列に書き込みます。
- Extract取得プロセスは、その名前を
incoming_extract
列に書き込みます。 - Extractポンプ・プロセスは、その名前を
routing_path
列に追加します。 - Replicatプロセスは、
incoming_replicat
列に書き込みます。
ノート:
各プロセスは、ハートビートLCRのパスに沿ってタイムスタンプ・フィールドを更新します。ReplicatはハートビートLCRをGG_HEARTBEAT_SEED
からGG_HEARTBEAT
にUPSERT
操作として適用し、GG_HEARTBEAT_HISTORY
にINSERT
操作として適用します。ターゲット・データベース内のスケジュール済ジョブは定期的に、ADD HEARTBEATTABLE
に定義されている保存時間よりも古いエントリを履歴表からパージします。
B.5 GGSCIコマンド
ADD HEARTBEATTABLE
およびINFO HEARTBEATTABLE
とその列について説明します。
ADD HEARTBEATTABLE [, FREQUENCY number in seconds] [, RETENTION_TIME number in days] | [, PURGE_FREQUENCY number in days]
- ハートビート・シード表、ハートビート表およびハートビート履歴表の作成
GG_LAG
ビューおよびGG_LAG_HISTORY
ビューの作成- スケジューラ・ジョブによってコールされる
GG_UPDATE_HB_TAB
およびGG_PURGE_HB_TAB
プロシージャの作成 - ハートビートとシード表の更新および履歴表のパージを定期的に実行するスケジューラ・ジョブの作成。
- シード表を移入します。
INFO HEARTBEATTABLE
LAG REPLICAT [, group_name[threadID]name][,GLOBAL]