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.jarjava -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.propertiesheartbeat.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.3 ビッグ・データ用の自動ハートビート

この章の内容は次のとおりです。

トピック:

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
ソース・データベース内のスケジュール済ジョブは定期的に、対応するデータベースに接続されたすべてのExtractプロセスで取得されたGG_HEARTBEAT_SEED表を更新します。ハートビートLCRのパスをトラッキングするために、各プロセスは次のようにその名前をハートビートLCRの列に書き込みます。
  • Extract取得プロセスは、その名前をincoming_extract列に書き込みます。
  • Extractポンプ・プロセスは、その名前をrouting_path列に追加します。
  • Replicatプロセスは、incoming_replicat列に書き込みます。

ノート:

各プロセスは、ハートビートLCRのパスに沿ってタイムスタンプ・フィールドを更新します。ReplicatはハートビートLCRをGG_HEARTBEAT_SEEDからGG_HEARTBEATUPSERT操作として適用し、GG_HEARTBEAT_HISTORYINSERT操作として適用します。ターゲット・データベース内のスケジュール済ジョブは定期的に、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プロシージャの作成
  • ハートビートとシード表の更新および履歴表のパージを定期的に実行するスケジューラ・ジョブの作成。
  • シード表を移入します。
FREQUENCY

ハートビート・シード表とハートビート表の更新頻度を指定します。たとえば、ハートビート・レコードが生成される頻度です。デフォルトは60秒です。

RETENTION_TIME

履歴表で保存時間を過ぎたハートビート・エントリをパージするタイミングを指定します。デフォルトは30日です。

PURGE FREQUENCY

保存時間を過ぎた表エントリを履歴表から削除するパージ・スケジューラの実行頻度を指定します。デフォルトは1日です。

INFO HEARTBEATTABLE

LAG REPLICAT [, group_name[threadID]name][,GLOBAL]
group_name[threadID]

1つのReplicatグループ名、または複数のグループを指定するワイルドカード(*)。たとえば、T*と指定すると、名前がTから始まるすべてのReplicatグループのラグが表示されます。

完全名で識別される、調整Replicatのスレッド。たとえば、fin003では、調整Replicat finのスレッド3のラグが表示されます。

GLOBAL
完全名で識別される、調整Replicatのスレッド。たとえば、fin003では、調整Replicat finのスレッド3のラグが表示されます。