9.1.8 Java Message Service

ここでは、Oracle GoldenGate for Distributed Applications and Analytics (GG for DAA)を使用したJava Message Service (JMS)メッセージの取得およびOracle GoldenGate証跡への書込みについて説明します。

9.1.8.1 前提条件

9.1.8.1.1 ソース・タイプを検出するための資格証明ストア・エントリの設定

JMS取得

Kafkaと同様に、ソース・タイプを検出するために、ユーザーは接頭辞jms://を使用して資格証明ストア・エントリを作成できます。

ノート:

資格証明ストア・エントリは、「管理サービス」の「DB接続」で設定できます。
alter credentialstore add user jms:// password <anypassword> alias jms
Extractパラメータ・ファイルでSOURCEDBパラメータがUSERIDALIASオプションとともに指定されていない場合、ソース・タイプはJMSとみなされ、これを示す警告メッセージがログに記録されます。

9.1.8.2 Oracle GoldenGate Java配信

Oracle GoldenGateによって取得されたトランザクション・データは、Oracle GoldenGate Java APIを介して、リレーショナル・データベース以外のターゲットに配信できます(JMS (Java Message Service)、ディスクに書き込まれたファイル、Oracle GoldenGate for Distributed Applications and Analytics (GG for DAA)アプリケーションへのデータのストリーミング、またはカスタム・アプリケーションJava APIとの統合など)。Oracle GoldenGate Java配信は、ExtractまたはReplicatプロセスと連携できます。ベスト・プラクティスとして、Oracle GoldenGate Replicatプロセスを使用してください。Oracle GoldenGate Java配信には依存関係としてJava 8が必要です。

Java用Oracle GoldenGateには、Oracle GoldenGate ReplicatプロセスからJavaコードを実行する機能があります。JavaのためのOracle GoldenGateを使用するには、次の条件が満たされている必要があります。

  • C/C++で実装され、Oracle GoldenGate Replicatプロセスの拡張モジュールを統合している動的リンク・ライブラリまたは共有ライブラリ。

  • Oracle GoldenGate Java APIを構成するJavaライブラリのセット(JAR)。このJavaフレームワークは、Java Native Interface (JNI)を介してReplicatと通信します。

  • Java 8がインストールされており、Oracle GoldenGate Java配信のプロセス(複数も可)をホストしているマシンでアクセスできる必要があります。Javaとその関連ライブラリを解決するには、環境変数が正しく設定されている必要があります。

9.1.8.3 メッセージ取得の構成

この章では、JMSメッセージを取得するVAM Extractの構成方法について説明します。

9.1.8.3.1 Oracle GoldenGate VAMメッセージの取得

Oracle GoldenGate VAMのメッセージ取得は、Oracle GoldenGate Extractプロセスでのみ機能します。Oracle GoldenGateのメッセージの取得では、JMSメッセージングに接続してメッセージを解析し、メッセージ・データからOracle GoldenGate証跡を作成するOracle GoldenGate ExtractプロセスにVAMインタフェースを介して送信します。これによって、ターゲット・データベース用に稼働しているOracle GoldenGateシステムにJMSメッセージが配信されます。Oracle GoldenGate VAMのメッセージ取得には、Java 8が必須の依存関係です。

Oracle GoldenGate JMSメッセージ取得を使用するには、Oracle GoldenGate Extractプロセスにアタッチされ、動的にリンクされた共有VAMライブラリが必要です。

9.1.8.3.1.1 メッセージ取得構成オプション
メッセージ取得の3つの部分を構成するオプションは次のとおりです。
  • メッセージ接続: プロパティ・ファイルの値によって、JMSクライアントのJavaクラスパス、JMSソース宛先名、JNDI接続プロパティ、セキュリティ情報などの接続プロパティが設定されます。
  • 解析: プロパティ・ファイルの値によって、固定幅、カンマ区切りまたはXMLのメッセージの解析ルールが設定されます。これには、使用されるデリミタ、トランザクションの先頭と末尾の値、日付形式などの設定があります。
  • VAMインタフェース: VAM、dllまたはsoライブラリを識別するパラメータおよびプロパティ・ファイルがOracle GoldenGateコアExtractプロセス用に設定されます。
9.1.8.3.1.2 一般的な構成

一般的な構成では、Oracle GoldenGate JavaアダプタはJMSメッセージを受信します。JMSプロデューサがメッセージを作成し、それをOracle GoldenGate JMSハンドラが受信します。これらのメッセージは、その後、メッセージ取得VAMを使用してExtractプロセスに送信されます。このプロセスで、そのデータをOracle GoldenGate証跡に書き込みます。この証跡は、ターゲットOracle GoldenGateインスタンス(そこでターゲット・データベースを更新する)に送信されます。

9.1.8.3.2 Oracle GoldenGate VAMメッセージの取得

