Oracle Messaging Gateway(MGW)をロードおよび設定すると、構成および実行が可能になります。DBMS_MGWADM
.ALTER_AGENT
を使用して、メッセージ・ゲートウェイ・エージェントがデータベース接続の確立に使用するユーザー名、パスワード、データベース指定子および接続タイプを設定できます。
内容は次のとおりです。
関連項目: 『Oracle Database PL/SQLパッケージ・プロシージャおよびタイプ・リファレンス』のDBMS_MGWADMおよびDBMS_MGWMSGに関する項 |
メッセージは、Oracle Streams AQとOracle以外のメッセージ・システム間でメッセージ・ゲートウェイによって伝播されます。メッセージ・ゲートウェイ・エージェントは、Oracle Databaseサーバーの外部プロセスとして実行されます。
メッセージ・ゲートウェイでは、1つのデータベースに対して複数のエージェントがサポートされています。デフォルトのエージェントは、DEFAULT_AGENT
という名前で自動的に作成されます。伝播ジョブの分離およびグループ化、RAC環境での拡張を可能にする他の名前のエージェントも作成できます。通常、RAC環境でない1つのインスタンスの場合、デフォルトのエージェントのみで十分です。
内容は次のとおりです。
DBMS_MGWADM
.CREATE_AGENT
を使用して、追加のメッセージ・ゲートウェイ・エージェントを作成できます。メッセージ・エージェントのデフォルトのエージェントであるDEFAULT_AGENT
は、メッセージ・エージェントがインストールされると自動的に作成され、常駐するようになります。
エージェントは、作成時または作成後に、DBMS_MGWADM
.ALTER_AGENT
を使用して、エージェント・ユーザー、接続情報、データベース・サービスおよびリソース制限で構成できます。メッセージ・ゲートウェイ・エージェントは、起動前に、MGW_AGENT_ROLE
ロールが付与されているデータベース・ユーザーで構成される必要があります。
例19-1では、myagent
という名前のエージェントを作成し、エージェント・ユーザーのデータベース接続情報を指定します。デフォルト値は、その他すべてのパラメータに対して使用されます。
メッセージ・ゲートウェイ・エージェントは、DBMS_MGWADM
.REMOVE_AGENT
をコールすることによって削除できます。エージェントを削除する前に、そのエージェントに関連付けられているすべてのメッセージ・ゲートウェイのリンクを削除し、そのエージェントを停止する必要があります。デフォルトのエージェントのDEFAULT_AGENT
は削除できません。例19-2では、myagent
というエージェントを削除します。
メッセージ・ゲートウェイ・エージェントは、データベースの外部プロセスとして実行されます。Oracle Streams AQおよびメッセージ・ゲートウェイ・パッケージにアクセスするには、メッセージ・ゲートウェイ・エージェントからデータベースへの接続を確立する必要があります。DBMS_MGWADM
.ALTER_AGENT
を使用して、メッセージ・ゲートウェイ・エージェントがデータベース接続の確立に使用するユーザー名、パスワードおよびデータベース接続文字列を設定できます。メッセージ・ゲートウェイ・エージェントを起動するには、ユーザーにMGW_AGENT_ROLE
が付与されている必要があります。
例19-3は、ネット・サービス名mydatabase
を使用して、パスワードmgwagent_password
のユーザーmgwagent
に対して構成されているメッセージ・ゲートウェイのデフォルトのエージェントを示したものです。
DBMS_MGWADM
.ALTER_AGENT
を使用して、メッセージ・ゲートウェイ・エージェントのリソース制限を設定できます。たとえば、メッセージ・ゲートウェイ・エージェント・プロセスのヒープ・サイズ、およびそのエージェント・プロセスで使用される伝播スレッド数を設定できます。デフォルト値は、メモリー・ヒープ64MBおよび伝播スレッド1です。特定のエージェントの場合、エージェントがDBMS_MGWADM
.CREATE_AGENT
によって作成されるときにこれらの値を指定することもできます。
例19-4では、myagentというエージェントについて、ヒープ・サイズ96MB、伝播スレッド2を設定します。
例19-4 リソース制限の設定
SQL> exec DBMS_MGWADM.ALTER_AGENT( agent_name => 'myagent', max_memory => 96, max_threads => 2);
メッセージ・ゲートウェイ・エージェントを実行中に、メモリー・ヒープ・サイズと伝播スレッド数は変更できません。
内容は次のとおりです。
メッセージ・ゲートウェイ・エージェントが構成されたら、DBMS_MGWADM.STARTUP
を使用して起動できます。例19-5に、デフォルトのエージェントおよびmyagent
エージェントの起動方法を示します。
例19-5 メッセージ・ゲートウェイ・エージェントの起動
SQL> exec DBMS_MGWADM.STARTUP; SQL> exec DBMS_MGWADM.STARTUP ('myagent');
第21章「Oracle Messaging Gatewayの監視」で説明されているように、MGW_GATEWAY
ビューを使用してメッセージ・ゲートウェイ・エージェントのステータスをチェックできます。
DBMS_MGWADM
.SHUTDOWN
を使用して、メッセージ・ゲートウェイ・エージェントを停止できます。例19-6に、Messaging Gatewayのデフォルトのエージェントおよびmyagent
エージェントの停止方法を示します。
例19-6 メッセージ・ゲートウェイ・エージェントの停止
SQL> exec DBMS_MGWADM.SHUTDOWN; SQL> exec DBMS_MGWADM.SHUTDOWN ('myagent');
第21章「Oracle Messaging Gatewayの監視」で説明されているように、MGW_GATEWAY
ビューを使用してメッセージ・ゲートウェイ・エージェントが正常に停止したかどうかをチェックできます。
メッセージ・ゲートウェイでは、Schedulerジョブを使用して、メッセージ・ゲートウェイ・エージェントを起動します。このジョブは、DBMS_MGWADM.STARTUP
プロシージャをコールすると作成されます。ジョブを実行すると、外部プロセスでメッセージ・ゲートウェイ・エージェントを作成する外部プロシージャがコールされます。ジョブは、次の場合に削除されます。
DBMS_MGWADM.SHUTDOWN
がコールされたためにエージェントが停止する場合
再起動不能エラーが発生したためにエージェントが終了する場合
メッセージ・ゲートウェイは、DBMS_SCHEDULER
を使用して、繰返し間隔1分で繰返し可能なSchedulerジョブを作成します。ジョブの所有者はSYS
です。データベースの停止、データベースの障害または再起動可能なエラーによって指定したジョブ・インスタンスが終了したとき、繰返しジョブによってメッセージ・ゲートウェイ・エージェントは、自動的に再起動が可能になります。指定した時間に実行できるメッセージ・ゲートウェイ・エージェント・ジョブのインスタンスは1つのみです。
各エージェントは、Schedulerジョブ・クラスを使用して、エージェントのSchedulerジョブのサービス・アフィニティを指定します。Schedulerジョブ・クラスは、DBMS_MGWADM
.CREATE_AGENT
またはDBMS_MGWADM
.ALTER_AGENT
で指定されるデータベース・サービスで構成されます。データベース・サービスの設定は、データベース管理者が担当します。いずれのデータベース・サービスも指定されない場合、各インスタンスにマップされているデフォルトのデータベース・サービスが使用されます。
メッセージ・ゲートウェイのデフォルトのエージェントで使用されるSchedulerジョブ・クラスの名前は、SYS
.MGW_JOBCLS_DEFAULT_AGENT
です。デフォルトのエージェントによって使用されるSchedulerジョブの名前は、SYS
.MGW_JOB_DEFAULT_AGENT
です。
メッセージ・ゲートウェイの指定エージェントで使用されるSchedulerジョブ・クラスの名前は、SYS
.MGW_JOBCLS_
<agent_name
>です。指定エージェントによって使用されるSchedulerジョブの名前は、SYS
.MGW_JOB_
<agent_name
>です。
エージェント・ジョブにエラーが発生すると、エラーは再起動可能エラーと再起動不能エラーに分類されます。再起動可能エラーとは、エージェント・ジョブを再起動すると解決する問題を指します。再起動不能エラーとは、永続的なものでエージェント・ジョブを再起動しても、再度発生する問題を指します。ORA-01089(即時シャットダウン処理中)およびORA-28576(外部プロシージャ・エージェントへのRPC接続が失われました)は、再起動可能エラー例です。ORA-06520(外部ライブラリのロード中にエラーが発生しました)は、再起動不能エラーの例です。
メッセージ・ゲートウェイでは、データベース停止トリガーを使用します。メッセージ・ゲートウェイ・エージェントが停止中のインスタンス上で起動されると、トリガーによってエージェントの停止が通知され、通知を受け取るとエージェントは現在の実行を終了します。ジョブ・スケジューラによって、後で自動的にジョブの再実行がスケジュールされます。
データベース機能障害またはエージェント・ジョブによって検出された再起動不能エラーのため、メッセージ・ゲートウェイ・エージェント・ジョブが終了する場合は、ジョブは削除されず、後でジョブ・スケジューラによって自動的にジョブの再実行がスケジュールされます。
MGW_GATEWAY
ビューには、メッセージ・ゲートウェイ・エージェントを実行中のエージェント・ステータス、データベース・サービスおよびデータベース・インスタンスが表示されます。Oracle Schedulerビューで、Schedulerジョブ、ジョブ・クラスおよびジョブ実行の詳細に関する情報を確認できます。
関連項目:
|
Oracle Real Application Clusters(RAC)環境とRAC以外の環境で、メッセージ・ゲートウェイ・ジョブの起動原理と停止原理が同じ場合は、RAC環境に対して、いくつかの点を考慮する必要があります。
RAC環境でも、構成済のメッセージ・ゲートウェイ・エージェントごとに1つのプロセスを実行できます。たとえば、デフォルトのエージェントと2つの指定エージェントがエージェント・ユーザーで構成されている場合、これら3つのエージェントはすべて同時に実行できます。各エージェントに関連付けられているデータベース・サービスが、エージェントのSchedulerジョブのサービス・アフィニティ、およびエージェント・プロセスが実行されるデータベースのインスタンスを決定します。
RAC環境でデータベース・インスタンスを停止すると、メッセージ・ゲートウェイ・エージェントが停止中のインスタンスで実行中の場合のみ、メッセージ・ゲートウェイ停止トリガーによってエージェントに停止が通知されます。インスタンスが再起動されると、ジョブ・スケジューラによって自動的に別のインスタンスでジョブの今後の再実行がスケジュールされるか、または停止時のインスタンスでのみジョブを実行できる場合は、そのインスタンスで再実行するジョブがスケジュールされます。
メッセージ・ゲートウェイ・エージェントによるすべてのデータベース接続先を、メッセージ・ゲートウェイ・エージェントのプロセスが実行中のインスタンスにすることをお薦めします。これにより、RAC環境で確実に適切なフェイルオーバー動作が得られます。
メッセージ・ゲートウェイ・エージェントがデータベース・サービスと関連付けられている場合、サービスが実行中のインスタンスで有効化されるまで、そのエージェントのSchedulerジョブは実行されません。データベースを停止すると、そのデータベースへのすべてのサービスが停止し、データベースの起動時にそのサービスを手動で再起動する必要がある場合があります。
関連項目:
|
Oracle以外のメッセージ・システムのクライアントとして実行すると、メッセージ・ゲートウェイ・エージェントはメッセージ・システム・リンクを介してOracle以外のメッセージ・システムと通信できます。メッセージ・システム・リンクとは、メッセージ・ゲートウェイ・エージェントとOracle以外のメッセージ・システム間の一連の接続です。
Oracle以外のメッセージ・システムのメッセージ・システム・リンクを構成するには、ユーザーはエージェント情報を指定してOracle以外のメッセージ・システムへの接続を確立する必要があります。ユーザーは、メッセージ・コネクションの最大数を指定できます。
エージェント名は、各メッセージ・システム・リンクに関連付けられます。これは、リンクの作成時に設定され、変更できません。リンクに関連付けられているエージェントは、そのリンクと関連付けられている登録済のキューを使用するすべての伝播ジョブを処理する必要があります。メッセージ・システム・リンクの作成時にエージェント名が指定されていない場合、メッセージ・ゲートウェイのエージェントが使用されます。
トランザクションと永続メッセージをサポートするOracle以外のメッセージ・システムのメッセージ・システム・リンクを構成する場合は、着信伝播および発信伝播のログ・キューの固有の名前を指定して1回のみメッセージが配信されるようにする必要があります。ログ・キューは、メッセージ・ゲートウェイ・エージェントによってのみ使用される必要があります。他のプログラムでは、ログ・キューのメッセージをエンキューまたはデキューできません。着信ログ・キューと発信ログ・キューは同じ物理的キューを参照できますが、別の物理的キューを参照した方がパフォーマンスは向上します。
1つのメッセージ・ゲートウェイ・エージェントにつき、1つの伝播ログ・キューにアクセスできます。これにより、指定のログ・キューに、そのエージェントによって処理される伝播ジョブのみに関するログ記録が含まれ、そのエージェントは、発生する可能性のある他のログ記録の破棄が可能であることが保証されます。
メッセージ・システム・リンクを構成する際に、options
引数を指定することもできます。options
引数とは、SYS.MGW_PROPERTY
型の組{名前、値}のセットです。
内容は次のとおりです。
WebSphere MQ Base Javaリンクは、次の情報を指定し、DBMS_MGWADM.CREATE_MSGSYSTEM_LINK
をコールすることによって作成されます。
インタフェース型: DBMS_MGWADM.MQSERIES_BASE_JAVA_INTERFACE
WebSphere MQ接続情報
WebSphere MQサーバーのホスト名およびポート番号
キュー・マネージャ名
チャネル名
ユーザー名およびパスワード
許可されるメッセージ・コネクションの最大数
着信伝播および発信伝播のログ・キュー名
オプション情報の例
送信、受信およびセキュリティの終了
キャラクタ・セット
例19-7では、WebSphere MQ Base Javaリンクmqlink
を構成します。このリンクは、WebSphere MQチャネルmychannel
を使用して、ホストmyhost.mydomain
およびポート1414上のWebSphere MQキュー・マネージャmy.queue.manager
を使用するように構成されます。
この例では、WebSphere MQ SendExit
クラスを登録するオプションも設定します。クラスmySendExit
は、mgw.ora
のCLASSPATH
セットにある必要があります。メッセージ・ゲートウェイのデフォルトのエージェント(DEFAULT_AGENT
)は、リンク、およびそのリンクを使用するすべての伝播ジョブを処理する必要があります。
例19-7 WebSphere MQ Base Javaリンクの構成
DECLARE v_options sys.mgw_properties; v_prop sys.mgw_mqseries_properties; BEGIN v_prop := sys.mgw_mqseries_properties.construct(); v_prop.interface_type := dbms_mgwadm.MQSERIES_BASE_JAVA_INTERFACE; v_prop.max_connections := 1; v_prop.username := 'mqm'; v_prop.password := 'mqm'; v_prop.hostname := 'myhost.mydomain'; v_prop.port := 1414; v_prop.channel := 'mychannel'; v_prop.queue_manager := 'my.queue.manager'; v_prop.outbound_log_queue := 'mylogq'; -- Specify a WebSphere MQ send exit class 'mySendExit' to be associated with -- the queue. -- Note that this is used as an example of how to use the options parameter, -- but is not an option that is usually set. v_options := sys.mgw_properties(sys.mgw_property('MQ_SendExit', 'mySendExit')); dbms_mgwadm.create_msgsystem_link( linkname => 'mqlink', agent_name=>'default_agent', properties => v_prop, options => v_options ); END;
WebSphere MQ JMSリンクは、次の情報を指定し、DBMS_MGWADM.CREATE_MSGSYSTEM_LINK
をコールすることによって作成されます。
インタフェース型
Java Message Service(JMS)は、キュー・コネクションとトピック・コネクションを識別します。Sun社のJMS 1.1標準は、単一のJMSコネクションでJMSキューおよびトピックの両方へのアクセスを可能にするドメイン統一をサポートしています。
インタフェース型DBMS_MGWADM.JMS_CONNECTION
で作成されたWebSphere MQ JMSリンクは、JMSキューおよびトピックの両方へのアクセスに使用できます。これは、WebSphere MQ JMSリンクの推奨インタフェースです。
インタフェース型DBMS_MGWADM.JMS_QUEUE_CONNECTION
で作成されたWebSphere MQ JMSリンクは、JMSキューへのアクセスにのみ使用できます。
インタフェース型DBMS_MGWADM.JMS_TOPIC_CONNECTION
で作成されたWebSphere MQ JMSリンクは、JMSトピックへのアクセスにのみ使用できます。
WebSphere MQ接続情報
WebSphere MQサーバーのホスト名およびポート番号
キュー・マネージャ名
チャネル名
ユーザー名およびパスワード
許可されるメッセージ・コネクションの最大数
メッセージ・コネクションはJMSセッションにマップされます。
着信伝播および発信伝播のログ宛先(JMSキューまたはJMSトピック)
ログの宛先タイプはリンクの型に有効である必要があります。JMS統一リンクとJMSキュー・リンクではログの宛先にJMSキューを使用し、JMSトピック・リンクではトピックを使用する必要があります。
WebSphere MQ JMS統一リンクまたはキュー・リンクの場合は、ログ・キュー名はWebSphere MQ管理ツールを使用して作成される物理的WebSphere MQ JMSキューの名前である必要があります。
WebSphere MQ JMSトピック・リンクの場合は、ログ・キュー名はWebSphere MQ JMSトピックの名前である必要があります。そのトピックによって使用される物理的WebSphere MQキューは、WebSphere MQ管理ツールを使用して作成される必要があります。デフォルトでは、使用される物理的キューはSYSTEM.JMS.D.SUBSCRIBER.QUEUE
です。リンク・オプションを使用して、別の物理的キューを指定できます。
オプション情報の例
送信、受信およびセキュリティの終了
キャラクタ・セット
JMSトピックに使用されるWebSphere MQパブリッシュ・サブスクライブ構成
例19-8では、JMSトピック・インタフェースを使用してWebSphere MQキュー・マネージャに対するメッセージ・ゲートウェイ・リンクを構成します。このリンクは、mqjmslink
という名前で、WebSphere MQチャネルmychannel
を使用して、ホストmyhost.mydomain
およびポート1414上のWebSphere MQキュー・マネージャmy.queue.manager
を使用するように構成されます。
この例ではオプション
・パラメータを使用して、ログ・トピックで使用されるデフォルト以外の永続的なサブスクライバ・キューを指定します。メッセージ・ゲートウェイ・エージェントmyagent
は、リンク、およびそのリンクを使用するすべての伝播ジョブを処理する必要があります。
例19-8 WebSphere MQ JMSリンクの構成
DECLARE v_options sys.mgw_properties; v_prop sys.mgw_mqseries_properties; BEGIN v_prop := sys.mgw_mqseries_properties.construct(); v_prop.max_connections := 1; v_prop.interface_type := DBMS_MGWADM.JMS_TOPIC_CONNECTION; v_prop.username := 'mqm'; v_prop.password := 'mqm'; v_prop.hostname := 'myhost.mydomain'; v_prop.port := 1414; v_prop.channel := 'mychannel'; v_prop.queue_manager := 'my.queue.manager'; v_prop.outbound_log_queue := 'mylogtopic' -- Specify a WebSphere MQ durable subscriber queue to be used with the -- log topic. v_options := sys.mgw_properties( sys.mgw_property('MQ_JMSDurSubQueue', 'myDSQueue')); DBMS_MGWADM.CREATE_MSGSYSTEM_LINK( linkname => 'mqjmslink', agent_name => 'myagent', properties => v_prop, options => v_options ); END;
メッセージ・ゲートウェイでは、IBM WebSphere MQおよびWebSphere MQ JMS接続のSSLがサポートされています。この項では、WebSphere MQ Base Javaリンクを使用するようにメッセージ・ゲートウェイを構成する方法について説明します。WebSphere MQ JMSリンクにも同じ情報が適用されます。メッセージ・ゲートウェイ構成に関しては違いはありません。
WebSphere MQ接続にSSLを使用するには、次のものが必要です。
SSLを使用するように構成されたWebSphere MQチャネル。
トラスト・ストア・ファイルおよびキーストア・ファイル(オプション)は、メッセージ・ゲートウェイ・エージェントのプロセスにアクセス可能な場所に存在します。RAC環境では、これらのファイルは、同じパス指定を使用してメッセージ・ゲートウェイ・エージェントのプロセスが実行される可能性のある、すべてのインスタンスに対してアクセス可能である必要があります。
DBMS_MGWADM
.CREATE_MSGSYSTEM_LINK
を使用して、必要なSSL関連リンク・オプションでWebSphere MQリンクを作成します。少なくとも、チャネルで使用されるSSL暗号スイートを指定するように、MQ_SSLCIPHERSUITE
プロパティを設定する必要があります。
DBMS_MGWADM
.SET_OPTION
を使用して、そのリンクに関連付けられているメッセージ・ゲートウェイ・エージェント用に特定のJSSE Javaプロパティを設定します。
JSEE関連プロパティ
java.net.ssl.keyStore
このプロパティは、キーストアの場所を指定するために使用されます。キーストアは、認証およびデータ整合性など、様々な目的で使用されるキー・マテリアルのデータベースです。
java.net.ssl.keyStorePassword
このプロパティは、キーストアのパスワードを指定するために使用されます。このパスワードは、キーストアへのアクセス前に、キーストアに含まれているデータの整合性を確認するために使用されます。
java.net.ssl.trustStore
このプロパティは、トラスト・ストアの場所を指定するために使用されます。トラスト・ストアは、どのクライアントおよびサーバーが信頼できるか、判断するために使用されるキーストアです。
java.net.ssl.trustStorePassword
このプロパティは、トラスト・ストアのパスワードを指定するために使用されます。このパスワードは、トラスト・ストアへのアクセス前に、キーストアに含まれているデータの整合性を確認するために使用されます。
java
.net
.ssl
.keyStore
およびjava
.net
.ssl
.keyStorePassword
プロパティは、WebSphere MQチャネルがSSLクライアント認証を使用するように構成されている場合のみに必要です。
例19-9では、WebSphere MQ Base Javaリンクのmqssllinkを使用して、SSL_RSA_WITH_RC4_128_MD5
暗号スイートを使用するSSL接続を構成します。チャネルは、そのリンクに関連付けられているメッセージ・ゲートウェイ・エージェントのDEFAULT_AGENT
が、キーストアおよびトラスト・ストアの両方に対してJavaプロパティが構成されるように、SSLのクライアント認証用に構成されているものと想定します。
DBMS_MGWADM
.SET_OPTION
によって設定されるJavaプロパティはエージェントの初回起動時にのみ設定されるため、この構成は、メッセージ・ゲートウェイ・エージェントの停止時に実行される必要があります。構成時にエージェントが実行中の場合は、エージェントを停止し、SSL接続の使用前に再起動する必要があります。
例19-9 SSLのためのWebSphere MQ Base Javaリンクの構成
DECLARE v_options sys.mgw_properties; v_prop sys.mgw_mqseries_properties; v_agent varchar2(30) := 'default_agent'; BEGIN v_prop := sys.mgw_mqseries_properties.construct(); v_prop.interface_type := DBMS_MGWADM.MQSERIES_BASE_JAVA_INTERFACE; v_prop.max_connections := 1; v_prop.username := 'mqm'; v_prop.password := 'mqm'; v_prop.hostname := 'myhost.mydomain'; v_prop.port := 1414; v_prop.channel := 'mysslchannel'; v_prop.queue_manager := 'my.queue.manager'; v_prop.outbound_log_queue := 'mylogq'; -- specify the SSL ciphersuite v_options := sys.mgw_properties( sys.mgw_property('MQ_SSLCIPHERSUITE','SSL_RSA_WITH_RC4_128_MD5') ); -- create the MQSeries link DBMS_MGWADM.CREATE_MSGSYSTEM_LINK(linkname => 'mqssllink', agent_name => v_agent, properties => v_prop, options => v_options); -- set Java properties for the agent that specify the JSSE security -- properties for the keystore and truststore; the paths will be -- saved as cleartext and the passwords encrypted DBMS_MGWADM.SET_OPTION(target_type => DBMS_MGWADM.AGENT_JAVA_PROP, target_name => v_agent, option_name => 'javax.net.ssl.keyStore', option_value => '/tmp/mq_ssl/key.jks', encrypted => false); DBMS_MGWADM.SET_OPTION(target_type => DBMS_MGWADM.AGENT_JAVA_PROP, target_name => v_agent, option_name => 'javax.net.ssl.keyStorePassword', option_value => 'welcome', encrypted => true); DBMS_MGWADM.SET_OPTION(target_type => DBMS_MGWADM.AGENT_JAVA_PROP, target_name => v_agent, option_name => 'javax.net.ssl.trustStore', option_value => '/tmp/mq_ssl/trust.jks', encrypted => false); DBMS_MGWADM.SET_OPTION(target_type => DBMS_MGWADM.AGENT_JAVA_PROP, target_name => v_agent, option_name => 'javax.net.ssl.trustStorePassword', option_value => 'welcome', encrypted => true); END;
TIB/Rendezvousリンクは、DBMS_MGWADM.CREATE_MSGSYSTEM_LINK
をコールして作成します。TibrvRvdTransport
型の転送を作成するための3つのパラメータ(service
、network
およびdaemon
)を指定します。
TIB/Rendezvousメッセージ・システム・リンクには、伝播ログ・キューは必要ありません。ログ情報はメモリーに格納されます。したがって、メッセージ・ゲートウェイは最大1回のメッセージ配信のみを保証できます。
例19-10では、ローカル・コンピュータ上でrvd
デーモンに接続するrvlink
という名前のTIB/Rendezvousリンクを構成します。リンクに対してエージェント名は指定されず、メッセージ・ゲートウェイのデフォルトのエージェント(DEFAULT_AGENT
)は、リンクおよびそのリンクを使用するすべての伝播ジョブを処理する必要があります。
一部のリンク情報は、リンクの作成後にDBMS_MGWADM.ALTER_MSGSYSTEM_LINK
を使用して変更できます。メッセージ・ゲートウェイ・エージェントを実行中または停止中でもリンク情報を変更できます。例19-11では、リンクmqlink
を変更して、max_connections
プロパティを変更します。
例19-11 WebSphere MQリンクの変更
DECLARE v_options sys.mgw_properties; v_prop sys.mgw_mqseries_properties; BEGIN -- use alter_construct() for initialization v_prop := sys.mgw_mqseries_properties.alter_construct(); v_prop.max_connections := 2; DBMS_MGWADM.ALTER_MSGSYSTEM_LINK( linkname => 'mqlink', properties => v_prop); END;
メッセージ・ゲートウェイのリンクに関連付けられたすべての登録済キューがすでに削除されている場合のみ、Oracle以外のメッセージ・システムへのメッセージ・ゲートウェイのリンクをDBMS_MGWADM.REMOVE_MSGSYSTEM_LINK
で削除できます。メッセージ・ゲートウェイ・エージェントを実行中または停止中でもリンクを削除できます。例19-12では、リンクmqlink
を削除します。
MGW_LINKS
ビューを使用して、作成済のリンクをチェックできます。例19-13に示したように、名前とリンク型がリストされます。
例19-13 すべてのメッセージ・ゲートウェイのリンクのリスト
SQL> select link_name, link_type from MGW_LINKS; LINK_NAME LINK_TYPE ------------------------ MQLINK MQSERIES RVLINK TIBRV
例19-14に示したように、MGW_MQSERIES_LINK
ビューとMGW_TIBRV_LINKS
ビューを使用して、メッセージ・システムの型固有の構成情報をチェックできます。
例19-14 メッセージ・システム・リンクの構成情報のチェック
SQL> select link_name, queue_manager, channel, hostname from mgw_mqseries_link; LINK_NAME QUEUE_MANAGER CHANNEL HOSTNAME ---------------------------------------------------------- MQLINK my.queue.manager mychannel myhost.mydomain SQL> select link_name, service, network, daemon from mgw_tibrv_links; LINK_NAME SERVICE NETWORK DAEMON ----------------------------------------------------- RVLINK
ソース・キュー、宛先キューまたは例外キューとして伝播に関連しているすべてのOracle以外のメッセージ・システム・キューは、メッセージ・ゲートウェイ管理インタフェースを介して登録する必要があります。伝播に関連するOracle Streams AQキューを登録する必要はありません。
内容は次のとおりです。
Oracle以外のキューは、DBMS_MGWADM.REGISTER_FOREIGN_QUEUE
を使用して登録できます。Oracle以外のキューを登録すると、メッセージ・ゲートウェイ・エージェントがキューにアクセスするための情報が提供されます。ただし、Oracle以外のメッセージ・システムの物理的キューは作成されません。物理的キューは、メッセージ・ゲートウェイ・エージェントがキューにアクセスする前に、Oracle以外のメッセージ・システムの管理インタフェースを使用して作成する必要があります。
次の情報を使用して、Oracle以外のキューを登録します。
キューにアクセスする際に使用するメッセージ・システム・リンク名
キューの固有名(Oracle以外のメッセージ・システム内の名前)
キューのドメイン
Point-to-PointキューのDBMS_MGWADM.DOMAIN_QUEUE
パブリッシュ・サブスクライブ・キューのDBMS_MGWADM.DOMAIN_TOPIC
Oracle以外のメッセージ・システム固有のオプション
これらのオプションは、{名前, 値}の組(いずれも文字列)の集合です。
例19-15は、メッセージ・ゲートウェイ・キューdestq
としてWebSphere MQ Base Javaキューmy_mq_queue
を登録する方法を示したものです。
例19-15 WebSphere MQ Base Javaキューの登録
BEGIN DBMS_MGWADM.REGISTER_FOREIGN_QUEUE( name => 'destq', linkname => 'mqlink', provider_queue => 'my_mq_queue', domain => dbms_mgwadm.DOMAIN_QUEUE); END;
WebSphere MQではPoint-to-Pointキューのみがサポートされているため、ドメインはDBMS_MGWADM.DOMAIN_QUEUE
またはNULLである必要があります。
WebSphere MQ JMSキューを登録する際は、ドメインはDBMS_MGWADM.DOMAIN_QUEUE
であり、linkname
パラメータはWebSphere MQ JMS統一リンクまたはキュー・リンクを参照する必要があります。
WebSphere MQ JMSトピックを登録する際は、ドメインはDBMS_MGWADM.DOMAIN_TOPIC
であり、linkname
パラメータはWebSphere MQ JMS統一リンクまたはトピック・リンクを参照する必要があります。伝播ソースとして使用されるWebSphere MQ JMSトピックのprovider_queue
には、ワイルドカードを含めることができます。ワイルドカード構文については、WebSphere MQドキュメントを参照してください。
TIB/Rendezvousサブジェクトをメッセージ・ゲートウェイに登録する際には、provider_queue
パラメータでTIB/Rendezvousサブジェクト名を指定します。登録済TIB/Rendezvousキューのドメインは、DBMS_MGWADM.DOMAIN_TOPIC
またはNULLである必要があります。
ワイルドカードのサブジェクト名にprovider_queue
を設定した登録済TIB/Rendezvousキューは、着信伝播の伝播ソース・キューとして使用できます。伝播宛先キューまたは例外キューとして、ワイルドカードのサブジェクト名のキューを使用することはお薦めできません。TIB/Rendezvousで説明したように、ワイルドカードのサブジェクトにメッセージを送信すると予期しない現象が発生することがあります。ただし、メッセージ・ゲートウェイを使用する場合も、TIB/Rendezvousを使用する場合も送信を阻止されることはありません。
Oracle以外のキューは、それを参照する伝播ジョブが存在しない場合のみ、DBMS_MGWADM.UNREGISTER_FOREIGN_QUEUE
で登録を解除できます。
例19-16では、リンクmqlink
のキューdestq
の登録を解除します。
例19-17に示すとおりMGW_FOREIGN_QUEUES
ビューを使用して、どのOracle以外のキューが登録され、それぞれがどのリンクを使用しているかをチェックできます。
Oracle Streams AQキューとOracle以外のメッセージ・システム・キュー間でメッセージを伝播するには伝播ジョブが必要です。各伝播ジョブには、一意の伝播型、ソースおよび宛先の3つが含まれます。
伝播ジョブを作成し、JMS宛先間でメッセージを伝播できます。伝播ジョブを作成し、JMS以外のキュー間でメッセージを伝播できます。メッセージ・ゲートウェイでは、JMS宛先とJMS以外のキュー間におけるメッセージの伝播はサポートされていません。
内容は次のとおりです。
伝播ジョブは、伝播されるメッセージおよびその方法を指定します。
メッセージ・ゲートウェイでは、双方向のメッセージ伝播が可能です。発信伝播では、メッセージがOracle Streams AQからOracle以外のメッセージ・システムに移動されます。着信伝播では、メッセージがOracle以外のメッセージ・システムからOracle Streams AQに移動されます。
伝播ソースがPoint-to-Pointキューの場合は、メッセージ・ゲートウェイ・エージェントによってキュー内のすべてのメッセージがソース・キューから宛先に移動されます。伝播ソースがトピック(パブリッシュ・サブスクライブ)の場合は、メッセージ・ゲートウェイ・エージェントによって伝播ソース・キューのサブスクライバがメッセージ・システム上に作成されます。エージェントでは、サブスクライバの作成後、パブリッシュされたすべてのメッセージがソース・キューに移動されるだけです。
メッセージを伝播する際に、メッセージ・ゲートウェイ・エージェントによって、メッセージがソース・メッセージ・システムのフォーマットから宛先メッセージ・システムのフォーマットに変換されます。ユーザーは、メッセージ変換を指定することによってメッセージ変換をカスタマイズできます。メッセージ変換に失敗すると、例外キューが指定されている場合は、エージェントがサブスクライバに伝播できるようにメッセージは例外キューに移動されます。
メッセージ・ゲートウェイの例外キューとOracle Streams AQの例外キューは異なります。メッセージ変換に失敗すると、メッセージはメッセージ・ゲートウェイによってメッセージ・ゲートウェイの例外キューに移動されます。メッセージに対してMAX_RETRIES
デキューを試行後、メッセージはOracle Streams AQによってOracle Streams AQの例外キューに移動されます。
Oracle Streams AQの例外キューに移動されたメッセージは、関連するメッセージ・ゲートウェイの伝播ジョブ上で回復不能な障害を発生します。この問題を避けるために、メッセージ・ゲートウェイの伝播ジョブの伝播ソースとして使用されるすべてのOracle Streams AQのキューのMAX_RETRIES
パラメータは、16を超える値に設定する必要があります。
伝播ソース・キューのメッセージ・システムがメッセージ選択をサポートしている場合は、伝播サブスクライバにメッセージ選択ルールを指定できます。メッセージ・セレクタの条件を満たすメッセージのみが伝播されます。
JMSメッセージの配信モードおよびTIB/Rendezvousのキュー・ポリシーに対するオプションなど、伝播ジョブ・オプションを指定することにより、ユーザーはメッセージの伝播方法を制御できます。
MGW_JOBS
ビューを使用して、メッセージ・ゲートウェイの伝播ジョブの構成およびステータスを確認できます。
メッセージ・ゲートウェイの伝播ジョブは、DBMS_MGWADM
.CREATE_JOB
を使用して作成されます。
JMS伝播以外の伝播ソースが、Oracle Streams AQキューである場合、キューはシングル・コンシューマ・キューか、マルチ・コンシューマ・キューのいずれかです。マルチ・コンシューマ・キューの場合、メッセージ・ゲートウェイは、DBMS_MGWADM
.CREATE_JOB
がコールされると、伝播ジョブのjob_name
に対応するOracle Streams AQサブスクライバのMGW_job_name
を作成します。
伝播ソースが、Oracle Java Message Service(OJMS)トピックまたはWebSphere MQ JMSトピックなどのJMSトピックである場合は、メッセージ・ゲートウェイ・エージェントによってソース・メッセージ・システムのトピックに対してJMSサブスクライバMGW_job_name
が作成されます。エージェントを実行中でない場合は、エージェントを再起動するまでサブスクライバは作成されません。
伝播ソースがキューの場合、そのキューを伝播ソースとして使用して伝播ジョブを1つのみ作成できます。伝播ソースがトピックの場合は、そのトピックを各伝播ジョブがメッセージ・システム内のトピックに対応する固有のサブスクライバを有する伝播ソースとして使用して、複数の伝播ジョブを設定できます。
例19-18では、メッセージ・ゲートウェイの伝播ジョブjob_aq2mq
を作成します。
例19-18 メッセージ・ゲートウェイ伝播ジョブの作成
BEGIN DBMS_MGWADM.CREATE_JOB( job_name => 'job_aq2mq', propagation_type => DBMS_MGWADM.OUTBOUND_PROPAGATION, source => 'mquser.srcq', destination => 'deqq@mqlink'); END;
注意: WebSphere MQ JMSトピックが伝播ジョブに関連していて、リンクのインタフェース型がDBMS_MGWADM.JMS_TOPIC_CONNECTION の場合、永続サブスクライバMGL_ subscriber_id はログ・トピックに対して作成されます。メッセージ・ゲートウェイの伝播ジョブが正常に削除されると、永続サブスクライバは削除されます。
|
伝播ジョブは、DBMS_MGWADM
.CREATE_JOB
による作成時に最初に有効化または無効化することができます。デフォルトでは、作成時にジョブは有効化されます。伝播ジョブを有効化するにはDBMS_MGWADM
.ENABLE_JOB
、無効化するにはDBMS_MGWADM
.DISABLE_JOB
を使用します。ジョブが無効化されている場合、いずれの伝播処理も発生しません。
例19-19では、伝播ジョブjob_aq2mq
の伝播を有効化します。
例19-20では、伝播ジョブjob_aq2mq
の伝播を無効化します。
伝播ジョブに問題が発生した場合、メッセージ・ゲートウェイ・エージェントでは伝播ジョブを停止する前に、指数バックオフ・スキームで失敗した操作が最大16回再試行されます。DBMS_MGWADM.RESET_JOB
を使用すると、失敗回数をゼロにリセットし、エージェントで失敗した操作をただちに再試行できます。
例19-21では、伝播ジョブjob_aq2mq
の失敗回数をリセットします。
伝播ジョブが作成されたら、DBMS_MGWADM
.ALTER_JOB
を使用して、そのジョブの選択ルール、変換、例外キュー、ジョブ・オプションおよびポーリング間隔を変更できます。メッセージ・ゲートウェイ・エージェントを実行中または停止中でもジョブを変更できます。
例19-22では、伝播ジョブの例外キューを追加します。
例19-22 例外キューの追加による伝播ジョブの変更
BEGIN DBMS_MGWADM.ALTER_JOB( job_name => 'job_aq2mq', exception_queue => 'mgwuser.my_ex_queue'); END;
例19-23では、伝播ジョブのポーリング間隔を変更します。ポーリング間隔によって、エージェントが伝播ソース・キュー内で使用可能なメッセージを検出する速度が決まります。デフォルトのポーリング間隔は5秒、またはメッセージ・ゲートウェイの初期化ファイル内のoracle
.mgw
.polling_interval
で設定されている値です。
メッセージ・ゲートウェイの伝播ジョブは、DBMS_MGWADM
.REMOVE_JOB
をコールすることによって削除できます。
メッセージ・ゲートウェイ構成から伝播ジョブが削除される前に、メッセージ・ゲートウェイは、次のクリーンアップを実行します。
メッセージ・ゲートウェイによって作成された関連サブスクライバの、メッセージ・システムからの削除
削除対象のジョブに関する伝播ログ記録の、ログ・キューからの削除
次の場合には、メッセージ・ゲートウェイはクリーン・アップに失敗することがあります。
メッセージ・ゲートウェイ・エージェントが実行されていない
Oracle以外のメッセージ・システムが実行されていない
メッセージ・ゲートウェイ・エージェントが、ソースまたは宛先メッセージ・システムと対話できない
いずれかの理由によりメッセージ・ゲートウェイがクリーン・アップに失敗した場合、削除対象の伝播ジョブはDELETE_PENDING
状態に置かれます。次の場合、メッセージ・ゲートウェイ・エージェントは、DELETE_PENDING
状態にある伝播ジョブのクリーンアップを試行します。
DBMS_MGWADM
.REMOVE_JOB
がコールされると、メッセージ・ゲートウェイ・エージェントが実行されます。
メッセージ・ゲートウェイ・エージェントが起動し、DELETE_PENDING
状態の伝播ジョブを検出します。
DBMS_MGWADM
.REMOVE_JOB
には、DELETE_PENDING
状態にしなくても、メッセージ・ゲートウェイ構成からの伝播ジョブの強制的な削除を可能にする強制パラメータが含まれています。これは、クリーンアップが失敗した場合、またはメッセージ・ゲートウェイ・エージェントが実行中でないときに伝播ジョブを削除する場合に便利です。
伝播ジョブを強制的に削除すると、使用されなくなったログ記録がログ・キュー内に、サブスクリプションがメッセージ・システム内に残り、不要なメッセージが蓄積されることになります。DBMS_MGWADM
.REMOVE_JOB
には、可能なかぎり強制オプションを使用しないことをお薦めします。
例19-24では、強制しない方法で伝播ジョブを削除します。
サブプログラムは、伝播ジョブの作成および管理を簡素化するDBMS_MGWADM
パッケージの一部として提供されます。これらのサブプログラムを使用して、前のリリースのような非結合サブスクライバおよびスケジュールではなく、伝播ジョブを構成できます。伝播ジョブ・プロシージャを使用することをお薦めしますが、下位互換性を保つために、サブスクライバ・プロシージャおよびスケジュール・プロシージャもサポートされています。
表19-1は、メッセージ・ゲートウェイの伝播ジョブ・プロシージャ、および置換するサブスクライバ・プロシージャまたはスケジュール・プロシージャ(あるいはその両方)を示したものです。すべてのプロシージャは、DBMS_MGWADM
パッケージからのものです。
表19-1 メッセージ・ゲートウェイ伝播ジョブのサブプログラム
ジョブ・プロシージャ | サブスクライバ、スケジュール・プロシージャを置換します。 |
---|---|
CREATE_JOB
|
ADD_SUBSCRIBER 、SCHEDULE_PROPAGATION
|
ALTER_JOB
|
ALTER_SUBSCRIBER 、ALTER_PROPAGATION_SCHEDULE
|
REMOVE_JOB
|
REMOVE_SUBSCRIBER 、UNSCHEDULE_PROPAGATION
|
ENABLE_JOB
|
ENABLE_PROPAGATION_SCHEDULE
|
DISABLE_JOB
|
DISABLE_PROPAGATION_SCHEDULE
|
RESET_JOB
|
RESET_SUBSCRIBER
|
内容は次のとおりです。
新しい形式のジョブと古い形式のジョブという、2つのタイプの伝播ジョブを作成できます。新しい形式のジョブは、DBMS_MGWADM
.CREATE_JOB
を使用して作成されます。古い形式のジョブは、同じ{propagation_type
、source
、destination
}の3つを使用してDBMS_MGWADM
.ADD_SUBSCRIBER
およびDBMS_MGWADM
.SCHEDULE_PROPAGATION
をコールすることによって作成されます。スケジュールが一致しないサブスクライバ、またはサブスクライバが一致しないスケジュールは、伝播ジョブとしてみなされません。
新しい形式のジョブの場合、ジョブ名は、サブスクライバIDとスケジュールIDの両方として機能します。古い形式のジョブの場合は、ジョブ名としてサブスクライバIDが使用されます。
古い形式の伝播ジョブには、伝播ジョブ・サブプログラムと、サブスクライバ・サブプログラムまたはスケジュール・サブプログラムの両方を使用できます。伝播ジョブの作成および管理には、ジョブ・サブプログラムを使用することをお薦めします。伝播ジョブは、一致しないサブスクライバまたはスケジュールでは構成されないため、これらに対してジョブ・サブプログラムは使用できません。
新しい形式の伝播ジョブには、新しいジョブ・サブプログラムのみを使用できます。新しい形式のジョブで、サブスクライバまたはスケジューラ・プロシージャをコールしようとすると、エラーが発生します。
DBMS_MGWADM
.REMOVE_JOB
以外、古い形式のジョブ用のジョブ・サブプログラムのコールは簡単で、対応するサブスクライバまたはスケジュール・サブプログラムのコールと同様、効率的な結果が得られます。今後、なんらかの制限がある可能性もありますが、現在はいずれの制限もありません。
DBMS_MGWADM
.REMOVE_JOB
プロシージャは、新旧の両方の形式のジョブを削除するために使用できます。強制的および非強制的な削除がサポートされています。非強制的な削除の実行時に、メッセージ・ゲートウェイ・エージェントが実行中でない場合、ジョブには削除保留中のフラグが付き、基になるサブスクライバまたはスケジュールのいずれも削除されません。エージェントが再起動し、クリーンアップ作業または強制的なDBMS_MGWADM
.REMOVE_JOB
が実行されると、ジョブ(サブスクライバとスケジュール・ペア)が削除されます。サブスクライバとスケジュールのペアが同時に削除されるようにするため、DBMS_MGWADM
.REMOVE_JOB
を最初にコールした後で、古い形式のジョブ用のDBMS_MGWADM
.REMOVE_SUBSCRIBER
またはDBMS_MGWADM
.UNSCHEDULE_PROPAGATION
のコールを試行すると、エラーが発生します。
ジョブに対してDBMS_MGWADM
.REMOVE_JOB
がコールされ、削除保留中のフラグが付いた場合、新旧両方の形式のジョブについて、DBMS_MGWADM
.REMOVE_JOB
以外のすべてのジョブ・プロシージャは失敗します。さらに、伝播ジョブが古い形式のジョブである場合、すべてのサブスクライバおよびスケジュール・サブプログラムは失敗します。その古い形式のジョブに対してDBMS_MGWADM
.REMOVE_JOB
がコールされていないかぎり、DBMS_MGWADM
.REMOVE_SUBSCRIBER
およびDBMS_MGWADM
.UNSCHEDULE_PROPAGATION
を使用できます。古い形式のジョブに対して、DBMS_MGWADM
.UNSCHEDULE_PROPAGATION
がコールされる場合、スケジュールはすぐに削除されて伝播ジョブではなくなるため、サブスクライバの削除には、DBMS_MGWADM
.REMOVE_SUSCRIBER
を使用する必要があります。古い形式のジョブに対して、DBMS_MGWADM
.REMOVE_SUBSCRIBER
がコールされる場合は、サブスクライバが存在するかぎり、引き続き、DBMS_MGWADM
.REMOVE_JOB
をコールできます。
MGW_JOBS
ビューには、現在の伝播ジョブ、新旧両方の形式のジョブに関する情報、およびMGW_SUBSCRIBERS
ビューとMGW_SCHEDULES
ビューで表示されるすべての関連情報が表示されます。一致しないサブスクライバまたはスケジュールは伝播ジョブを構成せず、MGW_JOBS
ビューには表示されないため、これらの検索には引き続きMGW_SUBSCRIBERS
ビューおよびMGW_SCHEDULES
ビューが役立ちます。
メッセージ・ゲートウェイを使用して、Oracle Streams AQのマルチ・コンシューマ・キューまたはシングル・コンシューマ・キューを、DBMS_MGWADM
.CREATE_JOB
により作成される新しい形式の発信ジョブの伝播ソースにすることができます。古い形式の発信ジョブの伝播ソースには、マルチ・コンシューマ・キューを使用する必要があります。管理者がDBMS_MGWADM
.ADD_SUBSCRIBER
のコールを試行し、ソースがシングル・コンシューマ・キューである場合、エラーが発生します。
伝播ソースがシングル・コンシューマ・キューの場合、システム固有(JMS以外)の発信伝播について、Oracle Streams AQのデキュー条件はサポートされていません。
この項では、メッセージ・ゲートウェイのリンク、外部キューおよび伝播ジョブに関連する基本的なプロパティとオプションのプロパティについて説明します。
内容は次のとおりです。
表19-2は、WebSphere MQメッセージ・リンクの基本的な構成プロパティをまとめたものです。この表は、SYS.MGW_MQSERIES_PROPERTIES
のオプションの(NULL
が可能な)プロパティ、変更可能なプロパティ、値が動的に変更可能なプロパティを示しています。
関連項目: 『Oracle Database PL/SQLパッケージ・プロシージャおよびタイプ・リファレンス』のSYS.MGW_MQSERIES_PROPERTIES型に関する項 |
表19-2 WebSphere MQリンク・プロパティ
属性 | NULL | 値の変更 | 動的変更 |
---|---|---|---|
queue_manager
|
不可 | 不可 | 不可 |
hostname
|
可(1) | 不可 | 不可 |
port
|
可(1) | 不可 | 不可 |
channel
|
可(1)、(6) | 可 | 不可 |
interface_type
|
可(2) | 不可 | 不可 |
max_connections
|
可(3) | 可 | 可 |
username
|
可 | 可 | 可 |
password
|
可 | 可 | 可 |
inbound_log_queue
|
可(4) | 可(4) | 可 |
outbound_log_queue
|
可(5) | 可(5) | 可 |
表19-2に関する注意
hostname
がNULL
の場合、portおよびchannelはNULL
である必要があります。hostnameがNULL
でない場合、portはNULL
以外である必要があります。hostnameがNULL
の場合は、WebSphere MQバインド接続が使用され、それ以外の場合はクライアント接続が使用されます。
interface_type
がNULL
の場合は、デフォルト値DBMS_MGWADM.MQSERIES_BASE_JAVA_INTERFACE
が使用されます。
max_connections
がNULL
の場合は、デフォルト値1
が使用されます。
リンクが着信伝播に使用されない場合は、属性inbound_log_queue
にNULL
を設定できます。ログ・キューを変更できるのは、このリンクが着信伝播ジョブによって参照されない場合のみです。
リンクが発信伝播に使用されない場合は、属性outbound_log_queue
にNULL
を設定できます。ログ・キューを変更できるのは、このリンクが発信伝播ジョブによって参照されない場合のみです。
クライアント・チャネル定義表(CCDT)が使用される場合、channel属性は、NULL
である必要があります。CCDTは、MQ_ccdtURL
リンク・オプションを使用して指定できます。
表19-3は、WebSphere MQメッセージ・システムへのアクセスにWebSphere MQ Base Javaインタフェースが使用される場合にサポートされているオプションの構成プロパティをまとめたものです。表19-4は、WebSphere MQ JMSインタフェースが使用される場合にサポートされているオプションの構成プロパティをまとめたものです。それぞれの表は、プロパティ名、そのプロパティの適用場所、プロパティを変更できるかどうか、値を動的に変更可能かどうかを示しています。サポートされているのはこの表に示すプロパティのみで、その他のプロパティは無視されます。
表19-3 WebSphere MQ Base Javaのオプションの構成プロパティ
プロパティ名 | 用途 | 値の変更 | 動的変更 |
---|---|---|---|
MQ_ccdtUrl |
リンク | 可 | 不可 |
MQ_ccsid |
リンク | 可 | 不可 |
MQ_ReceiveExit |
リンク | 可 | 不可 |
MQ_SecurityExit |
リンク | 可 | 不可 |
MQ_SendExit |
リンク | 可 | 不可 |
MQ_SSLCipherSuite |
リンク | 可 | 不可 |
MQ_SSLFipsRequired |
リンク | 可 | 不可 |
MQ_SSLPeerName |
リンク | 可 | 不可 |
MQ_SSLResetCount |
リンク | 可 | 不可 |
MQ_openOptions |
外部キュー | 不可 | 不可 |
MsgBatchSize |
ジョブ | 可 | 可 |
PreserveMessageID |
ジョブ | 可 | 可 |
表19-4 WebSphere MQ JMSのオプションの構成プロパティ
プロパティ名 | 用途 | 値の変更 | 動的変更 |
---|---|---|---|
MQ_BrokerControlQueue |
リンク | 可 | 不可 |
MQ_BrokerPubQueue |
リンク | 可 | 不可 |
MQ_BrokerQueueManager |
リンク | 可 | 不可 |
MQ_BrokerVersion |
リンク | 可 | 不可 |
MQ_ccdtUrl |
リンク | 可 | 不可 |
MQ_ccsid |
リンク | 可 | 不可 |
MQ_JmsDurSubQueue |
リンク | 不可 | 不可 |
MQ_PubAckInterval |
リンク | 可 | 不可 |
MQ_ReceiveExit |
リンク | 可 | 不可 |
MQ_ReceiveExitInit |
リンク | 可 | 不可 |
MQ_SecurityExit |
リンク | 可 | 不可 |
MQ_SecurityExitInit |
リンク | 可 | 不可 |
MQ_SendExit |
リンク | 可 | 不可 |
MQ_SendExitInit |
リンク | 可 | 不可 |
MQ_SSLCipherSuite |
リンク | 可 | 不可 |
MQ_SSLCrl |
リンク | 可 | 不可 |
MQ_SSLFipsRequired |
リンク | 可 | 不可 |
MQ_SSLPeerName |
リンク | 可 | 不可 |
MQ_SSLResetCount |
リンク | 可 | 不可 |
MQ_CharacterSet |
外部キュー | 不可 | 不可 |
MQ_JmsDurSubQueue |
外部キュー | 不可 | 不可 |
MQ_JmsTargetClient |
外部キュー | 不可 | 不可 |
JMS_DeliveryMode |
ジョブ | 可 | 可 |
JMS_NoLocal |
ジョブ | 不可 | 不可 |
MsgBatchSize |
ジョブ | 可 | 可 |
PreserveMessageID |
ジョブ | 可 | 可 |
表19-5は、TIB/Rendezvousメッセージ・リンクの基本的な構成プロパティをまとめたものです。この表は、SYS.MGW_TIBRV_PROPERTIES
のオプションの(NULL
が可能な)プロパティ、変更可能なプロパティ、値を動的に変更可能なプロパティを示しています。
関連項目: 『Oracle Database PL/SQLパッケージ・プロシージャおよびタイプ・リファレンス』のSYS.MGW_TIBRV_PROPERTIES型に関する項 |
表19-5 TIB/Rendezvousリンク・プロパティ
属性 | NULL | 値の変更 | 動的変更 |
---|---|---|---|
service
|
可(1) | 不可 | 不可 |
daemon
|
可(1) | 不可 | 不可 |
network
|
可(1) | 不可 | 不可 |
cm_name
|
可(2) | 不可 | 不可 |
cm_ledger
|
可(2) | 不可 | 不可 |
表19-5に関する注意
service
、daemon
またはnetwork
がNULL
の場合は、システムのデフォルト値が使用されます。
cm_name
およびcm_ledger
属性は、TIB/Rendezvousの証明済メッセージがサポートされる将来の使用に備えて確保されています。現在、TIB/Rendezvousリンクの構成時には、これらのパラメータにNULL
を指定する必要があります。
表19-6は、TIB/Rendezvousメッセージ・システムが使用される場合にサポートされているオプションの構成プロパティをまとめたものです。この表は、プロパティ名、そのプロパティの適用場所、プロパティを変更できるかどうか、変更可能な場合は値が動的に変更可能かどうかを示しています。サポートされているのはこの表に示すプロパティのみで、その他のプロパティは無視されます。
表19-6 TIB/Rendezvousのオプション・プロパティ
プロパティ名 | 用途 | 値の変更 | 動的変更 |
---|---|---|---|
AQ_MsgProperties |
ジョブ | 可 | 可 |
MsgBatchSize |
ジョブ | 可 | 可 |
PreserveMessageID |
ジョブ | 可 | 可 |
RV_discardAmount | ジョブ | 可 | 不可 |
RV_limitPolicy |
ジョブ | 可 | 不可 |
RV_maxEvents |
ジョブ | 可 | 不可 |
この項では、DBMS_MGWADM.CREATE_MSGSYSTEM_LINK
およびDBMS_MGWADM.ALTER_MSGSYSTEM_LINK
のoptions
パラメータを使用して指定できるオプションのリンク・プロパティについて説明します。それぞれの項目には、そのプロパティを使用できるメッセージ・システムも示されています。
このプロパティはWebSphere MQ JMSで使用されます。これはブローカ制御キュー名を指定するプロパティで、WebSphere MQ JMS管理ツールのプロパティBROKERCONQ
に対応します。WebSphere MQのデフォルトはSYSTEM.BROKER.CONTROL.QUEUE
です。
このプロパティはWebSphere MQ JMSで使用されます。これはブローカ・パブリッシュ・キュー名を指定するプロパティで、WebSphere MQ JMS管理ツールのプロパティBROKERPUBQ
に対応します。WebSphere MQのデフォルトはSYSTEM.BROKER.DEFAULT.STREAM
です。
このプロパティはWebSphere MQ JMSで使用されます。これはブローカ・キュー・マネージャ名を指定するプロパティで、WebSphere MQ管理ツールのプロパティBROKERQMGR
に対応します。このプロパティを設定しない場合、デフォルトは使用されません。
このプロパティはWebSphere MQ JMSで使用されます。これはブローカのバージョン番号を指定するプロパティで、WebSphere MQ JMS管理ツールのプロパティBROKERVER
に対応します。WebSphere MQのデフォルトは0
です。
このプロパティは、WebSphere MQ Base JavaおよびWebSphere MQ JMSで使用されます。使用されるクライアント・チャネル定義表(CCDT)のURL文字列を指定します。このプロパティが設定されていない場合、CCDTは使用されません。CCDTが使用される場合、SYS
.MGW_MQSERIES_PROPERTIES
.channel
リンクのプロパティは、NULL
である必要があります。
このプロパティは、WebSphere MQ Base JavaおよびWebSphere MQ JMSで使用されます。このプロパティでは、WebSphere MQメッセージ・ヘッダーに含まれる情報の翻訳に使用するキャラクタ・セットの識別子を指定します。識別子は、説明的な文字列ではなくキャラクタ・セットの整数値(819
など)で指定する必要があります。このプロパティを設定しない場合は、WebSphere MQのデフォルト・キャラクタ・セット819
が使用されます。
このプロパティはWebSphere MQ JMSで使用されます。このプロパティはWebSphere MQ JMSトピック・リンクにのみ適用されます。SYS.MGW_MQSERIES_PROPERITES
の属性inbound_log_queue
およびoutbound_log_queue
では、伝播ロギングに使用するWebSphere MQ JMSトピックの名前を指定します。このプロパティでは、ログ・トピック・サブスクライバによって永続サブスクリプション・メッセージが取り出されるWebSphere MQキューの名前を指定します。WebSphere MQのデフォルト・キューはSYSTEM.JMS.D.SUBSCRIBER.QUEUE
です。
このプロパティはWebSphere MQ JMSで使用されます。これはブローカからの確認が必要なパブリッシュ・リクエスト間の間隔(メッセージ数)を指定するプロパティで、WebSphere MQ JMS管理ツールのプロパティPUBACKINT
に対応します。WebSphere MQのデフォルトは25
です。
このプロパティは、WebSphere MQ Base JavaおよびWebSphere MQ JMSで使用されます。このプロパティでは、MQReceiveExit
インタフェースを実装するクラスの完全修飾Javaクラス名を指定します。このクラスは、メッセージ・ゲートウェイ・エージェントのCLASSPATH
に含まれている必要があります。デフォルトはありません。
この初期化文字列はWebSphere MQ JMSで使用されます。この初期化文字列は、WebSphere MQ JMSからMQ_ReceiveExit
で指定したクラスのコンストラクタに渡され、WebSphere MQ JMS管理ツールのプロパティRECEXITINIT
に対応します。デフォルトはありません。
このプロパティは、WebSphere MQ Base JavaおよびWebSphere MQ JMSで使用されます。このプロパティでは、MQSecurityExit
インタフェースを実装するクラスの完全修飾Javaクラス名を指定します。このクラスは、メッセージ・ゲートウェイ・エージェントのCLASSPATH
に含まれている必要があります。デフォルトはありません。
この初期化文字列はWebSphere MQ JMSで使用されます。この初期化文字列は、WebSphere MQ JMSからMQ_SecurityExit
で指定したクラスのコンストラクタに渡され、WebSphere MQ JMS管理ツールのプロパティSECEXITINIT
に対応します。デフォルトはありません。
このプロパティは、WebSphere MQ Base JavaおよびWebSphere MQ JMSで使用されます。このプロパティでは、MQSendExit
インタフェースを実装するクラスの完全修飾Javaクラス名を指定します。このクラスは、メッセージ・ゲートウェイ・エージェントのCLASSPATH
に含まれている必要があります。デフォルトはありません。
この初期化文字列はWebSphere MQ JMSで使用されます。この初期化文字列は、WebSphere MQ JMSからMQ_SendExit
で指定したクラスのコンストラクタに渡されます。WebSphere MQ JMS管理ツールのプロパティSENDEXITINIT
に対応します。デフォルトはありません。
このプロパティは、WebSphere MQ Base JavaおよびWebSphere MQ JMSで使用されます。SSL_RSA_WITH_RC4_128_MD5
などのように、使用されるCipherSuiteを指定します。これは、WebSphere MQのSSLCIPHERSUITE
管理プロパティに対応します。
このプロパティはWebSphere MQ JMSで使用されます。証明書失効リスト(CRL)チェックに使用可能なLDAPサーバーのリスト(スペース区切り形式)を指定します。このプロパティが設定されていない場合、CRLチェックは実行されません。これは、WebSphere MQのSSLCRL
管理プロパティに対応します。このオプションは、WebSphere MQ Base Javaについてはサポートされていません。CRLチェックが必要な場合は、かわりにクライアント・チャネル定義表(CCDT)を使用する必要があります。
このプロパティは、WebSphere MQ Base JavaおよびWebSphere MQ JMSで使用されます。使用されるCipherSuiteがIBM Java JSSE FIPSプロバイダ(IBMSJSSEFIPS)でサポートされているかどうかを示します。値は、TRUE
またはFALSE
です。デフォルト値はFALSE
です。これは、WebSphere MQのSSLFIPSREQUIRED
管理プロパティに対応します。
このプロパティは、WebSphere MQ Base JavaおよびWebSphere MQ JMSで使用されます。接続の確立のためにキュー・マネージャの証明書と一致する必要がある識別名(DN)を指定します。このプロパティが設定されていない場合、DNチェックは実行されません。これは、WebSphere MQのSSLPEERNAME
管理プロパティに対応します。
このプロパティは、WebSphere MQ Base JavaおよびWebSphere MQ JMSで使用されます。秘密鍵が再ネゴシエーションされる前に送受信されるバイト合計数を指定します。このプロパティが設定されていない場合、キーは再ネゴシーエションされません。これは、WebSphere MQのSSLRESETCOUNT
管理プロパティに対応します。
この項では、DBMS_MGWADM
.REGISTER_FOREIGN_QUEUE
のoptions
パラメータを使用して指定できるオプションの外部キュー・プロパティについて説明します。それぞれの項目には、そのプロパティを使用できるメッセージ・システムも示されています。
このプロパティはWebSphere MQ JMSで使用されます。このプロパティは、JMSキューまたはトピックへの発信伝播にのみ使用されます。宛先に送信されるテキスト文字列のエンコーディングに使用するキャラクタ・セットを指定します。説明的な文字列ではなくキャラクタ・セットの整数値(1208
など)で指定する必要があります。メッセージ・ゲートウェイで使用されるデフォルト値は1208
(UTF8)です。
このプロパティはWebSphere MQ JMSで使用されます。これは、このトピックのサブスクライバによって永続サブスクリプション・メッセージが取り出されるWebSphere MQキューの名前を表す文字列です。このプロパティはWebSphere MQ JMSトピックにのみ適用されます。WebSphere MQのデフォルト・キューはSYSTEM.JMS.D.SUBSCRIBER.QUEUE
です。
このプロパティはWebSphere MQ JMSで使用されます。このプロパティは、JMSキューまたはトピックへの発信伝播にのみ使用されます。サポートされる値は、TRUE
およびFALSE
です。TRUE
は、WebSphere MQでメッセージをJMSメッセージとして格納する必要があることを示します。FALSE
は、JMS以外のアプリケーションでアクセスできるように、WebSphere MQでメッセージをJMS以外のフォーマットで格納する必要があることを示します。デフォルトはTRUE
です。
このプロパティはWebSphere MQ Base Javaで使用されます。このプロパティでは、WebSphere MQ Base JavaのMQQueueManager.accessQueue
メソッドのopenOptions
引数に使用する値を指定します。値は必須ではありません。値を指定した場合は、メッセージ・ゲートウェイ・エージェントによりエンキュー(put
)操作に指定した値にMQOO_OUTPUT
が追加されます。デキュー(get
)操作の場合はMQOO_INPUT_SHARED
が追加されます。デフォルトは、エンキュー/put操作の場合はMQOO_OUTPUT
、デキュー/get操作の場合はMQOO_INPUT_SHARED
です。
この項では、オプションのパラメータのDBMS_MGWADM
.CREATE_JOB
およびDBMS_MGWADM
.ALTER_JOB
を使用して指定可能なオプションの伝播ジョブのプロパティについて説明します。
このプロパティはTIB/Rendezvousで使用されます。このプロパティでは、メッセージ伝播時のOracle Streams AQメッセージ・プロパティの使用方法を指定します。サポートされる値は、TRUE
およびFALSE
です。デフォルト値はFALSE
です。
出力伝播ジョブの場合、値がTRUE
(大/小文字区別なし)であれば、メッセージ・ゲートウェイ・エージェントはTIB/Rendezvousサブジェクトに伝播されるメッセージにほとんどのOracle Streams AQメッセージ・プロパティのフィールドを追加します。
着信伝播ジョブの場合、値がTRUE
(大/小文字区別なし)であれば、メッセージ・ゲートウェイ・エージェントは予約済の名前を持つフィールドをソース・メッセージ内で検索し、存在する場合は、その値を使用して対応するOracle Streams AQメッセージ・プロパティを設定します。フィールドが存在しない場合、または予期したデータ型でない場合は、デフォルト値が使用されます。
このプロパティはWebSphere MQ JMSおよびOracle JMSで使用されます。このプロパティは、伝播先がJMSメッセージ・システムの場合に使用できます。このプロパティでは、JMSのMessageProducer
により伝播先キューにエンキューされるメッセージの配信モードを設定します。デフォルトはPRESERVE_MSG
です。サポートされている値と関連配信モードは、次のとおりです。
PERSISTENT
(DeliveryMode.PERSISTENT
)
NON_PERSISTENT
(DeliveryMode.NON_PERSISTENT
)
PRESERVE_MSG
(ソースJMSメッセージの配信モードを使用)
このプロパティはWebSphere MQ JMSおよびOracle JMSで使用されます。このプロパティは、伝播元がJMSメッセージ・システムの場合に使用できます。このプロパティにより、JMSのTopicSubscriber
のnoLocal
パラメータを設定します。TRUE
は、このトピックに同じメッセージ・ゲートウェイ・リンクを介してパブリッシュされたメッセージが伝播されないことを示します。デフォルト値のFALSE
は、この種のメッセージがトピックから伝播されることを示します。
このプロパティは、サポートされている任意のメッセージ・システムで使用できます。このプロパティでは、1つのトランザクションで伝播するメッセージの最大数(可能な場合)を指定します。デフォルトは30です。
このプロパティは、WebSphere MQ Base Java、WebSphere MQ JMS、TIB/RendezvousおよびOracle JMSで使用されます。メッセージが宛先メッセージ・システムに伝播するときに、メッセージ・ゲートウェイでオリジナルのメッセージ識別子を保持する必要があるかどうかを指定します。正確な詳細は、関係するメッセージ・システムの機能に応じて異なります。サポートされる値は、TRUE
およびFALSE
です。デフォルト値はFALSE
です。
このプロパティはTIB/Rendezvousで使用されます。このプロパティではキューの廃棄量を指定します。着信伝播ジョブにのみ有効です。デフォルトは0です。
このプロパティはTIB/Rendezvousで使用されます。このプロパティでは、キュー制限のオーバーフローを解決するための制限ポリシーを指定します。着信伝播ジョブにのみ有効です。デフォルトはDISCARD_NONE
です。サポートされる値と関連制限ポリシーは、DISCARD_NONE
、DISCARD_FIRST
、DISCARD_LAST
およびDISCARD_NEW
です。
DISCARD_NONE
(TibrvQueue.DISCARD_NONE
)
DISCARD_FIRST
(TibrvQueue.DISCARD_FIRST
)
DISCARD_LAST
(TibrvQueue.DISCARD_LAST
)
DISCARD_NEW
(TibrvQueue.DISCARD_NEW
)
このプロパティはTIB/Rendezvousで使用されます。このプロパティでは、キューの最大イベント制限を指定します。着信伝播ジョブにのみ有効です。デフォルトは0です。