18 Java Message Serviceハンドラの使用
Java Message Service (JMS)ハンドラを使用すると、証跡ファイルの操作をメッセージにフォーマットし、Oracle Weblogic Server、Websphere、ActiveMQなどのJMSプロバイダに公開できます。
この章では、JMSハンドラの使用方法について説明します。
18.1 概要
Java Message Serviceは、アプリケーションでメッセージの作成、送信、受信および読取りを行うことができるJava APIです。JMS APIでは、Javaプログラミング言語で記述されたプログラムが他のメッセージング実装と通信できるように、共通する一連のインタフェースおよび関連するセマンティクスを定義します。
JMSハンドラは、Oracle GoldenGateの証跡を取得し、それらのメッセージを構成されているJMSプロバイダに送信します。
親トピック: Java Message Serviceハンドラの使用
18.2 JMSハンドラの設定および実行
JMSハンドラの設定(JNDI構成)は、使用するJMSプロバイダによって異なります。
次の各項では、JMSハンドラのコンポーネントの構成およびこのハンドラの実行の手順について説明します。
実行時の前提条件
JMSプロバイダは、起動および実行されていて、必要なConnectionFactory
、QueueConnectionFactory
およびTopicConnectionFactory
が構成されている必要があります。
セキュリティ
使用するJMSプロバイダに応じてSSLを構成します。
- クラスパス構成
JMSハンドラ・プロパティ・ファイルは、Oracle GoldenGateのdirprm
ディレクトリに保存することをお薦めします。 - Java Naming and Directory Interfaceの構成
- ハンドラ構成
- Oracle WebLogic Serverを使用した構成のサンプル
親トピック: Java Message Serviceハンドラの使用
18.2.1 クラスパス構成
JMSハンドラ・プロパティ・ファイルは、Oracle GoldenGate dirprm
ディレクトリに保存することをお薦めします。
プロバイダ・クライアントJARの場所は次のように指定します。
gg.classpath= path_to_the_providers_client_jars
親トピック: JMSハンドラの設定および実行
18.2.2 Java Naming and Directory Interfaceの構成
Java Naming and Directory Interface (JNDI)プロパティを構成して初期コンテキストに接続し、接続ファクトリと初期宛先を参照します。
表18-1 JNDI構成プロパティ
プロパティ | 必須/オプション | 有効な値 | デフォルト | 説明 |
---|---|---|---|---|
|
必須 |
有効なプロバイダURL (ポートを含む) |
なし |
ハンドラがサーバー上のオブジェクトを参照するために使用するURLを指定します。たとえば、 |
|
必須 |
初期コンテキスト・ファクトリ・クラス名 |
なし |
新しい初期コンテキスト・オブジェクトの作成時に使用する初期コンテキスト・ファクトリを指定します。Oracle WebLogic Serverの場合、値は |
|
必須 |
有効なユーザー名 |
なし |
使用するユーザー名を指定します。 |
|
必須 |
有効なパスワード |
なし |
ユーザーのパスワードの指定 |
親トピック: JMSハンドラの設定および実行
18.2.3 ハンドラ構成
JMSハンドラの操作は、プロパティ・ファイルを使用して構成します。これらのプロパティは、Javaアダプタ・プロパティ・ファイルにあります(Replicatプロパティ・ファイルにはありません)。
JMSハンドラの選択を有効にするには、まずgg.handler.name.type=jms
およびその他のJMSプロパティを次のように指定してハンドラ・タイプを構成する必要があります。
表18-2 JMSハンドラの構成プロパティ
プロパティ | 必須/オプション | 有効な値 | デフォルト | 説明 |
---|---|---|---|---|
|
必須 |
|
なし |
トランザクション、操作およびメタデータをフォーマットされたメッセージとしてJMSプロバイダに送信するには、 |
|
必須 |
有効なキューまたはトピックの名前 |
なし |
メッセージが送信されるキューまたはトピックを設定します。これは、JMSサーバーで適切に構成される必要があります。たとえば、 |
|
オプション |
|
|
ハンドラがキューに送信する(単一受信者)か、トピックに送信する(パブリッシュ/サブスクライブ)かを指定します。 |
|
必須 |
有効な接続ファクトリ名 |
なし |
JNDIを使用して検索する接続ファクトリの名前を指定します。 |
|
オプション |
|
|
|
|
オプション |
有効な接続URL |
なし |
JNDIを使用せずに接続を明示的に作成する場合にのみ指定します。 |
|
オプション |
有効な |
なし |
JNDIを使用しない場合にのみ、ファクトリにアクセスするために設定します。このプロパティの値はインスタンス化するJavaクラス名であり、ファクトリ・オブジェクトが明示的に構築されます。 |
|
オプション |
JNDIプロバイダではなく |
なし |
JMSがJNDIを使用するように構成されている場合、物理的な宛先は重要です。 |
|
オプション |
有効なユーザー名 |
なし |
JMSサーバーにメッセージを送信するためのユーザー名。 |
|
オプション |
有効なパスワード |
なし |
JMSサーバーにメッセージを送信するためのパスワード |
|
オプション |
|
|
JMSセッション・モードを設定します。これらの値は標準のJMS値と同等と見なされます。 |
|
オプション |
|
|
メッセージの送信時にローカル・トランザクションを使用するかどうかを設定します。単一のメッセージを一度に1つずつ送信およびコミットしていないかぎり、ローカル・トランザクションはデフォルトで有効になっています。ローカル・トランザクションを無効にする場合は、 |
|
オプション |
|
|
配信モードを永続または非永続に設定します。メッセージが永続の場合、クライアントの送信操作の一環としてメッセージを安定的なストレージに記録するようJMSプロバイダを構成する必要があります。 |
|
オプション |
0から10までの有効な整数 |
|
JMSサーバーで、0を最低、9を最高とする10段階の優先度の値が定義されます。 |
|
オプション |
時間(ミリ秒) |
|
生成されたメッセージがメッセージ・システムによって保持される時間のディスパッチ時間からの長さ(ミリ秒)を設定します。ゼロに設定すると、時間は無制限になります。 |
|
オプション |
|
なし |
メッセージが配信される前にメッセージにプロパティを設定できるように、メッセージ・リスナーを構成します。 |
|
オプション |
|
|
操作およびトランザクションをJMSサーバーに送信されるメッセージに変換するために使用するフォーマットを指定します。 velocityテンプレートはテンプレート・ファイルの場所を指している必要があります。サンプルは 例:
|
|
オプション |
有効な表名のリスト |
なし |
ハンドラによって含められる表のリストを指定します。 表のスキーマ(または所有者)が指定されている場合は、そのスキーマのみが表名と一致します。それ以外の場合、表名は任意のスキーマに一致します。表のカンマ区切りのリストを指定できます。たとえば、ハンドラに表 表のカタログとスキーマ(または所有者)が指定されている場合、そのカタログとスキーマのみが表名と一致します。それ以外の場合、表名は任意のカタログおよびスキーマに一致します。表のカンマ区切りのリストを指定できます。たとえば、ハンドラに表 いずれかの表が含める表のリストと一致する場合は、そのトランザクションが含められます。 指定された表名のリストでは、大文字と小文字が区別されます。 |
|
オプション |
有効な表名のリスト |
なし |
ハンドラによって除外される表のリストを指定します。 表単位で表での操作を選択的に処理するには、ハンドラは操作モードで処理している必要があります。ハンドラがトランザクション・モードで処理されていて、1つのトランザクションに複数の表にまたがる複数の処理が含まれている状況では、いずれかの表が除外する表のリストと一致する場合、そのトランザクションは除外されます。 指定された表名のリストでは、大文字と小文字が区別されます。 |
|
オプション |
|
|
1メッセージ当たり1つの操作を出力する( |
親トピック: JMSハンドラの設定および実行
18.2.4 Oracle WebLogic Serverを使用した構成のサンプル
java.naming.provider.url=t3://localhost:7001
java.naming.factory.initial=weblogic.jndi.WLInitialContextFactory
java.naming.security.principal=weblogic
java.naming.security.credentials=Welcome
gg.handler.myjms1.type=jms
gg.handler.myjms1.destination=myq
gg.handler.myjms1.connectionFactory=mycf
gg.handler.myjms1.format=xml
親トピック: JMSハンドラの設定および実行