Oracle GoldenGate VAMのメッセージ取得は、Oracle GoldenGate Extractプロセスでのみ機能します。Oracle GoldenGateのメッセージの取得では、JMSメッセージングに接続してメッセージを解析し、メッセージ・データからOracle GoldenGate証跡を作成するOracle GoldenGate ExtractプロセスにVAMインタフェースを介して送信します。これによって、ターゲット・データベース用に稼働しているOracle GoldenGateシステムにJMSメッセージが配信されます。Oracle GoldenGate VAMのメッセージ取得には、Java 8が必須の依存関係です。

Oracle GoldenGate JMSメッセージ取得を使用するには、Oracle GoldenGate Extractプロセスにアタッチされ、動的にリンクされた共有VAMライブラリが必要です。

9.1.8.3.3 VAM Extractの構成

JMS取得は、Oracle GoldenGate Extractプロセスでのみ機能します。Javaメッセージ取得アプリケーションを実行するには、次のものが必要です。

  • Java用Oracle GoldenGateアダプタ

  • Extractプロセス

  • メッセージ取得用に構成されたExtractパラメータ・ファイル

  • ソース定義ファイルなどの受信データ形式の説明。

  • Java 8がホスト・マシンにインストールされていること

9.1.8.3.3.1 Extractの追加

メッセージ取得VAMをOracle GoldenGateインストールに追加するには、GGSCIコマンドを使用してExtractとExtractが作成する証跡を追加します。

ADD EXTRACT jmsvam, VAM
ADD EXTTRAIL dirdat/id, EXTRACT jmsvam, MEGABYTES 100

プロセス名(jmsvam)は、8文字以下のプロセス名に置き換えます。証跡識別子(id)は、任意の2文字です。

ノート:

BEGINEXTRBAなどのExtractの位置を設定するコマンドは、メッセージ取得に対してサポートされません。Extractの再開では、常にメッセージ・キューの末尾からメッセージを読み取ります。

9.1.8.3.3.2 Extractパラメータの構成

Extractパラメータ・ファイルには、VAMの定義および起動に必要なパラメータが含まれます。VAMと通信するためのサンプルExtractパラメータを表に示します。

パラメータ 説明
EXTRACT jmsvam

Extractプロセスの名前。

VAM ggjava_vam.dll,
PARAMS dirprm/jmsvam.properties

VAMライブラリの名前とプロパティ・ファイルの場所を指定します。VAMプロパティは、Oracle GoldenGateインストールの場所のdirprmディレクトリにある必要があります。

TRANLOGOPTIONS VAMCOMPATIBILITY 1

VAMの元の実装が使用されること(1)を指定します。

TRANLOGOPTIONS GETMETADATAFROMVAM

メタデータがVAMによって送信されることを指定します。

EXTTRAIL dirdat/id

Extractが作成するターゲット証跡の識別子を指定します。

9.1.8.3.3.3 メッセージ取得の構成

メッセージ取得は、VAMプロパティ・ファイル(アダプタ・プロパティ・ファイル)のプロパティによって構成されます。このファイルは、Extract VAMパラメータのPARAMSオプションによって識別され、ロギング特性、パーサーのマッピングおよびJMS接続設定の決定に使用されます。

9.1.8.3.4 メッセージの接続と取得

JMSメッセージを処理するには、JMSインタフェースへの接続の構成、トランザクションのメッセージの取得と解析、各メッセージの証跡への書込み、トランザクションのコミットおよびメッセージのキューからの削除を行う必要があります。

9.1.8.3.4.1 JMSへの接続

JMSへの接続は、汎用JMSインタフェースを介して行われます。プロパティを設定して次の接続の特性を構成できます。

  • JMSクライアントのJavaクラスパス

  • JMSキューまたはトピック・ソース宛先の名前

  • Java Naming and Directory Interface (JNDI)接続プロパティ

    • 初期コンテキストの接続プロパティ

    • 接続ファクトリ名

    • 宛先名

  • セキュリティ情報

    • JNDI認証資格証明

    • JMSユーザー名とパスワード

VAMと連携するよう構成されたExtractプロセス(例のjmsvamなど)は、起動時にメッセージ・システムに接続します。

ノート:

処理時に接続の問題があった場合に自動的に再起動されるよう、ExtractをManagerのAUTORESTARTリストに含めることができます。

現在、Oracle GoldenGate Javaメッセージ取得アダプタではJMSテキスト・メッセージのみサポートされます。

9.1.8.3.4.2 メッセージの取得

次のメッセージを要求されると、接続処理によって次のステップが実行されます。

  • ローカルJMSトランザクションがまだ開始されていない場合は開始します。

  • メッセージ・キューからメッセージを読み取ります。

  • メッセージがないために読取りが失敗した場合、ファイル終端メッセージを返します。

  • そうではない場合、メッセージのコンテンツを返します。

9.1.8.3.4.3 トランザクションの完了

トランザクションを構成するメッセージがすべて正常に取得および解析され、Oracle GoldenGate証跡に書き込まれると、ローカルJMSトランザクションがコミットされ、メッセージがキューまたはトピックから削除されます。エラーが発生した場合、ローカル・トランザクションはロールバックされ、メッセージはJMSキューに残されます。