プライマリ・コンテンツへ移動
Oracle® Fusion Middleware Oracle GoldenGate for Big Dataの管理
リリース12c (12.3.0.1)
E85689-01
目次へ移動
目次

前
次

7 Java配信の構成

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

トピック:

7.1 プロパティ・ファイルでのJREの構成

現在のリリースのOracle GoldenGate Java配信には、Java 8が必要です。Javaと必須のJava共有ライブラリに正しくアクセスする方法は、Javaの構成に関する項を参照してください。Java用Oracle GoldenGateメインJAR(ggjava.jar)の場所を指すようアダプタ・プロパティ・ファイルを変更します。必要に応じて追加のJVMランタイム起動オプション(起動時にJVMに直接渡される)を設定します。

jvm.bootoptions=-Djava.class.path=.:ggjava/ggjava.jar -Xmx512m -Xmx64m

特に次のオプションに注意してください。

  • java.class.pathには、コア・アプリケーション(ggjava/ggjava.jar)へのパス指定が含まれている必要があります。現在のディレクトリ(.)は、クラスパスにも含まれている必要があります。ロギングはJVMのロード時に初期化されるので、java.class.path変数はロギング・プロパティ・ファイル(log4jプロパティ・ファイルなど)への任意のパス指定を含んでいる必要があります。ロギング機能に必要な依存関係JARはggjava.jarに含まれており、明示的に含める必要はありません。パス指定では、Oracle GoldenGateインストール・ディレクトリを基準にファイルおよびディレクトリを参照し、Javaプロパティ・ファイル、Velocityテンプレートおよびdirprmサブディレクトリ内の他のクラスパス・リソースを格納できます。Javaアプリケーション・プロパティ・ファイルでクラスパスに追加することもできます。ハンドラ依存関係JARのパス指定は、ここでも追加できます。ただし、ハンドラの依存関係はgg.classpath変数を使用して追加するほうが、ベスト・プラクティスと考えられています。

  • jvm.bootoptionsプロパティでは、JVMの初期ヒープ・サイズ(Xms)とJVMの最大ヒープ・サイズ(Xmx)も制御できます。最大ヒープ・サイズを増やすと、ガベージ・コレクションの頻度が減るため、パフォーマンスが向上することがあります。また、Javaのメモリー不足例外が発生する場合には、最大ヒープ・サイズを増やす必要があります。

システム用にプロパティ・ファイルを正しく構成したら、通常変更しません。構成オプションの詳細は、「共通プロパティ」を参照してください。

7.2 Java配信のためのOracle GoldenGateの構成

Java配信は、Oracle GoldenGate Replicatプロセスと互換性があります。トランザクション・データは、Oracle GoldenGate証跡ファイルから読み込まれ、JNIインタフェースを超えてOracle GoldenGate Java配信モジュールに配信されます。データは、JNIインタフェースを使用してOracle GoldenGate Java配信モジュールに転送されます。Java配信モジュールは、データを各種のターゲットにストリーミングできるように構成が可能です。Oracle GoldenGate Javaアダプタ製品でサポートされているターゲットには、JMS、ファイル書込み、カスタム統合が含まれます。Oracle GoldenGate for Big Data製品には、ビッグ・データ・ターゲットへのそれらの統合およびストリーミング機能がすべて含まれています。

7.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に設定すると、ソース証跡ファイル(ソース・データベース)からの元のトランザクション境界が維持されます。


表7-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の管理for Windows and UNIX』でデータのマッピングと操作に関する項を参照して、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に設定されている値に到達する前にトランザクションを適用することがあります。


7.3 Javaハンドラの構成

ハンドラは、Oracle GoldenGate Java配信モジュールにプラグインされるターゲット・アプリケーションとの統合機能です。JMSやビッグ・データ・アプリケーションのような統合ターゲットにデータを送信する機能を処理しているのが、Javaハンドラです。Java配信とJavaハンドラを構成するには、Javaアダプタ・プロパティ・ファイルが使用されます。構成をテストするには、組込みファイル・ハンドラを使用できます。次に、プロパティ例とプロパティの説明(#で始まるコメント行)を示します。

# the list of active handlers
gg.handlerlist=myhandler
# set properties on 'myhandler'
gg.handler.myhandler.type=file
gg.handler.myhandler.format=tx2xml.vm
gg.handler.myhandler.file=output.xml

このプロパティ・ファイルでは、次のように宣言しています。

  • アクティブ・イベント・ハンドラ。この例では、myhandlerという名前の1つのイベント・ハンドラがアクティブです。複数のハンドラをカンマで区切って指定できます。たとえば、gg.handlerlist=myhandler, yourhandlerです。

  • ハンドラの構成。この例では、myhandlerfileタイプのハンドラと宣言されています(gg.handler.myhandler.type=file)。

    注意:

    設定可能な有効なプロパティのリストは、各タイプのハンドラ(JMSハンドラ、ファイル・ライター・ハンドラなど)のドキュメントを参照してください。

  • 出力の形式は、Velocityテンプレートtx2xml.vmによって定義されます。メッセージ形式を定義する独自のカスタム・テンプレートを指定できます。Javaクラスパスを基準としてテンプレートのパスを指定します。

このプロパティ・ファイルは、実際、取得されたトランザクションを出力ファイルoutput.xmlに書き込む完全な例です。他のハンドラ・タイプは、キーワードjms_text(またはjms)、jms_mapsinglefile(ロールしないファイル)などを使用して指定できます。カスタム・ハンドラを実装できます。この場合、タイプはハンドラのJavaクラスの完全修飾名です。Oracle GoldenGateビッグ・データ・パッケージには、ビッグ・データ・ターゲットの各タイプが組み込まれています。詳細は、『Oracle GoldenGate for Big Dataの統合』を参照してください。

注意:

設定可能な有効なプロパティのリストは、各タイプのハンドラ(JMSハンドラ、ファイル・ライター・ハンドラなど)のドキュメントを参照してください。