9.4.1.2.1 Java配信のためのReplicatの構成

Oracle GoldenGate Replicatプロセスは、トランザクション・データをJavaモジュール用のOracle GoldenGateに送信するように構成できます。Replicatは、ローカルの証跡(dirdat/aaなど)を消費して、データをJava配信モジュールに送信します。Javaモジュールは、すべてのデータを処理して、それを必要なターゲットに適用します。

次に、Replicatプロセスを追加する例を示します。

ADD REPLICAT javarep, EXTTRAIL ./dirdat/aa

前述のプロセス名と証跡名は、任意の有効な名前で置き換えます。プロセス名は8文字以下、証跡名は2文字である必要があります。Replicatパラメータ・ファイル(javarep.prm)で、ユーザー・イグジット・ライブラリの場所を指定します。

Replicatプロセスは、アプリケーションにトランザクションのグループ化が組み込まれています。トランザクションのグループ化は、データをターゲット・データベースにストリーミングするとき、パフォーマンスを大きく改善する場合があります。トランザクションのグループ化は、データをビッグ・データ・アプリケーションにストリーミングするときにも、パフォーマンスを大きく改善する場合があります。トランザクションのグループ化を制御するReplicatパラメータは、Replicat構成ファイルにあるGROUPTRANSOPS変数です。この変数のデフォルト値は1000で、Replicatプロセスは1000個の操作を1つのターゲット・トランザクションにグループ化しようとします。パフォーマンス・テストによると、GROUPTRANSOPSを大きくするほど、ビッグ・データ・アプリケーションにデータをストリーミングするときのパフォーマンスは向上することがわかっています。GROUPTRANSOPS変数を1に設定すると、ソース証跡ファイル(ソース・データベース)からの元のトランザクション境界が維持されます。

表9-1 ユーザー・イグジットReplicatのパラメータ

パラメータ 説明
REPLICAT javarep

すべてのReplicatパラメータ・ファイルはReplicat名で始まります

SOURCEDEFS ./dirdef/tcust.def

(オプション)入力の証跡ファイルにメタデータ・レコードが含まれていない場合、Replicatプロセスには証跡データを記述したメタデータが必要です。これは、データベースまたはソース定義ファイルから取得します。このメタデータは、読み取る対象の証跡(./dirdat/aa)の列名およびデータ型を定義します。

TARGETDB LIBFILE libggjava.so SET properties= dirprm/javarep.properties

TARGETDB LIBFILE libggjava.soパラメータは、Javaモジュールを初期化するトリガーとして機能します。Javaプロパティ・ファイルを指定するSET句は、オプションです。指定した場合、これにはJavaモジュールのプロパティ・ファイルを示す絶対パスまたは相対パス(Replicat実行可能ファイルからの相対パス)が含まれます。デフォルト値は、dirprmディレクトリのreplicat_name.propertiesです。

MAP schema.*, TARGET *.*;

Javaモジュールに渡す表。含まれていない表はスキップされます。ソース表からターゲット表へのマッピングが必要な場合、『Oracle GoldenGateの管理』の「データのマッピングおよび操作」を参照して、MAP source_specification TARGET target_specificationを使用できます。

GROUPTRANSOPS 1000

ソース・トランザクションを1つの大きいターゲット・トランザクションにグループ化して、パフォーマンスを改善します。GROUPTRANSOPSの1000はデフォルト設定です。GROUPTRANSOPSでは、ソース・トランザクションの分割を回避するために、絶対値ではなく最小値を設定します。Replicatは、グループ内の最後のソース・トランザクションからすべての操作を受信するまで待機してから、ターゲット・トランザクションを適用します。

たとえば、トランザクション1に200の操作が含まれ、トランザクション2に400の操作が含まれ、トランザクション3に500の操作が含まれている場合、GROUPTRANSOPSがデフォルトの1,000に設定されているとしても、Replicatトランザクションには1,100すべての操作が含まれることになります。逆に、トレイルに処理するデータが残っていなければ、ReplicatはGROUPTRANSOPSに設定されている値に到達する前にトランザクションを適用することがあります。