COracle Messaging Gateway
Oracle Messaging Gatewayの概要
メッセージ・ゲートウェイ管理パッケージDBMS_MGWADMでは、メッセージ・ゲートウェイ・エージェントの作成、エージェントの管理、メッセージ・システム・リンクの作成、Oracle以外のキューの登録および伝播ジョブの設定のためのインタフェースを提供しています。
トピック:
Oracle Messaging Gatewayの概要
メッセージ・ゲートウェイを使用すると、Oracle以外のメッセージ・システムとOracle Database Advanced Queuingに基づくアプリケーション間の通信が可能になります。
Oracle Database Advanced Queuingでは、2つのOracle Database Advanced Queuingキュー間の伝播機能が提供されており、E-Business(IDAPを介したHTTP)が可能です。メッセージ・ゲートウェイでは、この機能をOracle以外のメッセージ・システムに基づくアプリケーションに拡張しています。
メッセージ・ゲートウェイはOracle Database Advanced QueuingおよびOracle Databaseと統合されているため、信頼性のあるメッセージ配信が可能です。メッセージ・ゲートウェイを使用すると、永続性がサポートされているOracle以外のメッセージ・システムとOracle Database Advanced Queuing間で、メッセージの配信が1回のみ行われることが保証されます。PL/SQLインタフェースでは、特にOracle Database Advanced Queuingの使用方法をすでによく理解している開発者を対象に、簡単に使用できる管理APIが提供されます。
今回のリリースのメッセージ・ゲートウェイでは、Oracle Database Advanced QueuingとWebSphere MQ 9.0およびTIB/Rendezvous 8.2ベースのアプリケーションの統合がサポートされています。
Oracle Messaging Gatewayの機能
メッセージ・ゲートウェイの機能は次のとおりです。
-
Oracle Database Advanced Queuingメッセージ伝播の拡張
メッセージ・ゲートウェイでは、Oracle Database Advanced QueuingとOracle以外のメッセージ・システム間でメッセージが伝播されます。Oracle Database Advanced Queuingアプリケーションによって送信されたメッセージは、Oracle以外のメッセージ・システム・アプリケーションで受信できます。逆に、Oracle以外のメッセージ・システム・アプリケーションによってパブリッシュされたメッセージは、Oracle Database Advanced Queuingアプリケーションで使用できます。
-
Java Message Service(JMS)メッセージ・システムに対するサポート
メッセージ・ゲートウェイでは、Oracle Java Message Service(Oracle JMS)およびWebSphere MQ Java Message Service(WebSphere MQ JMS)間でメッセージを伝播します。
-
システム固有のメッセージ・フォーマットのサポート
メッセージ・ゲートウェイでは、メッセージ・システム固有のメッセージ・フォーマットがサポートされています。Oracle Database Advanced Queuingメッセージは、
RAW
または任意のOracleオブジェクト型のペイロードを持てます。WebSphere MQメッセージには、テキスト・メッセージまたはバイト・メッセージが有効です。TIB/Rendezvousメッセージは、ネスト化されたデータ型MSG
および符号のない整数以外の任意のTIB/Rendezvousワイヤ・フォーマットのデータ型にできます。 -
メッセージの変換
メッセージ・ゲートウェイを使用すると、Oracle Database Advanced QueuingメッセージとOracle以外のメッセージ・システムのメッセージ間でメッセージを簡単に変換できます。メッセージは、メッセージ・ゲートウェイによって提供される自動メッセージ変換ルーチンまたはユーザーによって提供されたメッセージ変換関数のいずれかを介して変換されます。
ノート:
-
メッセージ・ゲートウェイでは、JMSメッセージ・システムとJMS以外のメッセージ・システム間のメッセージ伝播はサポートされていません。
-
Oracle Database AQシャード・キューは、Oracle Database 12cリリース2 (12.2)のMGWではサポートされません。
-
-
Oracle Databaseとの統合
メッセージ・ゲートウェイは、Oracle Database Advanced Queuingと類似したPL/SQLインタフェースによって管理されています。構成情報は、Oracle Database表に格納されています。メッセージの伝播は、Oracle Databaseサーバーの外部プロセスによって実行されます。
-
メッセージ配信の保証
トランザクションが伝播元のメッセージ・システムと伝播先のメッセージ・システムの両方でサポートされている場合、メッセージ・ゲートウェイでは永続メッセージが1回のみ伝播されることが保証されます。メッセージが永続メッセージではないか、伝播元または伝播先のメッセージ・システムでトランザクションがサポートされていない場合は、伝播が行われることが保証されるのみです。
-
セキュリティのサポート
メッセージ・ゲートウェイでは、Oracle DatabaseおよびOracle以外のメッセージ・システムのクライアント認証がサポートされています。
メッセージ・ゲートウェイでは、メッセージ・ゲートウェイ・エージェントによるIBM WebSphere MQおよびWebSphere MQ JMS接続においてSecure Socket Layer(SSL)もサポートされています。
-
複数エージェントのサポート
メッセージ・ゲートウェイでは、1つのデータベースに対して複数のエージェントがサポートされています。伝播ジョブを機能、編成または作業負荷別にパーティション化し、異なるメッセージ・ゲートウェイ・エージェントに割り当てることができます。これにより、メッセージ・ゲートウェイがOracle RAC環境で拡張され、伝播ジョブのグループ化および分離が可能になります。
Oracle Messaging Gatewayのアーキテクチャ
メッセージ・ゲートウェイには、次の2つの主要コンポーネントがあります。
-
管理パッケージDBMS_MGWADM
-
メッセージ・ゲートウェイ・エージェント
図C-1は、これらのコンポーネントがOracle DatabaseとOracle以外のメッセージ・システム間で連動する方法を示したものです。
管理パッケージDBMS_MGWADM
メッセージ・ゲートウェイ管理パッケージDBMS_MGWADM
では、指定されたメッセージ・ゲートウェイ・エージェントの作成、エージェントの管理、メッセージ・システム・リンクの作成、Oracle以外のキューの登録および伝播ジョブの設定のためのインタフェースを提供しています。
メッセージ・ゲートウェイ・エージェントが稼働中かどうかにかかわらず、構成を変更するには、ユーザーはパッケージのプロシージャをコールします。メッセージ・ゲートウェイ・エージェントが稼働中の場合は、パッケージ内のプロシージャが構成の変更に関する通知をエージェントに送信します。大部分の構成変更では、エージェントは動的に構成を変更しますが、一部、変更を反映するために、エージェントを停止して再起動する必要がある場合があります。パッケージ内のすべてのプロシージャはシリアライズされており、メッセージ・ゲートウェイ・エージェントが通知を作成時と同じ順序で受信し、処理できることが保証されています。
関連項目:
DBMS_MGWADM
パッケージの詳細は、『Oracle Database PL/SQLパッケージ・プロシージャおよびタイプ・リファレンス』を参照してください。
Oracle Messaging Gatewayのエージェント
メッセージ・ゲートウェイ・エージェントは、Oracle Databaseサーバーの外部プロセスとして実行され、伝播ジョブを処理します。起動および停止するには、DBMS_MGWADM
パッケージのSTARTUP
およびSHUTDOWN
プロシジャをそれぞれコールします。
メッセージ・ゲートウェイ・エージェントには、マルチスレッド伝播エンジンおよびメッセージ・システム用のドライバ・セットが含まれます。伝播エンジンによって伝播ジョブが適切にスケジューリングされ、伝播処理が同時に処理されます。エージェントのポーリング・スレッドによって、有効な伝播ジョブのソース・キューが定期的にポーリングされ、メッセージが使用可能な場合は、ワーカー・スレッドが起動して伝播ジョブが処理されます。Oracle以外のメッセージ・システムのドライバは、すべてのメッセージ操作においてメッセージ・システムのクライアントとして実行されます。
Oracle Database
メッセージ・ゲートウェイでは、Oracle Databaseとして、Oracle Database Advanced QueuingとOracle以外のメッセージ・システム間のメッセージ伝播用メカニズムを提供しています。Oracle Database Advanced Queuingは、伝播元または伝播先のいずれかの立場ですべての伝播ジョブに関与しています。
メッセージ・ゲートウェイは、PL/SQL管理パッケージDBMS_MGWADM
を介して管理されています。すべての構成情報とメッセージ・ゲートウェイの実行状態情報はOracle Databaseに格納され、データベース・ビューからアクセスできます。
メッセージ・ゲートウェイ・エージェントは、Oracle Databaseサーバーの外部プロシージャとして実行されます。したがって、関連付けられたデータベース・サーバーが実行中の場合のみ実行されます。
Oracle以外のメッセージ・システム
メッセージ・ゲートウェイ・エージェントは、メッセージ・システム・リンクを介してOracle以外のメッセージ・システムに接続されます。メッセージ・システム・リンクとは、メッセージ・ゲートウェイ・エージェントとOracle以外のメッセージ・システム間の通信チャネルです。ユーザーは、管理パッケージDBMS_MGWADM
を使用して、同じまたは異なるOracle以外のメッセージ・システムへの複数のリンクを構成できます。
WebSphere MQキュー、TIB/Rendezvousサブジェクト、WebSphere MQ JMS宛先(キューおよびトピック)などのOracle以外のメッセージ・システム内のキューは、すべてメッセージ・ゲートウェイの伝播元および伝播先として機能できます。これらのキューを外部キューと呼びます。ソース・キュー、宛先キューまたは例外キューとしてメッセージ伝播に関与するすべての外部キューは、管理パッケージを経由して登録する必要があります。外部キューを登録しても、Oracle以外のメッセージ・システムに物理的なキューは作成されず、キューにアクセスするためのメッセージ・システム・リンク、システム固有の名前、ドメイン(キューまたはトピック)など、キューに関する情報が記録されるだけです。物理的なキューは、Oracle以外のメッセージ・システムの管理インタフェースを介して作成する必要があります。
関連項目:
伝播処理の概要
メッセージが1つのメッセージ・システムから別のメッセージ・システムに伝播されるようにするには、伝播ジョブを定義する必要があります。伝播ジョブは、ソース・キュー、宛先キュー、および伝播ジョブの処理に影響する他の各種属性を定義します。
伝播ソースがPoint-to-Pointキューの場合は、メッセージ・ゲートウェイ・エージェントによってキュー内のすべてのメッセージが宛先に移動されます。伝播ソースがトピック(パブリッシュ・サブスクライブ)の場合は、メッセージ・ゲートウェイ・エージェントによって伝播ソース・トピックのサブスクリプションが作成されます。サブスクリプションを作成すると、エージェントによってパブリッシュされたすべてのメッセージがトピックに移動されます。
伝播ジョブはスケジュールが有効になったときに処理されます。伝播ジョブを無効にすると伝播処理が停止されますが、メッセージ・サブスクリプションは停止されません。
メッセージ・ゲートウェイ・エージェントが伝播ジョブを処理すると、ソース・キューからメッセージがデキューされ、宛先キューへメッセージがエンキューされます。メッセージは、各メッセージの伝播時に、ソース・メッセージ・システム固有のフォーマットから宛先メッセージ・システム固有のフォーマットに変換されます。メッセージ・ゲートウェイでは、一般的に使用されている単純なメッセージ・フォーマット間のメッセージ変換は自動的に実行されます。独自のメッセージ変換機能を提供することによって、メッセージ変換をカスタマイズできます。
メッセージ・ゲートウェイ・エージェントがソース・フォーマットから宛先フォーマットへのメッセージ変換に失敗すると、例外キューがある場合は、エージェントによってメッセージがソース・キューから例外キューに移動され、伝播ジョブの処理が続行されます。
伝播ジョブの処理中に障害が発生した場合、メッセージ・ゲートウェイ・エージェントはジョブを停止する前に、指数バックオフ・スキームで最大16回ジョブを再試行します(2秒から最大30分)。
信頼できるメッセージ配信を保証するために、メッセージ・ゲートウェイではトランザクションと永続メッセージをサポートしているメッセージ・システムでロギング・キューが必要になります。メッセージ・ゲートウェイ・エージェントでは、ロギング・キューを使用して伝播ジョブの処理状態を格納し、障害から伝播処理を復元できるようにしています。
Oracle Messaging Gatewayスタート・ガイド
次のトピックでは、Oracle Messaging Gateway (MGW)の前提条件と、メッセージ・ゲートウェイのロード、設定およびアンロード手順を説明します。また、mgw.ora
初期化ファイルの設定および変更方法も説明します。
Oracle Messaging Gatewayの前提条件
メッセージ・ゲートウェイでは、メッセージ・ゲートウェイ・エージェントごとに1つのOracle Schedulerジョブを使用します。JOB_QUEUE_PROCESSES
データベース初期化パラメータの値がゼロの場合、Oracle Schedulerジョブは実行されません。値がゼロ以外の場合、事実上、この値は同時に実行できるSchedulerジョブおよびジョブ・キューのジョブの最大数です。
ゼロではない値が設定され、各メッセージ・ゲートウェイ・エージェントの起動をSchedulerジョブが処理するのに十分な大きさであることを確認してください。
Oracle Messaging Gatewayのロードおよび設定
メッセージ・ゲートウェイを実行する前に、次の手順を実行してください。
-
Oracle RAC環境におけるOracle Messaging Gatewayの構成
ノート:
この設定手順は、Windowsの32ビットおよび64ビット・バージョンとUNIXベースのオペレーティング・システムの64ビット・バージョン固有のものです。タスクは、「Windowsオペレーティング・システムのみ」または「Linux Operating Systemのみ」と表示されている以外は、WindowsおよびUNIXベースのオペレーティング・システム両方に適用されます。その他のオペレーティング・システムについては、オペレーティング・システム固有のドキュメントを参照してください。
データベースへのデータベース・オブジェクトのロード
SQL*Plusを使用して、ユーザーSYS
またはSYSDBA
としてORACLE_HOME
/mgw/admin/catmgw.sql
を実行します。このスクリプトによって、ロール、表、ビュー、オブジェクト型およびPL/SQLパッケージを含む、メッセージ・ゲートウェイに必要なデータベース・オブジェクトがロードされます。これによって、メッセージ・ゲートウェイのPL/SQLパッケージのパブリック・シノニムが作成されます。MGW_ADMINISTRATOR_ROLE
およびMGW_AGENT_ROLE,
という2つのロールが作成され、特定の権限が付与されます。すべてのオブジェクトは、SYS
に所有されます。
ノート:
CDB環境では、ORACLE_HOME
/mgw/admin/catmgw.sql
をPDB rootとして実行します。
外部プロシージャのlistener.oraの変更
この手順は、UNIXベースのオペレーティング・システム専用です。Windowsオペレーティング・システムでは、リスナーについての静的サービス情報は必要ありません。
メッセージ・ゲートウェイのPL/SQLパッケージで外部プロシージャがコールされるように、listener.ora
を変更する必要があります。
例C-1 リスナーの静的サービス情報の追加
# Add a SID_DESC SID_LIST_LISTENER= (SID_LIST= (SID_DESC = (SID_NAME= mgwextproc) (ENVS= "LD_LIBRARY_PATH=JRE_HOME/lib/amd64:JRE_HOME/lib/amd64/server:ORACLE_HOME/lib") (ORACLE_HOME=ORACLE_HOME) (PROGRAM = extproc))
表C-1 SID_DESCパラメータ
パラメータ | 説明 |
---|---|
|
|
|
外部プロシージャを実行するために必要な環境変数 JRE_HOME/lib/PLATFORM_TYPE JRE_HOME/lib/PLATFORM_TYPE/server ORACLE_HOME/lib サード・パーティのメッセージ・システムに必要な追加ライブラリも含まれる必要があります。「Oracle以外のメッセージ・システムの設定」を参照してください。
|
|
ユーザーのOracleホーム・ディレクトリ。 |
|
外部プロシージャのエージェントの名前( |
ノート:
ORACLE_HOME
がOracleインストレーションのルート・ディレクトリを表すように、JRE_HOME
はJREインストレーションのルート・ディレクトリを表します。Oracle DatabaseとともにインストールされたJREの使用をお薦めします。
例C-1では、SID_NAME
mgwextproc
をLinux x86用のlistener.oraファイルに追加します。
外部プロシージャのtnsnames.oraの変更
外部プロシージャに対して、tnsnames.ora
で、例C-2で示したように、接続記述子がlistener.ora
で構成された情報に一致するネット・サービス名MGW_AGENT
を構成します。ネット・サービス名は、MGW_AGENT
である必要があります(この値は固定)。KEY
の値は、listener.ora
でIPCプロトコルに対して指定されたKEY
の値に一致する必要があります。SIDの値は、listener.ora
でSID_DESC
エントリのSID_NAME
に対して指定された値に一致する必要があります。
ノート:
sqlnet.ora
のnames.default_domain
パラメータを使用してデフォルト・ドメインを設定した場合は、そのドメインをtnsnames.ora
のネット・サービス名MGW_AGENT
に追加する必要があります。たとえば、sqlnet.ora
にエントリnames.default_domain=acme.com
が含まれる場合、tnsnames.ora
のネット・サービス名はMGW_AGENT.acme.com
である必要があります。
例C-2 MGW_AGENTの構成
MGW_AGENT = (DESCRIPTION= (ADDRESS_LIST= (ADDRESS= (PROTOCOL=IPC)(KEY=EXTPROC))) (CONNECT_DATA= (SID=mgwextproc)))
mgw.ora初期化ファイルの設定
メッセージ・ゲートウェイのデフォルトの初期化ファイルORACLE_HOME
/mgw/admin/mgw.ora
は、テキスト・ファイルです。メッセージ・ゲートウェイの外部プロシージャは、その初期化ファイルを使用して初期化パラメータを取得し、メッセージ・ゲートウェイ・エージェントを起動します。ORACLE_HOME
/mgw/admin/sample_mgw.ora
をmgw.ora
にコピーし、状況に応じて変更します。
次のプロシージャでは、メッセージ・ゲートウェイのすべてのアプリケーションに必要な環境変数およびその他のパラメータを設定します。
Oracle Messaging Gateway管理者ユーザーの作成
メッセージ・ゲートウェイの管理作業を実行するには、例C-3に示したように、MGW_ADMINISTRATOR_ROLE
権限を所有するデータベース・ユーザーを作成する必要があります。
例C-3 メッセージ・ゲートウェイ管理者ユーザーの作成
CREATE USER admin_user IDENTIFIED BY admin_password; GRANT CREATE SESSION to admin_user; GRANT MGW_ADMINISTRATOR_ROLE to admin_user;
Oracle Messaging Gatewayのエージェント・ユーザーの作成
メッセージ・ゲートウェイ・エージェントからデータベースへの接続を確立するには、例C-4に示したように、MGW_AGENT_ROLE
権限を所有するデータベース・ユーザーを作成する必要があります。
例C-4 メッセージ・ゲートウェイ・エージェント・ユーザーの作成
CREATE USER agent_user IDENTIFIED BY agent_password; GRANT CREATE SESSION to agent_user; GRANT MGW_AGENT_ROLE to agent_user;
Oracle Messaging Gateway接続情報の構成
メッセージ・ゲートウェイ・エージェント・ユーザーの作成後、管理ユーザーとしてDBMS_MGWADM.ALTER_AGENT
を使用し、例C-5に示したように、メッセージ・ゲートウェイ・エージェントによるデータベースへの接続に使用されるユーザー名、パスワードおよびデータベース接続文字列でメッセージ・ゲートウェイを構成します。「Oracle Messaging Gatewayのエージェント・ユーザーの作成」で作成したメッセージ・ゲートウェイのユーザー名とパスワードを使用します。データベース接続文字列パラメータは、tnsnames.ora
の新しいサービス名(パフォーマンスを向上させるにはIPCプロトコルを使用)またはNULL
のいずれかに設定できます。NULL
に設定する場合は、mgw.ora
にoracle_sid
パラメータを設定する必要があります。
このリリースの場合は、DBMS_MGWADM.ALTER_AGENT
をコールするとき、常にデータベース接続文字列パラメータに対してNULL
以外の値を指定してください。
例C-5 メッセージ・ゲートウェイの接続情報の構成
set echo off set verify off connect admin_user ACCEPT password CHAR PROMPT 'Enter the password for AGENT_USER: ' HIDE EXEC DBMS_MGWADM.ALTER_AGENT( agent_name => 'default_agent', username => 'agent_user', password => '&password', database => 'agent_database');
Oracle RAC環境におけるOracle Messaging Gatewayの構成
メッセージ・ゲートウェイ・エージェント接続に使用する接続情報の構成
メッセージ・ゲートウェイ・エージェントによるすべてのデータベース接続先を、メッセージ・ゲートウェイ・エージェントのプロセスが実行中のインスタンスにする必要があります。これにより、Oracle RAC環境で確実に適切なフェイルオーバー動作が得られます。このように接続を構成するには、インスタンスで少し異なる方法でtnsnames.ora
ファイルを使用させます。各ファイルには同じネット・サービス名のエントリがありますが、接続データはそのtnsnames.ora
ファイルに関連付けられているインスタンスのみを参照します。共通のネット・サービス名は、DBMS_MGWADM.ALTER_AGENT
を使用してメッセージ・ゲートウェイ・エージェントのデータベース接続情報を構成するときに、データベース・パラメータに使用されます。
たとえば、OraDB1
およびOraDB2
という2つのインスタンスで構成される2インスタンスOracle RAC環境で、ネット・サービス名AGENT_DB
が使用される場合、インスタンスOraDB1
のtnsnames.ora
は次のようになります。
AGENT_DB = (DESCRIPTION = (ADDRESS = (PROTOCOL = TCP)(HOST = myhost1.mycorp.com)(PORT = 1521)) (CONNECT_DATA = (SERVER = DEDICATED) (SERVICE_NAME = OraDB10.mycorp.com) (INSTANCE_NAME = OraDB1) ) )
OraDB2
のtnsnames.ora
は次のようになります。
AGENT_DB = (DESCRIPTION = (ADDRESS = (PROTOCOL = TCP)(HOST = myhost2.mycorp.com)(PORT = 1521)) (CONNECT_DATA = (SERVER = DEDICATED) (SERVICE_NAME = OraDB10.mycorp.com) (INSTANCE_NAME = OraDB2) ) )
その後、次のコマンドを実行して、メッセージ・ゲートウェイ・エージェント・ユーザーの接続情報を構成します。
EXEC DBMS_MGWADM.ALTER_AGENT( agent_name => 'default_agent', username => 'agent_user', password => 'agent_password', database => 'agent_db');
メッセージ・ゲートウェイ・エージェントに対するOracle RACインスタンスの設定
メッセージ・ゲートウェイは、Oracle Schedulerのデータベース・サービス・サポートを活用して、メッセージ・ゲートウェイ・エージェントの外部プロセスのサービス・アフィニティを指定します。デフォルトでは、メッセージ・ゲートウェイ・エージェントは、すべてのインスタンスにマップされているデフォルトのデータベース・サービスを使用します。メッセージ・ゲートウェイ・エージェントが、特定のグループのデータベース・インスタンスで起動するようにするには、これらのインスタンスにデータベース・サービスを作成し、DBMS_MGWADM
.CREATE_AGENT
またはDBMS_MGWADM
.ALTER_AGENT
プロシージャのSERVICE
パラメータを使用して、メッセージ・ゲートウェイ・エージェントに割り当てる必要があります。DBMS_MGWADM
.STARTUP
プロシージャによって、Oracle Schedulerジョブの実行時にメッセージ・ゲートウェイ・エージェントの外部プロセスを開始するSchedulerジョブが送られます。Schedulerジョブは、メッセージ・ゲートウェイ・エージェント用に構成されたデータベース・サービスを使用します。
SERVICE
パラメータで指定されるデータベース・サービスは、Oracle Schedulerジョブのサービス・アフィニティ(メッセージ・ゲートウェイの外部プロセスのサービス・アフィニティを含む)にのみ使用されます。メッセージ・ゲートウェイ・エージェント・ユーザーによって作成されたデータベース接続には使用されません。それらのJDBCクライアント接続は、DATABASE
およびCONNTYPE
パラメータに指定された値に基づきます。
Oracle以外のメッセージ・システムの設定
この項の内容は次のとおりです。
TIB/Rendezvousの設定
TIB/Rendezvous Javaクライアント・アプリケーションとして実行する場合、メッセージ・ゲートウェイ・エージェントには、メッセージ・ゲートウェイ・エージェントが実行されるコンピュータ上にTIB/Rendezvousソフトウェアをインストールする必要があります。この項では、TIBRV_HOME
はインストールされたTIB/Rendezvousソフトウェアの場所を参照します。
listener.oraの変更
Linux Operating Systemの場合は、メッセージ・ゲートウェイのエントリのLD_LIBRARY_PATH
には、TIB/Rendezvous共有ライブラリ・ファイルにアクセスするためのエージェントのTIBRV_HOME
/lib
を含める必要があります。
関連項目:
Windowsオペレーティング・システムの場合は、listener.ora
を変更する必要はありません。ただし、システム環境変数PATH
にTIBRV_HOME
\bin
を含める必要があります。
mgw.oraの変更
MGW_PRE_PATH
には、通常TIBRV_HOME/bin
にあるTIB/Rendezvousライセンス・チケット・ファイル(tibrv.tkt
)が入っているディレクトリを含める必要があります。
CLASSPATH
には、TIB/Rendezvous jarファイルTIBRV_HOME
/lib/tibrvj.jar
を含める必要があります。独自にカスタマイズされたTIB/Rendezvousアドバイザ・メッセージ・コールバックを使用する場合は、コールバック・クラスの場所も含める必要があります。
次のJavaプロパティを設定して、デフォルトの設定を変更します。
-
oracle.mgw.tibrv.encoding
-
oracle.mgw.tibrv.intraProcAdvSubjects
-
oracle.mgw.tibrv.advMsgCallback
関連項目:
例C-6 Javaプロパティの設定
setJavaProp oracle.mgw.tibrv.encoding=ISO8859_1 setJavaProp oracle.mgw.tibrv.intraProcAdvSubjects=_RV.> setJavaProp oracle.mgw.tibrv.advMsgCallback=MyadvCallback
WebSphere MQ Base JavaまたはJMSの設定
JavaおよびJMSのWebSphere MQクライアントとWebSphere MQクラスは、メッセージ・ゲートウェイ・エージェントが作動するコンピュータ上にインストールする必要があります。この項では、MQ_HOME
はインストール済クライアントの場所を参照します。Linux Operating Systemの場合は、この場所は常に/opt/mqm
です。Windowsオペレーティング・システムの場合は、インストール場所を変更できます。
listener.oraの変更
メッセージ・ゲートウェイによるWebSphere MQへのアクセスには、listener.ora
の変更は必要ありません。
mgw.oraの変更
WebSphere MQ Base Java (JMS以外)インタフェースを使用する場合は、「mgw.ora初期化ファイルの設定」の設定以外に少なくとも次のパスを含むようにCLASSPATH
を設定する必要があります。
-
MQ_HOME
/java/lib/com.ibm.mq.jar
-
MQ_HOME
/java/lib/connector.jar
WebSphere MQ JMSインタフェースを使用する場合は、CLASSPATH
を設定して、「mgw.ora初期化ファイルの設定」の設定以外に少なくとも次のパスを含める必要があります。
-
MQ_HOME
/java/lib/com.ibm.mqjms.jar
-
MQ_HOME
/java/lib/com.ibm.mq.jar
-
MQ_HOME
/java/lib/connector.jar
mgw.ora初期化ファイルについて
メッセージ・ゲートウェイ・エージェントを起動すると、メッセージ・ゲートウェイによって、テキスト・ファイルから初期化情報が読み込まれます。初期化ファイルには、初期化パラメータ、環境変数およびJavaプロパティを設定するための行が含まれています。各エントリは1行に指定する必要があります。先頭の空白は、すべての場合に切り捨てられます。
メッセージ・ゲートウェイの管理者は、DBMS_MGWADM
.CREATE_AGENT
およびDBMS_MGWADM
.ALTER_AGENT
により、メッセージ・ゲートウェイ・エージェントに使用される初期化ファイルを指定できます。初期化ファイルが指定されない場合、デフォルトの初期化ファイルが使用されます。
デフォルトのエージェントのデフォルト初期化ファイルは、ORACLE_HOME/mgw/admin/mgw.ora
にあります。
指定されたエージェントのデフォルト初期化ファイルはORACLE_HOME
/mgw
/admin
/mgw_AGENTNAME
.ora
で、AGENTNAME
は、メッセージ・ゲートウェイ・エージェントの名前を大文字で表記したものです。たとえば、エージェント名がmy_agent
の場合、エージェントのデフォルト初期化ファイルはORACLE_HOME
/mgw
/admin
/mgw_MY_AGENT
.ora
です。指定されたエージェントのデフォルトの初期化ファイルが検出されなかった場合、ORACLE_HOME
/mgw
/admin
/mgw
.ora
が使用されます。
mgw.oraの初期化パラメータ
通常、初期化パラメータは、「name
=
value
<NL>
」という書式の行で指定されます。ここで、name
はパラメータ名、value
はパラメータの値、<NL>
は改行を表します。
log_directory
使用方法:
メッセージ・ゲートウェイのログ・ファイルまたはトレース・ファイルが作成されるディレクトリを指定します。
形式:
log_directory = value
デフォルト:
ORACLE_HOME/mgw/log
例:
log_directory = /private/mgwlog
log_level
使用方法:
メッセージ・ゲートウェイ・エージェントによって記録されるロギングの詳細レベルを指定します。ロギング・レベルは、メッセージ・ゲートウェイ・エージェントの実行中にDBMS_MGWADM.SET_LOG_LEVEL
をコールすることで動的に変更できます。Oracleでは、常にログレベル0
(デフォルト値)を使用することをお薦めします。
形式:
log_level = value
値:
0
: 基本的なロギングの場合に使用します。これは、DBMS_MGWADM.BASIC_LOGGING
と同じです。
1
: 低レベルのトレースの場合に使用します。これは、DBMS_MGWADM.TRACE_LITE_LOGGING
と同じです。
2
: 高レベルのトレースの場合に使用します。これは、DBMS_MGWADM.TRACE_HIGH_LOGGING
と同じです。
3
: デバッグ・トレースの場合に使用します。これは、DBMS_MGWADM.TRACE_DEBUG_LOGGING
と同じです。
4
: 高レベルのデバッグ・トレースの場合に使用します。これは、DBMS_MGWADM.TRACE_DEBUG_HIGH_LOGGING
と同じです
例:
log_level = 0
mgw.oraの環境変数
ユーザーは、メッセージ・ゲートウェイの処理環境を直接制御できないため、初期化ファイルを使用して特定の環境変数を設定する必要があります。現在、メッセージ・ゲートウェイ・エージェントによって使用されている環境変数は、CLASSPATH
、MGW_PRE_PATH
およびORACLE_SID
です。
CLASSPATH
およびMGW_PRE_PATH
などの環境変数は、メッセージ・ゲートウェイ・エージェントが必要な共有オブジェクトやJavaクラスなどを検出できるように設定されます。環境変数は、「set
env_var
=value
<NL>
」または「setenv
env_var
=
value
<NL>
」という書式の行で指定されます。ここで、env_var
は設定する環境変数の名前、value
は環境変数の値、<NL>
は改行を表します。
CLASSPATH
使用方法:
Oracle Database Advanced QueuingとOracle以外のメッセージ・システム間の伝播のために、メッセージ・ゲートウェイ・エージェントに必要なJavaクラスを検索するJava Virtual Machineによって使用されます。
形式:
set CLASSPATH=value
例:
set CLASSPATH=ORACLE_HOME/jdbc/lib/ojdbc6.jar:JRE_HOME/lib/rt.jar: ORACLE_HOME/sqlj/lib/runtime12.jar:ORACLE_HOME/jlib/orai18n.jar:ORACLE_HOME/rdbms/ jlib/jmscommon.jar:ORACLE_HOME/rdbms/jlib/aqapi.jar:ORACLE_HOME/jlib/jta.jar: /opt/mqm/java/lib/com.ibm.mq.jar:/opt/mqm/java/lib/com.ibm.mqjms.jar:/opt/mqm/java /lib/connector.jar
MGW_PRE_PATH
使用方法:
メッセージ・ゲートウェイのプロセスによって継承されたパスの先頭に追加されます。Windowsオペレーティング・システムの場合、この変数を設定してライブラリjvm.dll
が存在する位置を指定する必要があります。
形式:
set MGW_PRE_PATH=value
例:
set MGW_PRE_PATH=JRE_HOME\bin\client
ORACLE_SID
使用方法:
メッセージ・ゲートウェイの構成時にサービス名が指定されていない場合に使用できます。
形式:
set ORACLE_SID=value
例:
set ORACLE_SID=my_sid
mgw.ora Javaプロパティ
TIB/Rendezvousサブジェクトを使用する場合、メッセージ・ゲートウェイJVMのJavaシステム・プロパティを指定する必要があります。これには、メッセージ・ゲートウェイ初期化ファイルのsetJavaProp
パラメータを使用できます。Javaプロパティは、「setJavaProp
prop_name
=
value
<NL>
」という書式の行で指定されます。ここで、prop_name
は設定するJavaプロパティの名前、value
はJavaプロパティの値、<NL>
は改行記号を表します。
oracle.mgw.batch_size
使用方法:
このJavaプロパティは、1つのトランザクションで伝播されるメッセージの最大数を表します。メッセージ・ゲートウェイのジョブ・オプションMsgBatchSize
が指定されていない場合のデフォルト値として機能します。デフォルトから変更された場合、予期されるメッセージのサイズとメッセージ・ゲートウェイ・エージェントのメモリーを考慮する必要があります(DBMS_MGWADM.ALTER_AGENT
のmax_memory
パラメータを参照)。このJavaプロパティの最小値は1、最大値は100で、デフォルトは30です。
関連項目:
『Oracle Database PL/SQLパッケージ・プロシージャおよびタイプ・リファレンス』のDBMS_MGWADMに関する項
構文:
setJavaProp oracle.mgw.batch_size=value
例:
setJavaProp oracle.mgw.batch_size=10
oracle.mgw.polling_interval
使用方法:
このパラメータは、伝播元キューの使用可能メッセージのポーリング間の経過時間(1000分の1秒単位)を指定します。メッセージ・ゲートウェイで使用されるデフォルトのポーリング間隔は5000ミリ秒(5秒)です。このJavaプロパティの最小値は100ミリ秒で、最大値は60秒です。
構文:
setJavaProp oracle.mgw.polling_interval=value
例:
setJavaProp oracle.mgw.polling_interval=1000
oracle.mgw.tibrv.encoding
使用方法:
このパラメータでは、TIB/Rendezvousメッセージ・システム・リンクで使用される文字エンコードを指定します。TIB/Rendezvous制約により、すべての構成済TIB/Rendezvousリンクに許可されている文字セットは1つのみです。デフォルトは、ISO 8859-1またはJavaシステム・プロパティfile.encoding
によって指定された文字セットです。
構文:
setJavaProp oracle.mgw.tibrv.encoding=value
例:
setJavaProp oracle.mgw.tibrv.encoding=ISO8859_1
oracle.mgw.tibrv.intraProcAdvSubjects
使用方法:
このパラメータはすべてのTIB/Rendezvousメッセージ・システム・リンクに使用され、プロセス内転送で表示されるシステム勧告サブジェクトの名前を指定します。
構文:
setJavaProp oracle.mgw.tibrv.intraProcAdvSubjects= advisorySubjectName[:advisorySubjectName]
例:
setJavaProp oracle.mgw.tibrv.intraProcAdvSubjects=_RV.>
oracle.mgw.tibrv.advMsgCallback
使用方法:
このパラメータはすべてのTIB/Rendezvousメッセージ・システム・リンクに使用され、TibrvMsgCallback
インタフェースを実装してシステム勧告メッセージを処理するJavaクラスの名前を指定します。指定されていない場合は、メッセージ・ゲートウェイによって提供されるデフォルトのシステム勧告メッセージ・ハンドラが使用され、メッセージ・ゲートウェイのログ・ファイルにシステム勧告メッセージが書き込まれます。指定されている場合は、クラス・ファイルが格納されているディレクトリがmgw.ora
のCLASSPATH
に含まれている必要があります。
構文:
setJavaProp oracle.mgw.tibrv.advMsgCallback=className
例:
setJavaProp oracle.mgw.tibrv.advMsgCallback=MyAdvCallback
oracle.net.tns_admin
使用方法:
このパラメータはtnsnames.oraファイルのディレクトリを指定します。メッセージ・ゲートウェイ・エージェントがJDBC Thinドライバを使用するよう構成されており、エージェントの接続情報のデータベース指定子がTNSNamesの別名の場合、設定する必要があります。JDBC OCIドライバが使用されている場合や、データベース指定子がTNSNamesの別名ではない場合は、設定する必要はありません。
構文:
setJavaProp oracle.net.tns_admin=value
例:
setJavaProp oracle.net.tns_admin=/myoraclehome/network/admin
Oracle Messaging Gatewayの操作
Oracle Messaging Gateway(MGW)をロードおよび設定すると、構成および実行が可能になります。DBMS_MGWADM
.ALTER_AGENT
を使用して、メッセージ・ゲートウェイ・エージェントがデータベース接続の確立に使用するユーザー名、パスワード、データベース指定子および接続タイプを設定できます。
トピック:
ノート:
例で示すすべてのコマンドは、MGW_ADMINISTRATOR_ROLE
が付与されたユーザーが実行する必要があります。
関連項目:
『Oracle Database PL/SQLパッケージ・プロシージャおよびタイプ・リファレンス』のDBMS_MGWADMおよびDBMS_MGWMSGに関する項
Oracle Messaging Gatewayのエージェントの構成
メッセージは、Oracle Database Advanced QueuingとOracle以外のメッセージ・システム間でメッセージ・ゲートウェイによって伝播されます。メッセージ・ゲートウェイ・エージェントは、Oracle Databaseサーバーの外部プロセスとして実行されます。
メッセージ・ゲートウェイでは、1つのデータベースに対して複数のエージェントがサポートされています。デフォルトのエージェントは、DEFAULT_AGENT
という名前で自動的に作成されます。伝播ジョブの分離およびグループ化、Oracle RAC環境での拡張を可能にする他の名前のエージェントも作成できます。通常、Oracle RAC環境でない1つのインスタンスの場合、デフォルトのエージェントのみで十分です。
この項の内容は次のとおりです。
メッセージ・ゲートウェイ・エージェントの作成
DBMS_MGWADM
.CREATE_AGENT
を使用して、追加のメッセージ・ゲートウェイ・エージェントを作成できます。メッセージ・エージェントのデフォルトのエージェントであるDEFAULT_AGENT
は、メッセージ・エージェントがインストールされると自動的に作成され、常駐するようになります。
エージェントは、作成時または作成後に、DBMS_MGWADM
.ALTER_AGENT
を使用して、エージェント・ユーザー、接続情報、データベース・サービスおよびリソース制限で構成できます。メッセージ・ゲートウェイ・エージェントは、起動前に、MGW_AGENT_ROLE
ロールが付与されているデータベース・ユーザーで構成される必要があります。
例C-7では、myagent
という名前のエージェントを作成し、エージェント・ユーザーのデータベース接続情報を指定します。デフォルト値は、その他すべてのパラメータに対して使用されます。
例C-7 メッセージ・ゲートウェイ・エージェントの作成
SQL> exec DBMS_MGWADM.CREATE_AGENT( agent_name => 'myagent', username => 'mgwagent', password => 'mgwagent_password', database => 'mydatabase');
メッセージ・ゲートウェイ・エージェントの削除
メッセージ・ゲートウェイ・エージェントは、DBMS_MGWADM
.REMOVE_AGENT
をコールすることによって削除できます。エージェントを削除する前に、そのエージェントに関連付けられているすべてのメッセージ・ゲートウェイのリンクを削除し、そのエージェントを停止する必要があります。デフォルトのエージェントのDEFAULT_AGENT
は削除できません。例C-8では、myagent
というエージェントを削除します。
例C-8 メッセージ・ゲートウェイ・エージェントの削除
SQL> exec DBMS_MGWADM.REMOVE_AGENT(agent_name => 'myagent');
データベース接続の設定
メッセージ・ゲートウェイ・エージェントは、データベースの外部プロセスとして実行されます。Oracle Database Advanced Queuingおよびメッセージ・ゲートウェイ・パッケージにアクセスするには、メッセージ・ゲートウェイ・エージェントからデータベースへの接続を確立する必要があります。DBMS_MGWADM
.ALTER_AGENT
を使用して、メッセージ・ゲートウェイ・エージェントがデータベース接続の確立に使用するユーザー名、パスワードおよびデータベース接続文字列を設定できます。メッセージ・ゲートウェイ・エージェントを起動するには、ユーザーにMGW_AGENT_ROLE
が付与されている必要があります。
例C-9は、ネット・サービス名mydatabase
を使用して、パスワードmgwagent_password
のユーザーmgwagent
に対して構成されているメッセージ・ゲートウェイのデフォルトのエージェントを示したものです。
例C-9 データベース接続情報の設定
SQL> exec DBMS_MGWADM.ALTER_AGENT ( agent_name => 'default_agent', username => 'mgwagent', password => 'mgwagent_password', database => 'mydatabase');
リソース制限の設定
DBMS_MGWADM
.ALTER_AGENT
を使用して、メッセージ・ゲートウェイ・エージェントのリソース制限を設定できます。たとえば、メッセージ・ゲートウェイ・エージェント・プロセスのヒープ・サイズ、およびそのエージェント・プロセスで使用される伝播スレッド数を設定できます。デフォルト値は、メモリー・ヒープ64MBおよび伝播スレッド1です。特定のエージェントの場合、エージェントがDBMS_MGWADM
.CREATE_AGENT
によって作成されるときにこれらの値を指定することもできます。
例C-10では、myagentというエージェントについて、ヒープ・サイズ96MB、伝播スレッド2を設定します。
メッセージ・ゲートウェイ・エージェントを実行中に、メモリー・ヒープ・サイズと伝播スレッド数は変更できません。
例C-10 リソース制限の設定
SQL> exec DBMS_MGWADM.ALTER_AGENT( agent_name => 'myagent', max_memory => 96, max_threads => 2);
Oracle Messaging Gatewayのエージェントの起動と停止
この項の内容は次のとおりです。
Oracle Messaging Gatewayのエージェントの起動
メッセージ・ゲートウェイ・エージェントが構成されたら、DBMS_MGWADM.STARTUP
を使用して起動できます。例C-11に、デフォルトのエージェントおよびmyagent
エージェントの起動方法を示します。
「Oracle Messaging Gatewayの監視」で説明されているように、MGW_GATEWAY
ビューを使用してメッセージ・ゲートウェイ・エージェントのステータスをチェックできます。
例C-11 メッセージ・ゲートウェイ・エージェントの起動
SQL> exec DBMS_MGWADM.STARTUP; SQL> exec DBMS_MGWADM.STARTUP ('myagent');
Oracle Messaging Gatewayのエージェントの停止
DBMS_MGWADM
.SHUTDOWN
を使用して、メッセージ・ゲートウェイ・エージェントを停止できます。例C-12に、Messaging Gatewayのデフォルトのエージェントおよびmyagent
エージェントの停止方法を示します。
「Oracle Messaging Gatewayの監視」で説明されているように、MGW_GATEWAY
ビューを使用してメッセージ・ゲートウェイ・エージェントが正常に停止したかどうかをチェックできます。
例C-12 メッセージ・ゲートウェイ・エージェントの停止
SQL> exec DBMS_MGWADM.SHUTDOWN; SQL> exec DBMS_MGWADM.SHUTDOWN ('myagent');
Oracle Messaging Gatewayのエージェントのスケジューラのジョブ
メッセージ・ゲートウェイでは、Schedulerジョブを使用して、メッセージ・ゲートウェイ・エージェントを起動します。このジョブは、DBMS_MGWADM.STARTUP
プロシージャをコールすると作成されます。ジョブを実行すると、外部プロセスでメッセージ・ゲートウェイ・エージェントを作成する外部プロシージャがコールされます。ジョブは、次の場合に削除されます。
-
DBMS_MGWADM.SHUTDOWN
がコールされたためにエージェントが停止する場合 -
再起動不能エラーが発生したためにエージェントが終了する場合
メッセージ・ゲートウェイは、DBMS_SCHEDULER
を使用して、繰返し間隔1分で繰返し可能なSchedulerジョブを作成します。ジョブの所有者はSYS
です。データベースの停止、データベースの障害または再起動可能なエラーによって指定したジョブ・インスタンスが終了したとき、繰返しジョブによってメッセージ・ゲートウェイ・エージェントは、自動的に再起動が可能になります。指定した時間に実行できるメッセージ・ゲートウェイ・エージェント・ジョブのインスタンスは1つのみです。
各エージェントは、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 Database PL/SQLパッケージ・プロシージャおよびタイプ・リファレンス』のDBMS_SCHEDULERに関する項
Oracle RAC上でのOracle Messaging Gatewayのエージェントの実行
Oracle Real Application Clusters (Oracle RAC)環境とOracle RAC以外の環境で、メッセージ・ゲートウェイ・ジョブの起動原理と停止原理が同じ場合は、Oracle RAC環境に対して、いくつかの点を考慮する必要があります。
Oracle RAC環境でも、構成済のメッセージ・ゲートウェイ・エージェントごとに1つのプロセスを実行できます。たとえば、デフォルトのエージェントと2つの指定エージェントがエージェント・ユーザーで構成されている場合、これら3つのエージェントはすべて同時に実行できます。各エージェントに関連付けられているデータベース・サービスが、エージェントのSchedulerジョブのサービス・アフィニティ、およびエージェント・プロセスが実行されるデータベースのインスタンスを決定します。
Oracle RAC環境でデータベース・インスタンスを停止すると、メッセージ・ゲートウェイ・エージェントが停止中のインスタンスで実行中の場合のみ、メッセージ・ゲートウェイ停止トリガーによってエージェントに停止が通知されます。インスタンスが再起動されると、ジョブ・スケジューラによって自動的に別のインスタンスでジョブの今後の再実行がスケジュールされるか、または停止時のインスタンスでのみジョブを実行できる場合は、そのインスタンスで再実行するジョブがスケジュールされます。
メッセージ・ゲートウェイ・エージェントによるすべてのデータベース接続先を、メッセージ・ゲートウェイ・エージェントのプロセスが実行中のインスタンスにすることをお薦めします。これにより、Oracle RAC環境で確実に適切なフェイルオーバー動作が得られます。
メッセージ・ゲートウェイ・エージェントがデータベース・サービスと関連付けられている場合、サービスが実行中のインスタンスで有効化されるまで、そのエージェントのSchedulerジョブは実行されません。データベースを停止すると、そのデータベースへのすべてのサービスが停止し、データベースの起動時にそのサービスを手動で再起動する必要がある場合があります。
関連項目:
-
『Oracle Database PL/SQLパッケージ・プロシージャおよびタイプ・リファレンス』の
DBMS_MGWADM
およびDBMS_SCHEDULER
に関する項
メッセージ・システム・リンクの構成
Oracle以外のメッセージ・システムのクライアントとして実行すると、メッセージ・ゲートウェイ・エージェントはメッセージ・システム・リンクを介してOracle以外のメッセージ・システムと通信できます。メッセージ・システム・リンクとは、メッセージ・ゲートウェイ・エージェントとOracle以外のメッセージ・システム間の一連の接続です。
Oracle以外のメッセージ・システムのメッセージ・システム・リンクを構成するには、ユーザーはエージェント情報を指定してOracle以外のメッセージ・システムへの接続を確立する必要があります。ユーザーは、メッセージ・コネクションの最大数を指定できます。
エージェント名は、各メッセージ・システム・リンクに関連付けられます。これは、リンクの作成時に設定され、変更できません。リンクに関連付けられているエージェントは、そのリンクと関連付けられている登録済のキューを使用するすべての伝播ジョブを処理する必要があります。メッセージ・システム・リンクの作成時にエージェント名が指定されていない場合、メッセージ・ゲートウェイのエージェントが使用されます。
トランザクションと永続メッセージをサポートするOracle以外のメッセージ・システムのメッセージ・システム・リンクを構成する場合は、着信伝播および発信伝播のログ・キューの固有の名前を指定して1回のみメッセージが配信されるようにする必要があります。ログ・キューは、メッセージ・ゲートウェイ・エージェントによってのみ使用される必要があります。他のプログラムでは、ログ・キューのメッセージをエンキューまたはデキューできません。着信ログ・キューと発信ログ・キューは同じ物理的キューを参照できますが、別の物理的キューを参照した方がパフォーマンスは向上します。
1つのメッセージ・ゲートウェイ・エージェントにつき、1つの伝播ログ・キューにアクセスできます。これにより、指定のログ・キューに、そのエージェントによって処理される伝播ジョブのみに関するログ記録が含まれ、そのエージェントは、発生する可能性のある他のログ記録の破棄が可能であることが保証されます。
メッセージ・システム・リンクを構成する際に、options
引数を指定することもできます。options
引数とは、SYS.MGW_PROPERTY
型の組{名前、値}のセットです。
この項の内容は次のとおりです。
WebSphere MQ Base Javaリンクの作成
WebSphere MQ Base Javaリンクは、次の情報を指定し、DBMS_MGWADM.CREATE_MSGSYSTEM_LINK
をコールすることによって作成されます。
-
インタフェース型:
DBMS_MGWADM.MQSERIES_BASE_JAVA_INTERFACE
-
WebSphere MQ接続情報
-
WebSphere MQサーバーのホスト名およびポート番号
-
キュー・マネージャ名
-
チャネル名
-
ユーザー名とパスワード
-
-
許可されるメッセージ・コネクションの最大数
-
着信伝播および発信伝播のログ・キュー名
-
オプション情報の例
-
送信、受信およびセキュリティの終了
-
文字セット
-
例C-13では、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
)は、リンク、およびそのリンクを使用するすべての伝播ジョブを処理する必要があります。
関連項目:
-
メッセージ・ゲートウェイ・エージェントのCLASSPATHの設定の詳細は、「mgw.ora初期化ファイルについて」を参照してください。
例C-13 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リンクの作成
WebSphere MQ JMSリンクは、次の情報を指定し、DBMS_MGWADM.CREATE_MSGSYSTEM_LINK
をコールすることによって作成されます。
-
インタフェース・タイプ
Java Message Service(JMS)は、キュー・コネクションとトピック・コネクションを識別します。Sun Microsystemsの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パブリッシュ・サブスクライブ構成
-
例C-14では、JMSトピック・インタフェースを使用してWebSphere MQキュー・マネージャに対するメッセージ・ゲートウェイ・リンクを構成します。このリンクは、mqjmslink
という名前で、WebSphere MQチャネルmychannel
を使用して、ホストmyhost.mydomain
およびポート1414上のWebSphere MQキュー・マネージャmy.queue.manager
を使用するように構成されます。
この例ではオプション
・パラメータを使用して、ログ・トピックで使用されるデフォルト以外の永続的なサブスクライバ・キューを指定します。メッセージ・ゲートウェイ・エージェントmyagent
は、リンク、およびそのリンクを使用するすべての伝播ジョブを処理する必要があります。
関連項目:
-
JMSキューおよびトピックの詳細は、「WebSphere MQ JMSキューまたはトピックの登録」を参照してください。
例C-14 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;
SSLを使用するためのWebSphere MQリンクの作成
メッセージ・ゲートウェイでは、IBM WebSphere MQとWebSphere MQのJMS接続においてSSLをサポートしています。この項では、WebSphere MQ Base JavaリンクでSSLを使用できるようにメッセージ・ゲートウェイを構成する方法を説明します。同じ情報をWebSphere MQのJMSリンクにも適用できます。メッセージ・ゲートウェイの構成に関しては違いはありません。
WebSphere MQ接続にSSLを使用するには、次のものが必要です。
-
SSLを使用するように構成されたWebSphere MQチャネル。
-
トラスト・ストア・ファイルおよびキーストア・ファイル(オプション)は、メッセージ・ゲートウェイ・エージェントのプロセスにアクセス可能な場所に存在します。Oracle RAC環境では、これらのファイルは、同じパス指定を使用してメッセージ・ゲートウェイ・エージェントのプロセスが実行される可能性のある、すべてのインスタンスに対してアクセス可能である必要があります。
-
DBMS_MGWADM
.CREATE_MSGSYSTEM_LINK
を使用して、必要なSSL関連リンク・オプションでWebSphere MQリンクを作成します。少なくとも、チャネルで使用されるSSL暗号スイートを指定するように、MQ_SSLCIPHERSUITE
プロパティを設定する必要があります。 -
DBMS_MGWADM
.SET_OPTION
を使用して、そのリンクに関連付けられているメッセージ・ゲートウェイ・エージェント用に特定のJSSE Javaプロパティを設定します。
JSEE関連プロパティ
-
j
ava.net.ssl.keyStore
このプロパティは、キーストアの場所を指定するために使用されます。キーストアは、認証およびデータ整合性など、様々な目的で使用されるキー・マテリアルのデータベースです。
-
java.net.ssl.keyStorePassword
このプロパティは、キーストアのパスワードを指定するために使用されます。このパスワードは、キーストアへのアクセス前に、キーストアに含まれているデータの整合性を確認するために使用されます。
-
j
ava.net.ssl.trustStore
このプロパティは、トラスト・ストアの場所を指定するために使用されます。トラスト・ストアは、どのクライアントおよびサーバーが信頼できるか、判断するために使用されるキーストアです。
-
java.net.ssl.trustStorePassword
このプロパティは、トラスト・ストアのパスワードを指定するために使用されます。このパスワードは、トラスト・ストアへのアクセス前に、キーストアに含まれているデータの整合性を確認するために使用されます。
java
.net
.ssl
.keyStore
およびjava
.net
.ssl
.keyStorePassword
プロパティは、WebSphere MQチャネルがSSLクライアント認証を使用するように構成されている場合のみに必要です。
例C-15では、SSL_RSA_WITH_RC4_128_MD5
暗号スイートを使用して、WebSphere MQ Base JavaリンクmqssllinkでSSL接続を使用するよう構成します。リンクに関連付けられたメッセージ・ゲートウェイ・エージェントDEFAULT_AGENT
にキーストアおよびトラストストアの両方のJavaプロパティを構成できるよう、チャネルがSSLクライアント認証用に構成されていると仮定しています。
DBMS_MGWADM
.SET_OPTION
によって設定されるJavaプロパティはエージェントの初回起動時にのみ設定されるため、この構成は、メッセージ・ゲートウェイ・エージェントの停止時に実行される必要があります。構成時にエージェントが実行中の場合は、エージェントを停止し、SSL接続の使用前に再起動する必要があります。
例C-15 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リンクの作成
TIB/Rendezvousリンクは、DBMS_MGWADM.CREATE_MSGSYSTEM_LINK
をコールして作成します。TibrvRvdTransport
型の転送を作成するための3つのパラメータ(service
、network
およびdaemon
)を指定します。
TIB/Rendezvousメッセージ・システム・リンクには、伝播ログ・キューは必要ありません。ログ情報はメモリーに格納されます。したがって、メッセージ・ゲートウェイは最大1回のメッセージ配信のみを保証できます。
例C-16では、ローカル・コンピュータ上でrvd
デーモンに接続するrvlink
という名前のTIB/Rendezvousリンクを構成します。リンクに対してエージェント名は指定されず、メッセージ・ゲートウェイのデフォルトのエージェント(DEFAULT_AGENT
)は、リンクおよびそのリンクを使用するすべての伝播ジョブを処理する必要があります。
関連項目:
例C-16 TIB/Rendezvousリンクの構成
DECLARE v_options sys.mgw_properties; v_prop sys.mgw_tibrv_properties; BEGIN v_prop := sys.mgw_tibrv_properties.construct(); DBMS_MGWADM.CREATE_MSGSYSTEM_LINK(linkname => 'rvlink', properties => v_prop); END;
メッセージ・システム・リンクの変更
一部のリンク情報は、リンクの作成後にDBMS_MGWADM.ALTER_MSGSYSTEM_LINK
を使用して変更できます。メッセージ・ゲートウェイ・エージェントを実行中または停止中でもリンク情報を変更できます。例C-17では、リンクmqlink
を変更して、max_connections
プロパティを変更します。
関連項目:
メッセージ・ゲートウェイ・エージェントを実行中の変更に関する制限については、「構成プロパティ」を参照してください。
例C-17 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
で削除できます。メッセージ・ゲートウェイ・エージェントを実行中または停止中でもリンクを削除できます。例C-18では、リンクmqlink
を削除します。
例C-18 メッセージ・ゲートウェイのリンクの削除
BEGIN dbms_mgwadm.remove_msgsystem_link(linkname =>'mqlink'); END;
メッセージ・システム・リンクのビュー
MGW_LINKS
ビューで作成されたリンクを確認できます。例C-19で示されているように、名前とリンク・タイプが表示されます。
例C-20に示したように、MGW_MQSERIES_LINKS
ビューとMGW_TIBRV_LINKS
ビューを使用して、メッセージ・システムの型固有の構成情報をチェックできます。
例C-19 すべてのメッセージ・ゲートウェイのリンクのリスト
SQL> select link_name, link_type from MGW_LINKS; LINK_NAME LINK_TYPE ------------------------ MQLINK MQSERIES RVLINK TIBRV
例C-20 メッセージ・システム・リンクの構成情報のチェック
SQL> select link_name, queue_manager, channel, hostname from mgw_mqseries_links; 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以外のメッセージ・システム・キューは、メッセージ・ゲートウェイ管理インタフェースを介して登録する必要があります。伝播に関連するOracle Database Advanced Queuingキューを登録する必要はありません。
この項の内容は次のとおりです。
Oracle以外のキューの登録
Oracle以外のキューは、DBMS_MGWADM.REGISTER_FOREIGN_QUEUE
を使用して登録できます。Oracle以外のキューを登録すると、メッセージ・ゲートウェイ・エージェントがキューにアクセスするための情報が提供されます。ただし、Oracle以外のメッセージ・システムの物理的キューは作成されません。物理的キューは、メッセージ・ゲートウェイ・エージェントがキューにアクセスする前に、Oracle以外のメッセージ・システムの管理インタフェースを使用して作成する必要があります。
次の情報を使用して、Oracle以外のキューを登録します。
-
キューにアクセスする際に使用するメッセージ・システム・リンク名
-
キューの固有名(Oracle以外のメッセージ・システム内の名前)
-
キューのドメイン
-
Point-to-Pointキューの
DBMS_MGWADM.DOMAIN_QUEUE
-
パブリッシュ・サブスクライブ・キューの
DBMS_MGWADM.DOMAIN_TOPIC
-
-
Oracle以外のメッセージ・システム固有のオプション
これらのオプションは、{名前, 値}の組(いずれも文字列)の集合です。
関連項目:
例C-21は、メッセージ・ゲートウェイ・キューdestq
としてWebSphere MQ Base Javaキューmy_mq_queue
を登録する方法を示したものです。
例C-21 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 Base Javaキューの登録
WebSphere MQではPoint-to-Pointキューのみがサポートされているため、ドメインはDBMS_MGWADM.DOMAIN_QUEUE
またはNULLである必要があります。
WebSphere MQ JMSキューまたはトピックの登録
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サブジェクトの登録
TIB/Rendezvousサブジェクトをメッセージ・ゲートウェイに登録する際には、provider_queue
パラメータでTIB/Rendezvousサブジェクト名を指定します。登録済TIB/Rendezvousキューのドメインは、DBMS_MGWADM.DOMAIN_TOPIC
またはNULLである必要があります。
登録済のTIB/Rendezvousキューでprovider_queue
がワイルドカード・サブジェクト名に設定されている場合、インバウンド伝播の伝播ソース・キューとして使用できます。ワイルドカード・サブジェクト名を持つキューを伝播宛先キューまたは例外キューに使用することは避けてください。TIB/Rendezvousで記載されているように、ワイルドカード・サブジェクトにメッセージを送信すると、予期しない動作を引き起こす可能性があります。ただし、メッセージ・ゲートウェイまたはTIB/Rendezvousではこれを阻止しません。
Oracle以外のキューの登録解除
Oracle以外のキューは、それを参照する伝播ジョブが存在しない場合のみ、DBMS_MGWADM.UNREGISTER_FOREIGN_QUEUE
で登録を解除できます。
例C-22では、リンクmqlink
のキューdestq
の登録を解除します。
例C-22 Oracle以外のキューの登録解除
BEGIN DBMS_MGWADM.UNREGISTER_FOREIGN_QUEUE(name =>'destq', linkname=>'mqlink'); END;
Oracle以外の登録済キューのビュー
例C-23に示すとおりMGW_FOREIGN_QUEUES
ビューを使用して、どのOracle以外のキューが登録され、それぞれがどのリンクを使用しているかをチェックできます。
例C-23 登録済キューの確認
SELECT name, link_name, provider_queue FROM MGW_FOREIGN_QUEUES; NAME LINK_NAME PROVIDER_QUEUE ------------------------------------ DESTQ MQLINK my_mq_queue
Oracle Messaging Gatewayの伝播ジョブの構成
Oracle Database AQキューとOracle以外のメッセージ・システム・キュー間でメッセージを伝播するには伝播ジョブが必要です。各伝播ジョブには、一意の伝播型、ソースおよび宛先の3つが含まれます。
伝播ジョブを作成し、JMS宛先間でメッセージを伝播できます。伝播ジョブを作成し、JMS以外のキュー間でメッセージを伝播できます。メッセージ・ゲートウェイでは、JMS宛先とJMS以外のキュー間におけるメッセージの伝播はサポートされていません。
この項の内容は次のとおりです。
伝播ジョブの概要
伝播ジョブは、伝播されるメッセージおよびその方法を指定します。
メッセージ・ゲートウェイでは、双方向のメッセージ伝播が可能です。発信伝播では、メッセージがOracle Database Advanced QueuingからOracle以外のメッセージ・システムに移動されます。着信伝播では、メッセージがOracle以外のメッセージ・システムからOracle Database Advanced Queuingに移動されます。
伝播ソースがPoint-to-Pointキューの場合は、メッセージ・ゲートウェイ・エージェントによってキュー内のすべてのメッセージがソース・キューから宛先に移動されます。伝播ソースがトピック(パブリッシュ・サブスクライブ)の場合は、メッセージ・ゲートウェイ・エージェントによって伝播ソース・キューのサブスクライバがメッセージ・システム上に作成されます。エージェントでは、サブスクライバの作成後、パブリッシュされたすべてのメッセージがソース・キューに移動されるだけです。
メッセージを伝播する際に、メッセージ・ゲートウェイ・エージェントによって、メッセージがソース・メッセージ・システムのフォーマットから宛先メッセージ・システムのフォーマットに変換されます。ユーザーは、メッセージ変換を指定することによってメッセージ変換をカスタマイズできます。メッセージ変換に失敗すると、例外キューが指定されている場合は、エージェントがサブスクライバに伝播できるようにメッセージは例外キューに移動されます。
メッセージ・ゲートウェイの例外キューとOracle Database Advanced Queuingの例外キューは異なります。メッセージ変換に失敗すると、メッセージはメッセージ・ゲートウェイによってメッセージ・ゲートウェイの例外キューに移動されます。メッセージに対してMAX_RETRIES
デキューを試行後、メッセージはOracle Database Advanced QueuingによってOracle Database Advanced Queuingの例外キューに移動されます。
Oracle Database Advanced Queuingの例外キューに移動されたメッセージは、関連するメッセージ・ゲートウェイの伝播ジョブ上で回復不能な障害を発生します。この問題を避けるために、メッセージ・ゲートウェイの伝播ジョブの伝播ソースとして使用されるすべてのOracle Database Advanced QueuingのキューのMAX_RETRIES
パラメータは、16を超える値に設定する必要があります。
伝播ソース・キューのメッセージ・システムがメッセージ選択をサポートしている場合は、伝播サブスクライバにメッセージ選択ルールを指定できます。メッセージ・セレクタの条件を満たすメッセージのみが伝播されます。
JMSメッセージの配信モードおよびTIB/Rendezvousのキュー・ポリシーに対するオプションなど、伝播ジョブ・オプションを指定することにより、ユーザーはメッセージの伝播方法を制御できます。
MGW_JOBS
ビューを使用して、メッセージ・ゲートウェイの伝播ジョブの構成およびステータスを確認できます。
Oracle Messaging Gatewayの伝播ジョブの作成
メッセージ・ゲートウェイの伝播ジョブは、DBMS_MGWADM
.CREATE_JOB
を使用して作成されます。
JMS伝播以外の伝播ソースが、Oracle Database AQキューである場合、キューはシングル・コンシューマ・キューか、マルチ・コンシューマ・キューのいずれかです。マルチ・コンシューマ・キューの場合、メッセージ・ゲートウェイは、DBMS_MGWADM
.CREATE_JOB
がコールされると、伝播ジョブのjob_name
に対応するOracle Database AQサブスクライバのMGW_job_name
を作成します。
伝播ソースが、Oracle Java Message Service (Oracle JMS)トピックまたはWebSphere MQ JMSトピックなどのJMSトピックである場合は、メッセージ・ゲートウェイ・エージェントによってソース・メッセージ・システムのトピックに対してJMSサブスクライバMGW_job_name
が作成されます。エージェントを実行中でない場合は、エージェントを再起動するまでサブスクライバは作成されません。
伝播ソースがキューの場合、そのキューを伝播ソースとして使用して伝播ジョブを1つのみ作成できます。伝播ソースがトピックの場合は、そのトピックを各伝播ジョブがメッセージ・システム内のトピックに対応する固有のサブスクライバを有する伝播ソースとして使用して、複数の伝播ジョブを設定できます。
例C-24では、メッセージ・ゲートウェイの伝播ジョブjob_aq2mq
を作成します。
ノート:
WebSphere MQ JMSトピックが伝播ジョブに関連していて、リンクのインタフェース型がDBMS_MGWADM.JMS_TOPIC_CONNECTION
の場合、永続サブスクライバMGL_
subscriber_id
はログ・トピックに対して作成されます。メッセージ・ゲートウェイの伝播ジョブが正常に削除されると、永続サブスクライバは削除されます。
例C-24 メッセージ・ゲートウェイ伝播ジョブの作成
BEGIN DBMS_MGWADM.CREATE_JOB( job_name => 'job_aq2mq', propagation_type => DBMS_MGWADM.OUTBOUND_PROPAGATION, source => 'mquser.srcq', destination => 'deqq@mqlink'); END;
伝播ジョブの有効化および無効化
伝播ジョブは、DBMS_MGWADM
.CREATE_JOB
による作成時に最初に有効化または無効化することができます。デフォルトでは、作成時にジョブは有効化されます。伝播ジョブを有効化するにはDBMS_MGWADM
.ENABLE_JOB
、無効化するにはDBMS_MGWADM
.DISABLE_JOB
を使用します。ジョブが無効化されている場合、いずれの伝播処理も発生しません。
例C-25では、伝播ジョブjob_aq2mq
の伝播を有効化します。
例C-26では、伝播ジョブjob_aq2mq
の伝播を無効化します。
例C-25 メッセージ・ゲートウェイ伝播ジョブの有効化
BEGIN DBMS_MGWADM.ENABLE_JOB(job_name => 'job_aq2mq'); END;
例C-26 メッセージ・ゲートウェイ伝播ジョブの無効化
BEGIN DBMS_MGWADM.DISABLE_JOB(job_name => 'job_aq2mq'); END;
伝播ジョブのリセット
伝播ジョブに問題が発生した場合、メッセージ・ゲートウェイ・エージェントでは伝播ジョブを停止する前に、指数バックオフ・スキームで失敗した操作が最大16回再試行されます。DBMS_MGWADM.RESET_JOB
を使用すると、失敗回数をゼロにリセットし、エージェントで失敗した操作をただちに再試行できます。
例C-27では、伝播ジョブjob_aq2mq
の失敗回数をリセットします。
例C-27 伝播ジョブのリセット
BEGIN DBMS_MGWADM.RESET_JOB (job_name => 'job_aq2mq'); END;
伝播ジョブの変更
伝播ジョブが作成されたら、DBMS_MGWADM
.ALTER_JOB
を使用して、そのジョブの選択ルール、変換、例外キュー、ジョブ・オプションおよびポーリング間隔を変更できます。メッセージ・ゲートウェイ・エージェントを実行中または停止中でもジョブを変更できます。
例C-28では、伝播ジョブの例外キューを追加します。
例C-29では、伝播ジョブのポーリング間隔を変更します。ポーリング間隔によって、エージェントが伝播ソース・キュー内で使用可能なメッセージを検出する速度が決まります。デフォルトのポーリング間隔は5秒、またはメッセージ・ゲートウェイの初期化ファイル内のoracle
.mgw
.polling_interval
で設定されている値です。
例C-28 例外キューの追加による伝播ジョブの変更
BEGIN DBMS_MGWADM.ALTER_JOB( job_name => 'job_aq2mq', exception_queue => 'mgwuser.my_ex_queue'); END;
例C-29 ポーリンク間隔変更による伝播ジョブの変更
BEGIN DBMS_MGWADM.ALTER_JOB( job_name => 'job_aq2mq', poll_interval => 2); END;
伝播ジョブの削除
メッセージ・ゲートウェイの伝播ジョブは、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
には、可能なかぎり強制オプションを使用しないことをお薦めします。
例C-30では、強制しない方法で伝播ジョブを削除します。
例C-30 伝播ジョブの削除
BEGIN DBMS_MGWADM.REMOVE_JOB (job_name => 'job_aq2mq'); END;
伝播ジョブ、サブスクライバおよびスケジュール
サブプログラムは、伝播ジョブの作成および管理を簡素化するDBMS_MGWADM
パッケージの一部として提供されます。これらのサブプログラムを使用して、前のリリースのような非結合サブスクライバおよびスケジュールではなく、伝播ジョブを構成できます。伝播ジョブ・プロシージャを使用することをお薦めしますが、下位互換性を保つために、サブスクライバ・プロシージャおよびスケジュール・プロシージャもサポートされています。
表C-2は、メッセージ・ゲートウェイの伝播ジョブ・プロシージャ、および置換するサブスクライバ・プロシージャまたはスケジュール・プロシージャ(あるいはその両方)を示したものです。すべてのプロシージャは、DBMS_MGWADM
パッケージからのものです。
表C-2 メッセージ・ゲートウェイ伝播ジョブのサブプログラム
ジョブ・プロシージャ | サブスクライバ、スケジュール・プロシージャを置換します。 |
---|---|
|
|
|
|
|
|
|
|
|
|
|
|
この項では、次の項目について説明します。
伝播ジョブ、サブスクライバおよびスケジュールのインタフェースの互換性
新しい形式のジョブと古い形式のジョブという、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_SUBSCRIBER
およびDBMS_MGWADM
.UNSCHEDULE_PROPAGATION
は、DBMS_MGWADM
.REMOVE_JOB
がそのジョブに対してコールされていないかぎり、古い形式のジョブに使用できます。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 Database AQのマルチ・コンシューマ・キューまたはシングル・コンシューマ・キューを、DBMS_MGWADM
.CREATE_JOB
により作成される新しい形式の発信ジョブの伝播ソースにすることができます。古い形式の発信ジョブの伝播ソースには、マルチ・コンシューマ・キューを使用する必要があります。管理者がDBMS_MGWADM
.ADD_SUBSCRIBER
のコールを試行し、ソースがシングル・コンシューマ・キューである場合、エラーが発生します。
伝播ソースがシングル・コンシューマ・キューの場合、システム固有(JMS以外)の発信伝播について、Oracle Database AQのデキュー条件はサポートされていません。
構成プロパティ
この項では、メッセージ・ゲートウェイのリンク、外部キューおよび伝播ジョブに関連する基本的なプロパティとオプションのプロパティについて説明します。
この項の内容は次のとおりです。
WebSphere MQシステム・プロパティ
表C-3は、WebSphere MQメッセージ・リンクの基本的な構成プロパティをまとめたものです。この表は、SYS.MGW_MQSERIES_PROPERTIES
のオプションの(NULL
が可能な)プロパティ、変更可能なプロパティ、値が動的に変更可能なプロパティを示しています。
関連項目:
『Oracle Database PL/SQLパッケージ・プロシージャおよびタイプ・リファレンス』のSYS.MGW_MQSERIES_PROPERTIES型に関する項
表C-3 WebSphere MQリンク・プロパティ
属性 | NULL許可 | 値の変更 | 動的変更 |
---|---|---|---|
|
不可 |
不可 |
不可 |
|
可(1) |
不可 |
不可 |
|
可(1) |
不可 |
不可 |
|
可(1)、(6) |
可 |
不可 |
|
可(2) |
不可 |
不可 |
|
可(3) |
可 |
可 |
|
可 |
可 |
可 |
|
可 |
可 |
可 |
|
可(4) |
可(4) |
可 |
|
可(5) |
可(5) |
可 |
表C-3に関するノート
-
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
リンク・オプションを使用して指定できます。
表C-4は、WebSphere MQメッセージ・システムへのアクセスにWebSphere MQ Base Javaインタフェースが使用される場合にサポートされているオプションの構成プロパティをまとめたものです。表C-5は、WebSphere MQ JMSインタフェースが使用される場合にサポートされているオプションの構成プロパティをまとめたものです。それぞれの表は、プロパティ名、そのプロパティの適用場所、プロパティを変更できるかどうか、値を動的に変更可能かどうかを示しています。サポートされているのはこの表に示すプロパティのみで、その他のプロパティは無視されます。
表C-4 WebSphere MQ Base Javaのオプションの構成プロパティ
プロパティ名 | 使用対象 | 値の変更 | 動的変更 |
---|---|---|---|
リンク |
可 |
不可 |
|
リンク |
可 |
不可 |
|
リンク |
可 |
不可 |
|
リンク |
可 |
不可 |
|
リンク |
可 |
不可 |
|
リンク |
可 |
不可 |
|
リンク |
可 |
不可 |
|
リンク |
可 |
不可 |
|
リンク |
可 |
不可 |
|
外部キュー |
不可 |
不可 |
|
ジョブ |
可 |
可 |
|
ジョブ |
可 |
可 |
表C-5 WebSphere MQ JMSのオプションの構成プロパティ
プロパティ名 | 使用対象 | 値の変更 | 動的変更 |
---|---|---|---|
リンク |
可 |
不可 |
|
リンク |
可 |
不可 |
|
リンク |
可 |
不可 |
|
リンク |
可 |
不可 |
|
リンク |
可 |
不可 |
|
リンク |
可 |
不可 |
|
リンク |
不可 |
不可 |
|
リンク |
可 |
不可 |
|
リンク |
可 |
不可 |
|
リンク |
可 |
不可 |
|
リンク |
可 |
不可 |
|
リンク |
可 |
不可 |
|
リンク |
可 |
不可 |
|
リンク |
可 |
不可 |
|
リンク |
可 |
不可 |
|
リンク |
可 |
不可 |
|
リンク |
可 |
不可 |
|
リンク |
可 |
不可 |
|
リンク |
可 |
不可 |
|
外部キュー |
不可 |
不可 |
|
外部キュー |
不可 |
不可 |
|
外部キュー |
不可 |
不可 |
|
ジョブ |
可 |
可 |
|
ジョブ |
不可 |
不可 |
|
ジョブ |
可 |
可 |
|
ジョブ |
可 |
可 |
TIB/Rendezvousシステム・プロパティ
表C-6は、TIB/Rendezvousメッセージ・リンクの基本的な構成プロパティをまとめたものです。これは、SYS.MGW_TIBRV_PROPERTIES
のオプションの(NULL
が可能な)プロパティ、変更可能なプロパティ、値が動的に変更可能なプロパティを示しています。
関連項目:
『Oracle Database PL/SQLパッケージ・プロシージャおよびタイプ・リファレンス』のSYS.MGW_TIBRV_PROPERTIES型に関する項
表C-6 TIB/Rendezvousリンク・プロパティ
属性 | NULL許可 | 値の変更 | 動的変更 |
---|---|---|---|
|
可(1) |
不可 |
不可 |
|
可(1) |
不可 |
不可 |
|
可(1) |
不可 |
不可 |
|
可(2) |
不可 |
不可 |
|
可(2) |
不可 |
不可 |
表C-6に関するノート:
-
service
、daemon
またはnetwork
がNULL
の場合は、システムのデフォルト値が使用されます。 -
cm_name
およびcm_ledger
属性は、TIB/Rendezvousの証明済メッセージがサポートされる将来の使用に備えて確保されています。現在、TIB/Rendezvousリンクの構成時には、これらのパラメータにNULL
を指定する必要があります。
表C-7は、TIB/Rendezvousメッセージ・システムが使用される場合にサポートされているオプションの構成プロパティをまとめたものです。この表は、プロパティ名、そのプロパティの適用場所、プロパティを変更できるかどうか、変更可能な場合は値が動的に変更可能かどうかを示しています。サポートされているのはこの表に示すプロパティのみで、その他のプロパティは無視されます。
表C-7 TIB/Rendezvousのオプション・プロパティ
プロパティ名 | 使用対象 | 値の変更 | 動的変更 |
---|---|---|---|
ジョブ |
可 |
可 |
|
ジョブ |
可 |
可 |
|
ジョブ |
可 |
可 |
|
ジョブ |
可 |
不可 |
|
ジョブ |
可 |
不可 |
|
ジョブ |
可 |
不可 |
オプションのリンクの構成プロパティ
この項では、DBMS_MGWADM.CREATE_MSGSYSTEM_LINK
およびDBMS_MGWADM.ALTER_MSGSYSTEM_LINK
のoptions
パラメータを使用して指定できるオプションのリンク・プロパティについて説明します。それぞれの項目には、そのプロパティを使用できるメッセージ・システムも示されています。
- MQ_BrokerControlQueue
-
このプロパティはWebSphere MQ JMSで使用されます。ブローカの制御キューの名前を指定し、WebSphere MQ JMS管理ツールの
BROKERCONQ
プロパティに対応します。WebSphere MQのデフォルトはSYSTEM.BROKER.CONTROL.QUEUE
です。 - MQ_BrokerPubQueue
-
このプロパティはWebSphere MQ JMSで使用されます。ブローカのパブリック・キューの名前を指定し、WebSphere MQ JMS管理ツールの
BROKERPUBQ
プロパティに対応します。WebSphere MQのデフォルトはSYSTEM.BROKER.DEFAULT.STREAM
です。 - MQ_BrokerQueueManager
-
このプロパティはWebSphere MQ JMSで使用されます。ブローカのキュー・マネージャの名前を指定し、WebSphere MQ管理ツールの
BROKERQMGR
プロパティに対応します。設定されていない場合、デフォルトは使用されません。 - MQ_BrokerVersion
-
このプロパティはWebSphere MQ JMSで使用されます。ブローカのバージョン番号を指定し、WebSphere MQ JMS管理ツールの
BROKERVER
プロパティに対応します。WebSphere MQのデフォルトは0
です。 - MQ_ccdtUrl
-
このプロパティはWebSphere MQ Base JavaおよびWebSphere MQ JMSで使用されます。使用するクライアント・チャネル定義表(CCDT)のURL文字列を指定します。設定されていない場合、CCDTは使用されません。CCDTを使用する場合、
SYS
.MGW_MQSERIES_PROPERTIES
.channel
リンク・プロパティはNULL
である必要があります。 - MQ_ccsid
-
このプロパティはWebSphere MQ Base JavaおよびWebSphere MQ JMSで使用されます。WebSphere MQメッセージ・ヘッダーの情報を変換するために使用する文字セット識別子を指定します。これには、記述的文字列ではなく、文字セットの整数値(
819
など)を使用します。設定されていない場合、WebSphere MQのデフォルトの文字セット819
が使用されます。 - MQ_JmsDurSubQueue
-
このプロパティは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
です。 - MQ_PubAckInterval
-
このプロパティはWebSphere MQ JMSで使用されます。ブローカからの確認を必要とするパブリッシュ・リクエスト間の間隔をメッセージ数で指定し、WebSphere MQ JMS管理ツールの
PUBACKINT
プロパティに対応します。WebSphere MQのデフォルトは25
です。 - MQ_ReceiveExit
-
このプロパティはWebSphere MQ Base JavaおよびWebSphere MQ JMSで使用されます。これは
MQReceiveExit
インタフェースを実装するクラスの完全修飾Javaクラス名を指定します。このクラスは、メッセージ・ゲートウェイ・エージェントのCLASSPATH
に含まれている必要があります。デフォルトはありません。 - MQ_ReceiveExitInit
-
この初期化文字列はWebSphere MQ JMSで使用されます。WebSphere MQ JMSから
MQ_ReceiveExit
によって指定されるクラスのコンストラクタに渡され、WebSphere MQ JMS管理ツールのRECEXITINIT
プロパティに対応します。デフォルトはありません。 - MQ_SecurityExit
-
このプロパティはWebSphere MQ Base JavaおよびWebSphere MQ JMSで使用されます。これは
MQSecurityExit
インタフェースを実装するクラスの完全修飾Javaクラス名を指定します。このクラスは、メッセージ・ゲートウェイ・エージェントのCLASSPATH
に含まれている必要があります。デフォルトはありません。 - MQ_SecurityExitInit
-
この初期化文字列はWebSphere MQ JMSで使用されます。WebSphere MQ JMSから
MQ_SecurityExit
によって指定されるクラスのコンストラクタに渡され、WebSphere MQ JMS管理ツールのSECEXITINIT
プロパティに対応します。デフォルトはありません。 - MQ_SendExit
-
このプロパティはWebSphere MQ Base JavaおよびWebSphere MQ JMSで使用されます。これは
MQSendExit
インタフェースを実装するクラスの完全修飾Javaクラス名を指定します。このクラスは、メッセージ・ゲートウェイ・エージェントのCLASSPATH
に含まれている必要があります。デフォルトはありません。 - MQ_SendExitInit
-
この初期化文字列はWebSphere MQ JMSで使用されます。WebSphere MQ JMSから
MQ_SendExit
によって指定されるクラスのコンストラクタに渡されます。WebSphere MQ JMS管理ツールのSENDEXITINIT
プロパティに対応します。デフォルトはありません。 - MQ_SSLCipherSuite
-
このプロパティはWebSphere MQ Base JavaおよびWebSphere MQ JMSで使用されます。
SSL_RSA_WITH_RC4_128_MD5
のように、使用する暗号スイートを指定します。これはWebSphere MQのSSLCIPHERSUITE
管理プロパティに対応します。 - MQ_SSLCrl
-
このプロパティはWebSphere MQ JMSで使用されます。証明書失効リスト(CRL)の確認に使用できるLDAPサーバーのスペース区切りリストを指定します。設定されていない場合、CRLは確認されません。これはWebSphere MQの
SSLCRL
管理プロパティに対応します。このオプションはWebSphere MQ Base Javaではサポートされていません。CRLの確認が必要な場合、かわりにクライアント・チャネル定義表(CCDT)を使用する必要があります。 - MQ_SSLFipsRequired
-
このプロパティはWebSphere MQ Base JavaおよびWebSphere MQ JMSで使用されます。使用されている暗号スイートがIBM Java JSSE FIPSプロバイダ(IBMSJSSEFIPS)によってサポートされているかどうかを示します。この値は
TRUE
またはFALSE
のいずれかです。デフォルト値はFALSE
です。これはWebSphere MQのSSLFIPSREQUIRED
管理プロパティに対応します。 - MQ_SSLPeerName
-
このプロパティはWebSphere MQ Base JavaおよびWebSphere MQ JMSで使用されます。接続を確立するためにキュー・マネージャの証明書が一致する必要のある識別名(DN)のパターンを指定します。設定されていない場合、DNは確認されません。これはWebSphere MQの
SSLPEERNAME
管理プロパティに対応します。 - MQ_SSLResetCount
-
このプロパティはWebSphere MQ Base JavaおよびWebSphere MQ JMSで使用されます。秘密キーが再ネゴシエートされるまでに送受信される合計バイト数を指定します。設定されていない場合、キーは再ネゴシエートされません。これはWebSphere MQの
SSLRESETCOUNT
管理プロパティに対応します。
オプションの外部キューの構成プロパティ
この項では、DBMS_MGWADM
.REGISTER_FOREIGN_QUEUE
のoptions
パラメータを使用して指定できるオプションの外部キュー・プロパティについて説明します。それぞれの項目には、そのプロパティを使用できるメッセージ・システムも示されています。
- MQ_CharacterSet
-
このプロパティはWebSphere MQ JMSで使用されます。これはJMSキューまたはトピックへのアウトバウンド伝播にのみ使用されます。宛先に送信されるテキスト文字列のエンコードに使用される文字セットを指定します。これには、記述的文字列ではなく、文字セットの整数値(
1208
など)を使用します。メッセージ・ゲートウェイで使用されるデフォルト値は1208
(UTF8)です。 - MQ_JmsDurSubQueue
-
このプロパティはWebSphere MQ JMSで使用されます。これは、このトピックのサブスクライバが永続サブスクリプション・メッセージを取り出すWebSphere MQキューの名前を表す文字列です。WebSphere MQ JMSのトピックにのみ適用されます。WebSphere MQのデフォルト・キューは
SYSTEM.JMS.D.SUBSCRIBER.QUEUE
です。 - MQ_JmsTargetClient
-
このプロパティはWebSphere MQ JMSで使用されます。これはJMSキューまたはトピックへのアウトバウンド伝播にのみ使用されます。サポートされている値は
TRUE
およびFALSE
です。TRUE
はWebSphere MQがメッセージをJMSメッセージとして保存することを示します。FALSE
は、JMS以外のアプリケーションがアクセスできるよう、WebSphere MQがメッセージを非JMSフォーマットで保存することを示します。デフォルトはTRUE
です。 - MQ_openOptions
-
このプロパティはWebSphere MQ Base Javaで使用されます。WebSphere MQ Base Java
MQQueueManager.accessQueue
メソッドのopenOptions
引数に使用される値を指定します。値は必要がありません。しかし、入力された場合は、メッセージ・ゲートウェイ・エージェントによってMQOO_OUTPUT
がエンキュー(put
)操作の指定された値に追加されます。デキュー(get
)操作にはMQOO_INPUT_SHARED
が追加されます。デフォルトは、エンキュー/put操作ではMQOO_OUTPUT
、デキュー/get操作ではMQOO_INPUT_SHARED
です。
オプションのジョブの構成プロパティ
この項では、オプションのパラメータのDBMS_MGWADM
.CREATE_JOB
およびDBMS_MGWADM
.ALTER_JOB
を使用して指定可能なオプションの伝播ジョブのプロパティについて説明します。
- AQ_MsgProperties
-
このプロパティはTIB/Rendezvousで使用されます。メッセージが伝播される際にOracle Database AQメッセージ・プロパティがどのように使用されるかを指定します。サポートされている値は
TRUE
およびFALSE
です。デフォルト値はFALSE
です。出力伝播ジョブの場合、値が
TRUE
(大/小文字区別なし)であれば、メッセージ・ゲートウェイ・エージェントはTIB/Rendezvousサブジェクトに伝播されるメッセージにほとんどのOracle Database AQメッセージ・プロパティのフィールドを追加します。着信伝播ジョブの場合、値が
TRUE
(大/小文字区別なし)であれば、メッセージ・ゲートウェイ・エージェントは予約済の名前を持つフィールドをソース・メッセージ内で検索し、存在する場合は、その値を使用して対応するOracle Database AQメッセージ・プロパティを設定します。フィールドが存在しない場合、または予期したデータ型でない場合は、デフォルト値が使用されます。 - JMS_DeliveryMode
-
このプロパティはWebSphere MQ JMSおよびOracle JMSで使用されます。このプロパティは、伝播先がJMSメッセージ・システムの場合に使用できます。JMS
MessageProducer
によって伝播先キューにエンキューされるメッセージの配信モードを設定します。デフォルトはPRESERVE_MSG
です。サポートされる値とその関連付けられた配信モードは次のとおりです。-
PERSISTENT
(DeliveryMode.PERSISTENT
) -
NON_PERSISTENT
(DeliveryMode.NON_PERSISTENT
) -
PRESERVE_MSG
(ソースJMSメッセージの配信モードを使用)
-
- JMS_NoLocal
-
このプロパティはWebSphere MQ JMSおよびOracle JMSで使用されます。これは、伝播ソースがJMSメッセージ・システムの場合に使用できます。JMS
TopicSubscriber
のnoLocal
パラメータを設定します。TRUE
は、同じメッセージ・ゲートウェイ・リンクを介してこのトピックにパブリッシュされたメッセージは伝播されないことを示します。デフォルト値はFALSE
で、このようなメッセージがトピックから伝播されることを示します。 - MsgBatchSize
-
このプロパティは、サポートされているすべてのメッセージ・システムで使用できます。これは、1回のトランザクションで伝播可能なメッセージの最大数(使用可能な場合)を指定します。デフォルトは30です。
- PreserveMessageID
-
このプロパティは、WebSphere MQ Base Java、WebSphere MQ JMS、TIB/RendezvousおよびOracle JMSで使用されます。メッセージが宛先メッセージ・システムに伝播される際、メッセージ・ゲートウェイが元のメッセージ識別子を保持するかどうかを指定します。詳細は、使用されるメッセージ・システムの機能によって異なります。サポートされている値は
TRUE
およびFALSE
です。デフォルト値はFALSE
です。 - RV_discardAmount
-
このプロパティはTIB/Rendezvousで使用されます。キューの廃棄量を指定します。インバウンド伝播ジョブでのみ意味があります。デフォルトは0です。
- RV_limitPolicy
-
このプロパティは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
)
-
- RV_maxEvents
-
このプロパティはTIB/Rendezvousで使用されます。キューの最大イベント制限を指定します。インバウンド伝播ジョブでのみ意味があります。デフォルトは0です。
Oracle Messaging Gatewayのメッセージの変換
次のトピックでは、Oracle Messaging Gateway (MGW)がメッセージ・フォーマットを1つのメッセージ・システムから別のメッセージ・システムに変換する方法について説明します。通常、変換が必要になるのはメッセージをOracle Database Advanced Queuingと別のシステムの間で移動する場合で、これは異なるメッセージ・システムでは異なるメッセージ・フォーマットが使用されているためです。Java Message Service (JMS)メッセージは特殊です。JMSメッセージはJMS宛先にのみ伝播可能なので、変換は単純な処理になります。
Oracle Messaging GatewayのJMS以外のメッセージの変換
MGWでは、伝播中に、ソース側メッセージ・システム固有のメッセージ・フォーマットが宛先側メッセージ・システム固有のメッセージ・フォーマットに変換されます。MGWでは、標準型およびOracle Database Advanced Queuingベースのモデルを使用して変換が行われます。
JMS以外のメッセージ変換プロセスの概要
MGWによってメッセージが伝播される場合、メッセージはソース・キュー・システム固有のフォーマットから宛先キュー・システム固有のフォーマットに変換されます。
ネイティブなメッセージには、通常、メッセージ・ヘッダーとメッセージ本体が含まれます。ヘッダーには、メッセージ・システム内のすべてのメッセージに存在する固定ヘッダー・フィールドが含まれます。たとえば、Oracle Database Advanced Queuingのメッセージ・プロパティやWebSphere MQの固定ヘッダーなどです。本体には、Oracle Database Advanced Queuingのペイロード、WebSphere MQのメッセージ本体、またはTIB/Rendezvousのメッセージ全体などのメッセージ・コンテンツが含まれます。MGWでは、メッセージ・ヘッダーおよびメッセージ本体コンポーネントの両方が変換されます。
図C-2は、2つのステージでJMS以外のメッセージを変換する方法を示したものです。メッセージは、最初にソース・キューのシステム固有のフォーマットからMGWの内部メッセージ・フォーマットに変換され、次に、内部メッセージ・フォーマットから宛先キューのシステム固有のフォーマットに変換されます。
MGWエージェントでは、Oracle Database Advanced Queuingのメッセージ・プロパティに類似したヘッダーと、MGWの標準型で表される本体で構成された、内部メッセージ・フォーマットが使用されます。
Oracle Messaging Gateway標準型
MGWでは標準型が定義され、Oracle Database Advanced QueuingとOracle以外のメッセージ・システム間でのメッセージ変換がサポートされます。標準型は、メッセージ型をOracle DatabaseでのPL/SQL Oracleタイプの形式で表したものです。標準型は、RAW
、SYS.MGW_BASIC_MSG_T
およびSYS.MGW_TIBRV_MSG_T
です。
WebSphere MQ伝播では、標準型SYS.MGW_BASIC_MSG_T
およびRAW
がサポートされます。TIB/Rendezvous伝播では、標準型SYS.MGW_TIBRV_MSG_T
およびRAW
がサポートされます。
関連項目:
SYS.MGW_BASIC_MSG_T
およびSYS.MGW_TIBRV_MSG_T
の構文および属性情報は、『Oracle Database PL/SQLパッケージ・プロシージャおよびタイプ・リファレンス』のDBMS_MGWMSGに関する項を参照してください。
メッセージ・ヘッダーの変換
MGWでは、Oracle Database Advanced Queuingメッセージ・プロパティと、同じセマンティクスのOracle Database Advanced Queuingメッセージ・プロパティに対応する値を含むOracle以外のメッセージ・ヘッダー・フィールドとの間で、デフォルトのマッピングが行われます。MGWによってマッピングが行われない場合、メッセージ・ヘッダー・フィールドはデフォルト値(通常、メッセージ・システムによって定義されたデフォルト値)に設定されます。
メッセージ変換を使用した任意のペイロード型の処理
Oracle Database Advanced Queuingメッセージ間で変換する場合、MGWエージェントでは通常、標準型のみが使用されます。ただし、任意のペイロード型は、Oracle Database Advanced Queuingのキュー・ペイロードとMGW標準型間で変換するために、ユーザー定義のOracle Database Advanced Queuingのメッセージ変換機能によってサポートされます。
任意のADTペイロード(発信伝播)によってOracle Database Advanced Queuingのキューからメッセージを伝播するMGWには、MGWの標準ユーザー定義型に対するマッピングが必要です。変換は、MGWエージェントによってOracle Database Advanced Queuingのキューからメッセージがデキューされると起動されます。同様に、任意のADTペイロード(着信伝播)によってOracle Database Advanced Queuingのキューにメッセージを伝播するMGWには、MGWの標準ADTからのマッピングが必要です。変換は、MGWエージェントによってOracle Database Advanced Queuingのキューにメッセージがエンキューされると起動されます。
変換は常にMGWエージェントとの関連で実行されますが、これはMGWエージェント・ユーザー(DBMS_MGWADM
.CREATE_AGENT
またはDBMS_MGWADM
.ALTER_AGENT
を使用して指定したユーザー)には、変換ファンクションおよびOracle Database Advanced Queuingペイロード型に対するEXECUTE
権限が必要であることを意味しています。これは、PUBLIC
にEXECUTE
権限を付与するか、またはMGWエージェントのユーザーに直接EXECUTE
権限を付与することによって実現できます。
変換によってMGW伝播ジョブを構成するには:
- 変換ファンクションを作成します。
- MGWエージェントのユーザーまたは
PUBLIC
に、ファンクションおよびそのファンクションが参照するオブジェクト型に対するEXECUTE
権限を付与します。 DBMS_TRANSFORM.CREATE_TRANSFORMATION
をコールして、変換を登録します。- 変換によってMGW伝播ジョブを作成する場合は
DBMS_MGWADM
.CREATE_JOB
を、既存のジョブを変更する場合はDBMS_MGWADM
.ALTER_JOB
をコールします。
例C-31 変換ファンクションの署名
FUNCTION trans_sampleadt_to_mgw_basic(in_msg IN mgwuser.sampleADT) RETURN SYS.MGW_BASIC_MSG_T;
例C-32に示すように、DBMS_TRANSFORM.CREATE_TRANSFORMATION
を使用して変換を作成できます。
例C-32 変換の作成
BEGIN DBMS_TRANSFORM.CREATE_TRANSFORMATION( schema => 'mgwuser', name => 'sample_adt_to_mgw_basic', from_schema => 'mgwuser', from_type => 'sampleadt', to_schema => 'sys', to_type => 'MGW_BASIC_MSG_T', transformation => 'mgwuser.trans_sampleadt_to_mgw_basic(user_data)'); END;
例C-33 変換の登録
BEGIN DBMS_MGWADM.CREATE_JOB( job_name => 'job_aq2mq', propagation_type => DBMS_MGWADM.OUTBOUND_PROPAGATION, source => 'mgwuser.srcq', destination => 'destq.mqlink', transformation => 'mgwuser.sample_adt_to_mgw_basic', exception_queue => 'mgwuser.excq'); END;
これらのAPIの変換パラメータに渡される値は、ファンクション名ではなく登録された変換名である必要があります。たとえば、trans_sampleadt_to_mgw_basic
は、例C-31で示した署名によって変換ファンクションを表すストアド・プロシージャです。
ノート:
この例のすべてのコマンドは、変換を作成するコマンドを除き、MGW_ADMINISTRATOR_ROLE
が付与されたユーザーとして実行する必要があります。
いったん作成した後は、伝播ジョブの作成時にこの変換をMGWに登録できます。例C-33ではジョブjob_aq2mq
を作成します。これのメッセージはOracle Database Advanced Queuingのキューmgwuser.srcq
からOracle以外のメッセージ・システム・キューdestq@mqlink
に変換mgwuser.sample_adt_to_mgw_basic
を使用して伝播されます。
通常、ユーザー定義の変換を実行中に発生するエラーはメッセージ変換例外とみなされ、メッセージは例外キューに移動されます(存在する場合)。
関連項目:
『Oracle Database PL/SQLパッケージ・プロシージャおよびタイプ・リファレンス』のDBMS_MGWADM、DBMS_MGWMSGおよびDBMS_TRANSFORMに関する項
論理変更レコードの処理
MGWでは、論理変更レコード(LCR)を伝播する機能を提供しています。変換の作成を支援し、ペイロード型ANYDATA
でキューに格納されているLCR行およびDDL LCRの両方の伝播を処理するルーチンが提供されています。LCRは、適切なメッセージ型で格納されているXML文字列として伝播されます。
ノート:
LCR伝播については、XDBパッケージをロードする必要があります。
Oracle Streamsでは、ANYDATA
キューを使用してLCRを格納するため、ANYDATA
キューが発信伝播のソースとなります。変換では最初にMGWルーチンDBMS_MGWMSG.LCR_TO_XML
を使用して、LCRを含むANYDATA
オブジェクトをXML型オブジェクトに変換する必要があります。ANYDATA
オブジェクトにLCRが含まれない場合は、このルーチンでエラーが発生します。次に、LCRのXML文書の文字列がXML型から抽出され、適切なMGW標準型(SYS.MGW_BASIC_MSG_T
またはSYS.MGW_TIBRV_MSG_T
)に配置されます。
例C-34は、LCR発信伝播用に使用される変換を簡素化して示したものです。変換によって、LCRを含むANYDATA
ペイロードがSYS.MGW_TIBRV_MSG_T
オブジェクトに変換されます。LCRをXML文書として表す文字列が、ORACLE_LCR
というフィールドに配置されます。
LCR着信伝播の場合、MGW標準型(SYS.MGW_BASIC_MSG_T
またはSYS.MGW_TIBRV_MSG_T
)が変換ソースの型となります。LCRをXML文書のフォーマットで表す文字列は、標準型に含まれる必要があります。変換ファンクションはメッセージから文字列を抽出し、そこからXML型オブジェクトを作成し、MGWルーチンDBMS_MGWMSG.XML_TO_LCR
を使用してLCRを含むANYDATA
オブジェクトに変換する必要があります。元のXML文書がLCRを表していない場合は、このルーチンでエラーが発生します。
例C-35は、LCR着信伝播用に使用される変換を簡素化して示したものです。変換によって、LCRを表すXML文字列を含むフィールドがあるSYS.MGW_TIBRV_MSG_T
オブジェクトが、ANYDATA
オブジェクトに変換されます。LCRをXML文書として表す文字列が、ORACLE_LCR
というフィールドから取得されます。
関連項目:
-
『Oracle Database PL/SQLパッケージ・プロシージャおよびタイプ・リファレンス』のDBMS_MGWMSGに関する項
-
LCR変換の詳細例は、
ORACLE_HOME
/mgw/samples/lcr
を参照してください。
例C-34 発信LCRの変換
create or replace function any2tibrv(adata in anydata) return SYS.MGW_TIBRV_MSG_T is v_xml XMLType; v_text varchar2(2000); v_tibrv sys.mgw_tibrv_msg_t; BEGIN v_xml := dbms_mgwmsg.lcr_to_xml(adata); -- assume the lcr is smaller than 2000 characters long. v_text := v_xml.getStringVal(); v_tibrv := SYS.MGW_TIBRV_MSG_T.CONSTRUCT; v_tibrv.add_string('ORACLE_LCR', 0, v_text); return v_tibrv; END any2tibrv;
例C-35 着信LCRの変換
create or replace function tibrv2any(tdata in sys.mgw_tibrv_msg_t) return anydata is v_field sys.mgw_tibrv_field_t; v_xml XMLType; v_text varchar2(2000); v_any anydata; BEGIN v_field := tdata.get_field_by_name('ORACLE_LCR'); -- type checking v_text := v_field.text_value; -- assume it is not null v_xml := XMLType.createXML(v_text); v_any := dbms_mgwmsg.xml_to_lcr(v_xml); return v_any; END tibrv2any;
WebSphere MQに対するメッセージ変換
MGWによって、MGW標準型とWebSphere MQ固有のメッセージ・フォーマット間の変換が行われます。WebSphere MQ固有のメッセージは、固定されたメッセージ・ヘッダーとメッセージ本体で構成されます。メッセージ本体は、TEXT
値またはRAW
(バイト)値のいずれかとして処理されます。WebSphere MQ伝播用にサポートされている標準型は、SYS.MGW_BASIC_MSG_T
とRAW
です。
図C-4は、MGW WebSphere MQドライバで標準型SYS.MGW_BASIC_MSG_T
を使用して実行されるメッセージ変換を示したものです。発信伝播の場合、ドライバによって、Oracle Database Advanced Queuingメッセージ・プロパティおよび標準型メッセージが、固定ヘッダーおよびメッセージ本体を含むWebSphere MQシステム固有のメッセージにマップされます。着信伝播の場合、ドライバによって、システム固有のメッセージが一連のOracle Database Advanced Queuingメッセージ・プロパティおよび標準型メッセージにマップされます。標準型がRAW
の場合、標準型ヘッダーが存在しないこと以外はマッピング方法は同じです。
WebSphere MQメッセージ・ヘッダーのマッピング
MGW発信伝播ジョブで使用される標準型がRAW
の場合、WebSphere MQヘッダー情報はRAW
メッセージ本体からは設定されません。同様に着信伝播の場合、WebSphere MQヘッダー情報はRAW
メッセージ本体には保持されません。ただし、MGW標準型SYS.MGW_BASIC_MSG_T
には、発信伝播のWebSphere MQヘッダー・フィールドを指定する際に使用でき、さらに着信伝播のWebSphere MQヘッダー・フィールドを保持できるヘッダーがあります。
この項では、SYS.MGW_BASIC_MSG_T
を標準型として使用してWebSphere MQメッセージ・システムに対してサポートされているメッセージ・プロパティについて説明します。表C-8に、WebSphere MQヘッダー・プロパティの記述に使用されるMGWの{名前, 値}の組の定義を示します。最初の列は、SYS.MGW_BASIC_MSG_T
ヘッダーのSYS.MGW_NAME_VALUE_T.NAME
フィールドの有効文字列値です。2番目の列は、名前に対応するSYS.MGW_NAME_VALUE_T.TYPE
値です。(括弧内の数値の詳細は、各行はメッセージ・ゲートウェイの名前に対応します。第1列は名前、第2列はメッセージ・ゲートウェイの型、第3列は対応するWebSphere MQプロパティ名、第4列はその用途を示します。を参照してください。)
着信伝播の場合、WebSphere MQドライバによって、ソース・メッセージ・ヘッダーに基づいて{名前, 値}の組が生成され、SYS.MGW_BASIC_MSG_T
型の標準型メッセージのヘッダー部分に格納されます。発信伝播の場合、WebSphere MQドライバによって、SYS.MGW_BASIC_MSG_T
標準型メッセージのヘッダー部分に格納されたこれらのプロパティに対する{名前, 値}の組から、メッセージ・ヘッダーおよびエンキュー・オプションが設定されます。
表C-8 WebSphere MQのヘッダー値に対するMGWの名前
MGWの名前 | MGWの型 | WebSphere MQプロパティ名 | 使用対象 |
---|---|---|---|
MGW_MQ_accountingToken |
RAW_VALUE (size 32) |
accountingToken |
発信(1)、着信 |
MGW_MQ_applicationIdData |
TEXT_VALUE (size 32) |
applicationIdData |
発信(1)、着信 |
MGW_MQ_applicationOriginData |
TEXT_VALUE (size 4) |
applicationOriginData |
発信(1)、着信 |
MGW_MQ_backoutCount |
INTEGER_VALUE |
backoutCount |
着信 |
MGW_MQ_characterSet |
INTEGER_VALUE |
characterSet |
発信、着信 |
MGW_MQ_correlationId |
RAW_VALUE (size 24) |
correlationId |
発信(1)、着信 |
MGW_MQ_encoding |
INTEGER_VALUE |
encoding |
発信、着信 |
MGW_MQ_expiry |
INTEGER_VALUE |
expiry |
発信、着信 |
MGW_MQ_feedback |
INTEGER_VALUE |
feedback |
発信、着信 |
MGW_MQ_format |
TEXT_VALUE (size 8) |
format |
発信(1)、着信 |
MGW_MQ_groupId |
RAW_VALUE (size 24) |
groupId |
発信(1)、着信 |
MGW_MQ_messageFlags |
INTEGER_VALUE |
messageFlags |
発信、着信 |
MGW_MQ_messageId |
RAW_VALUE (size 24) |
messageId |
発信、着信 |
MGW_MQ_messageSequenceNumber |
INTEGER_VALUE |
messageSequenceNumber |
発信、着信 |
MGW_MQ_messageType |
INTEGER_VALUE |
messageType |
発信、着信 |
MGW_MQ_offset |
INTEGER_VALUE |
offset |
発信、着信 |
MGW_MQ_originalLength |
INTEGER_VALUE |
originalLength |
発信、着信 |
MGW_MQ_persistence |
INTEGER_VALUE |
persistence |
着信 |
MGW_MQ_priority |
INTEGER_VALUE |
priority |
発信、着信 |
MGW_MQ_putApplicationName |
TEXT_VALUE (size 28) |
putApplicationName |
発信(1)、着信 |
MGW_MQ_putApplicationType |
INTEGER_VALUE |
putApplicationType |
発信(1)、着信 |
MGW_MQ_putDateTime |
DATE_VALUE |
putDateTime |
着信 |
MGW_MQ_putMessageOptions |
INTEGER_VALUE |
putMessageOptions |
発信 (1) (2) |
MGW_MQ_replyToQueueManagerName |
TEXT_VALUE (size 48) |
replyToQueueManagerName |
発信、着信 |
MGW_MQ_replyToQueueName |
TEXT_VALUE (size 48) |
replyToQueueName |
発信、着信 |
MGW_MQ_report |
INTEGER_VALUE |
report |
発信(1)、着信 |
MGW_MQ_userId |
TEXT_VALUE (size 12) |
userId |
発信、着信 |
関連項目:
『Oracle Database PL/SQLパッケージ・プロシージャおよびタイプ・リファレンス』のDBMS_MGWMSGに関する項
表C-8に関するノート
-
この表での使用方法には、WebSphere MQの制約が適用されます。たとえば、送信メッセージに対して
MGW_MQ_accountingToken
が設定されている場合、WebSphere MQの値は、MGW_MQ_putMessageOptions
がWebSphere MQ定数のMQPMD_SET_ALL_CONTEXT
に設定されていないかぎり、オーバーライドされます。 -
MGW_MQ_putMessageOptions
は、WebSphere MQ Base JavaQueue.put()
メソッドのputMessageOptions
引数として使用されています。WebSphere MQのヘッダー情報の一部ではないため、実際のメッセージのプロパティではありません。WebSphere MQ Base Javaの
MQQueueManager.accessQueue
メソッドに対するopenOptions
引数の値は、DBMS_MGWADM.REGISTER_FOREIGN_QUEUE
をコールしてWebSphere MQキューが登録されるときに指定されます。これらの値の間には依存関係が存在する場合があります。たとえば、MGW_MQ_putMessageOptions
にMQPMD_SET_ALL_CONTEXT
を含めるには、MQ_openMessageOptions
キュー・オプションにMQOO_SET_CONTEXT
を含める必要があります。MGWエージェントによって、指定可能なすべての値に
MQPMO_SYNCPOINT
という値が追加されます。
MGWによって、次の2つのWebSphere MQのメッセージ・ヘッダー・フィールドのデフォルト値が設定されます。messageType
のデフォルト値はMQMT_DATAGRAM
に、putMessageOptions
のデフォルト値はMQPMO_SYNCPOINT
に設定されます。
MGWには、Oracle Database Advanced Queuingのメッセージ・プロパティとWebSphere MQのヘッダー・フィールド間の2つのデフォルト・マッピングがあります。
1つは、キュー内でメッセージが使用可能になったときのメッセージのTime-to-Liveを表すOracle Database Advanced Queuingのメッセージ・プロパティのexpiration
を、メッセージのTime-to-Liveを表すWebSphere MQのヘッダー・フィールドのexpiry
にマップします。発信伝播の場合、expiry
に使用する値はキュー内でメッセージが使用可能になった時刻をexpiration
から引き算し、10分の1秒単位の値に変換します。Oracle Database Advanced Queuing値NEVER
は、MQEI_UNLIMITED
にマップされます。着信伝播の場合、expiration
は単に秒単位に変換されたexpiry
です。WebSphere MQ値のMQEI_UNLIMITED
は、NEVER
にマップされます。
その他のデフォルトは、Oracle Database Advanced Queuingのメッセージ・プロパティのpriority
をWebSphere MQのヘッダー・フィールドのpriority
とともにマップします。表C-9で説明します。
表C-9 伝播のデフォルト優先順位のマッピング
伝播型 | メッセージ・システム | 優先度の値 | |||||||||
---|---|---|---|---|---|---|---|---|---|---|---|
発信 |
Oracle Databaseアドバンスト・キューイング |
0 |
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
発信 |
WebSphere MQ |
9 |
8 |
7 |
6 |
5 |
4 |
3 |
2 |
1 |
0 |
着信 |
Oracle Databaseアドバンスト・キューイング |
9 |
8 |
7 |
6 |
5 |
4 |
3 |
2 |
1 |
0 |
着信 |
WebSphere MQ |
0 |
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
ノート:
発信伝播の場合、0未満のOracle Database Advanced Queuing優先順位は、WebSphere MQ優先順位9にマップされ、9より大きいOracle Database Advanced Queuing優先順位はWebSphere MQ優先順位0にマップされます。
WebSphere MQ発信伝播
発信伝播用のメッセージ変換が指定されていない場合は、Oracle Database Advanced Queuingのソース・キューのペイロード型は、SYS.MGW_BASIC_MSG_T
またはRAW
である必要があります。メッセージ変換が指定されている場合、変換のターゲットのADTはSYS.MGW_BASIC_MSG_T
である必要がありますが、ソースのADTはOracle Database Advanced Queuingによってサポートされている任意のADTが有効です。
Oracle Database Advanced QueuingキューのペイロードがRAWの場合、WebSphere MQから取得されるメッセージには、RAWバイトの値に設定されたメッセージ本体と、デフォルトでは「MGW_Byte
」値に設定されたformat
フィールドがあります。
Oracle Database Advanced Queuingキューのペイロードまたは変換ターゲットのADTがSYS.MGW_BASIC_MSG_T
の場合、メッセージは次のようにWebSphere MQの固有メッセージにマップされます。
-
WebSphere MQの固定ヘッダー・フィールドは、「WebSphere MQメッセージ・ヘッダーのマッピング」で説明されているように、標準型メッセージの内部Oracle Database Advanced Queuingメッセージ・プロパティおよび
SYS.MGW_BASIC_MSG_T.header
属性に基づいています。 -
標準型メッセージに
TEXT
本体がある場合は、WebSphere MQのフォーマット・ヘッダー・フィールドは、ヘッダー・プロパティMGW_MQ_format
によってオーバーライドされないかぎりMQFMT_STRING
に設定されます。メッセージ本体はテキストとみなされます。 -
標準型メッセージに
RAW
本体がある場合は、WebSphere MQのフォーマット・ヘッダー・フィールドは、ヘッダー・プロパティMGW_MQ_format
によってオーバーライドされないかぎりMGW_Byte
に設定されます。メッセージ本体はRAWバイトとみなされます。 -
標準型メッセージに、
TEXT
およびRAW
の両方の本体が含まれる場合、メッセージ変換は失敗します。 -
標準型メッセージに、
TEXT
本体またはRAW
本体のいずれも含まれていない場合、メッセージ本体は設定されず、WebSphere MQフォーマット・ヘッダー・フィールドはMQFMT_NONE
となります。 -
標準型メッセージに小さい値セットと大きい値セット(空ではない
SYS.MGW_BASIC_MSG_T.TEXT_BODY.small_value
およびSYS.MGW_BASIC_MSG_T.TEXT_BODY.large_value
)の両方があるTEXT
本体が含まれる場合は、メッセージ変換は失敗します。 -
標準型メッセージに小さい値セットと大きい値セット(空ではない
SYS.MGW_BASIC_MSG_T.RAW_BODY.small_value
およびSYS.MGW_BASIC_MSG_T.RAW_BODY.large_value
)の両方があるRAW
本体が含まれる場合は、メッセージ変換は失敗します。
ジョブ・オプションPreserveMessageID
が値TRUE
に指定されている場合、WebSphereメッセージ・ヘッダーのcorrelationId
フィールドはAQのソース・メッセージ識別子に設定されます。correlationId
の値は"AQMSGID:"+
AQ_msgid
という書式の24バイト値で、AQ_msgid
は16バイトのDatabase AQメッセージ識別子を表します。
WebSphere MQ着信伝播
着信伝播用のメッセージ変換が指定されていない場合は、Oracle Database Advanced Queuingの宛先キューのペイロード型は、SYS.MGW_BASIC_MSG_T
またはRAW
である必要があります。メッセージ変換が指定されている場合、変換のソースのADTはSYS.MGW_BASIC_MSG_T
である必要がありますが、宛先のADTはOracle Database Advanced Queuingによってサポートされている任意のユーザー定義型が有効です。
Oracle Database Advanced QueuingキューのペイロードがRAW
で、着信WebSphere MQメッセージにMQFMT_STRING
のformat
が含まれる場合、メッセージ変換は失敗します。そうでない場合は、メッセージ本体はRAWバイトとみなされ、宛先キューに直接エンキューされます。バイト数が32KBを超える場合は、メッセージ変換は失敗します。実際の限度は、32767バイトではなく32512バイトです。
Oracle Database Advanced Queuingキューのペイロードまたは変換ソースのADTがSYS.MGW_BASIC_MSG_T
の場合、WebSphere MQメッセージは次のようにSYS.MGW_BASIC_MSG_T
メッセージにマップされます。
-
特定のWebSphere MQのヘッダー・フィールドは、前に説明したようにOracle Database Advanced Queuingのメッセージ・プロパティにマップされます。
-
標準型メッセージの
SYS.MGW_BASIC_MSG_T.header
属性は、表C-8に示すとおり、WebSphere MQヘッダー・フィールドに基づいて{名前, 値}の組に設定されます。これらの値は、WebSphere MQのメッセージ・ヘッダーの当初の内容を保持します。 -
WebSphere MQの
format
ヘッダー・フィールドがMQFMT_STRING
の場合、WebSphere MQのメッセージ本体はテキストとして処理され、その値はSYS.MGW_BASIC_MSG_T.text_body
にマップされます。他のformat
値の場合、メッセージ本体はRAWバイトとして処理され、その値はSYS.MGW_BASIC_MSG_T.raw_body
にマップされます。
TIB/Rendezvousに対するメッセージ変換
MGWでは、TIB/Rendezvousメッセージはフィールドのセットおよび追加情報とみなされます。図C-5は、MGWとTIB/Rendezvousの間におけるメッセージの変換方法を示したものです。
メッセージ変換障害が発生すると、メッセージはMGWによって、ソース・キュー内の残りのメッセージの伝播を続行できるように例外キュー(例外キューがある場合)に移されます。TIB/Rendezvousからの着信伝播では、例外キューは登録済サブジェクトです。
TIB/RendezvousのフィールドのTIB/Rendezvousのワイヤ・フォーマットのデータ型は、符号のない整数およびネストされたメッセージ型以外はすべてサポートされています。今回のリリースでは、ユーザー定義のカスタム・データ型はサポートされていません。メッセージにサポートされていないデータ型のデータが含まれる場合は、処理時にメッセージ変換障害が発生します。メッセージ変換障害が発生すると、例外キューがある場合は、失敗したメッセージはソース・キューから例外キューに移されます。
表C-10は、MGWがTIB/Rendezvousの固有メッセージと標準のADTとで変換を行う場合に使用されるデータ型マッピングを示したものです。サポートされているTIB/Rendezvousの各ワイヤ・フォーマット型に対して、データの格納に使用されるOracleタイプおよびその型を表すDBMS_MGWMSG
定数が示されています。
表C-10 TIB/Rendezvousデータ型のマッピング
TIB/Rendezvousワイヤ・フォーマット | Oracle型 | ADTフィールド型 |
---|---|---|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
サポートされません |
サポートされません |
|
サポートされません |
サポートされません |
|
サポートされません |
サポートされません |
|
サポートされません |
サポートされません |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
サポートされません |
サポートされません |
|
サポートされません |
サポートされません |
|
サポートされません |
サポートされません |
|
サポートされません |
サポートされません |
|
サポートされません |
サポートされません |
|
|
|
|
|
|
|
|
|
Oracle Database Advanced QueuingおよびTIB/Rendezvous間の伝播の場合、MGWは、Oracle Database Advanced Queuingのペイロード型RAW
およびSYS.MGW_TIBRV_MSG_T
を直接サポートします。その他のOracle Database Advanced Queuingのペイロード型をサポートするには、変換を指定する必要があります。
TIB/Rendezvousに対するAQメッセージ・プロパティ・マッピング
この項では、Oracle Database AQのメッセージ・プロパティとTIB/Rendezvousのフィールドの間のマッピングについて説明します。このマッピングを使用して、発信伝播中にはDatabase AQメッセージ・プロパティが保持され、着信伝播中にはDatabase AQメッセージ・プロパティが設定されます。
表C-11は、TIB/Rendezvousのフィールドを使用してサポートされているDatabase AQメッセージ・プロパティを示したものです。第1列は、Database AQメッセージ・プロパティのDBMS_AQ.MESSAGE_PROPERTIES_T
フィールドを示します。第2列と第3列は、TIB/Rendezvousのフィールドに使用される名前とデータ型を示します。最後の列は、メッセージ・プロパティが着信伝播と発信伝播に対してサポートされているかどうかを示します。
表C-11 Oracle Database Advanced Queuingメッセージ・プロパティに対するTIB/RendezvousおよびMGWの名前
Oracle Database Advanced Queuingメッセージ・プロパティ | MGWの名前 | TIB/Rendezvousワイヤ・フォーマット・データ型 | 使用対象 |
---|---|---|---|
|
|
|
発信、着信 |
|
|
|
発信、着信 |
|
|
|
発信、着信 |
|
|
|
発信、着信 |
|
|
|
発信、着信 |
|
|
|
発信 |
|
|
|
発信 |
|
|
|
発信 |
表C-11に関するノート
-
Database AQプロパティ
msgid
は、DBMS_AQ.MESSAGE_PROPERTIES_T
レコードの特定のフィールドではなくDatabase AQメッセージ識別子を表します。
TIB/Rendezvous発信伝播
発信伝播に対する伝播変換が指定されていない場合は、Oracle Database Advanced Queuingのソース・キューのペイロード型は、SYS.MGW_TIBRV_MSG_T
またはRAW
である必要があります。伝播変換が指定されている場合、変換のターゲットのADTはSYS.MGW_TIBRV_MSG_T
である必要がありますが、ソースのADTはOracle Database Advanced Queuingによってサポートされている任意のADTが有効です。
Oracle Database Advanced Queuingキューのペイロードまたは変換ターゲットのADTがSYS.MGW_TIBRV_MSG_T
の場合は、次のようになります。
-
ソース・メッセージのすべてのフィールドは、TIB/Rendezvousから取得されるメッセージのTIB/Rendezvousメッセージ・フィールドに変換されます。
-
reply_subject
属性がNULL
ではない場合は、応答サブジェクトの追加情報が設定されます。 -
send_subject
フィールドは無視されます。
Oracle Database Advanced QueuingキューのペイロードがRAW
の場合は、次のようになります。
-
結果メッセージには、値が
TibrvMsg.OPAQUE
でMGW_RAW_MSG
という名前のフィールドが含まれます。フィールドIDは0に設定されます。
ジョブ・オプションAQ_MsgProperties
が値TRUE
に指定されている場合は、MGWエージェントによって、TIB/Rendezvousメッセージの各Database AQメッセージ・プロパティを保持するフィールドが表C-11に従って生成されます。
ジョブ・オプションPreserveMessageID
が値TRUE
に指定されている場合、Database AQメッセージID (msgid
)は表C-11に従ってTIB/Rendezvousメッセージに保持されます。
TIB/Rendezvous着信伝播
着信伝播に対する伝播変換が指定されていない場合、Oracle Database Advanced Queuingの宛先キューのペイロード型はRAW
またはSYS.MGW_TIBRV_MSG_T
である必要があります。伝播変換が指定されている場合、変換ターゲットのADTにはOracle Database Advanced Queuingでサポートされている任意のADTが有効ですが、変換ソースのADTはSYS.MGW_TIBRV_MSG_T
である必要があります。
Oracle Database Advanced Queuingキューのペイロードまたは変換ソースのADTがSYS.MGW_TIBRV_MSG_T
の場合は、次のようになります。
-
TIB/Rendezvousのソース・メッセージの個々のフィールドは、結果として
SYS.MGW_TIBRV_MSG_T
型のメッセージのフィールドに変換されます。 -
MGWエージェントによって、TIB/Rendezvousのソース・メッセージから送信サブジェクト名を抽出し、
SYS.MGW_TIBRV_MSG_T
にsend_subject
属性を設定します。通常、送信サブジェクト名は登録済の伝播ソース・キューのサブジェクト名と同じですが、ワイルドカードを使用する場合は異なる場合があります。 -
MGWエージェントによって、TIB/Rendezvousのソース・メッセージから応答サブジェクト名を抽出し、
SYS.MGW_TIBRV_MSG_T
にreply_subject
属性を設定します。 -
TIB/Rendezvousのソース・メッセージに3つを超える大きなテキスト・フィールド(4000バイトを超えるテキスト)または3つを超える大きなバイト・フィールド(2000バイトを超える)が含まれる場合は、メッセージ変換は失敗します。
Oracle Database Advanced QueuingキューのペイロードがRAW
の場合は、次のようになります。
-
TIB/Rendezvousのソース・メッセージに
TibrvMsg.OPAQUE
型またはTibrvMsg.XML
型のMGW_RAW_MSG
という名前のフィールドが含まれる場合、Oracle Database Advanced Queuingのメッセージ・ペイロードはフィールド・データです。フィールド名とIDは無視されます。該当するフィールドがない、またはフィールドの型が予想したものと異なる場合は、メッセージ変換障害が発生します。 -
RAW
データ・サイズが32KBを超える場合は、メッセージ変換障害が発生します。これは、バインド変数に許可されたデータ・サイズ制限によるものです。また、実際の限度は32767ではなく32512です。
ジョブ・オプションAQ_MsgProperties
が値TRUE
で指定されている場合は、MGWエージェントによって、TIB/Rendezvousの当初のメッセージの中から予約したフィールド名のフィールドが検索されます。表C-11は、フィールド名文字列とTIB/Rendezvousのメッセージで使用される対応する値を示したものです。
該当するフィールドがある場合は、MGWエージェントでは、デフォルト値ではなくフィールド値を使用して対応するOracle Database Advanced Queuingのメッセージ・プロパティが設定されます。同じ名前のフィールドが複数ある場合は、最初のフィールドのみが使用されます。Oracle Database Advanced Queuingのキュー・ペイロードがRAW
の場合のみ、フィールドが結果のペイロードから削除されます。予約名のあるフィールドのデータ型が予想したものと異なる場合は、メッセージ変換障害が発生します。
関連項目:
データ型の値は、『PL/SQLパッケージ・プロシージャおよびタイプ・リファレンス』のDBMS_MGWMSGに関する項を参照してください。
JMSメッセージ
MGWではメッセージの内容を変更することなく、Oracle JMSシステムとOracle JMS以外のシステム間でJMSメッセージのみを伝播します。図C-6は、JMSメッセージ伝播を示したものです。
MGWでは、標準のJMSメッセージ・タイプのみサポートしています。次のものはサポートしていません。
-
JMSプロバイダの拡張機能。これらの拡張機能は宛先JMSシステムで認識されないためです。このようなJMS以外のメッセージの伝播を試みると、エラー・メッセージが表示されます。
-
JMS伝播用のユーザー変換。
-
論理変更レコード(LCR)の伝播。
この説明のために、JMSメッセージは5つのJMSメッセージ・インタフェースの1つを実装するクラスのJavaオブジェクトとします。表C-12は、JMSメッセージ・インタフェースと、それに対応するOracle JMSのADTを示しています。また表には、5つの特定の型のいずれかであるインタフェースのjavax.jms.Message
、および一般的なOracle JMS型のSYS.AQ$_JMS_MESSAGE
も示します。
表C-12 Oracle JMSメッセージの変換
JMSメッセージ | ADT |
---|---|
|
|
|
|
|
|
|
|
|
|
|
|
伝播ジョブを有効にするとMGWエージェントによって、伝播ソースまたは宛先に対するOracle Database Advanced Queuingのペイロード型がチェックされます。型が、表C-12に示した型またはANYDATA
である場合は、メッセージ伝播が実行されます。そうでない場合は、例外が記録され伝播は実行されません。
MGWエージェントが、OracleMGW_OriginalMessageID
というJMS String
プロパティを宛先キューに送信されたJMSメッセージに追加する場合があります。これは、ソース・メッセージの元のメッセージ識別子を保持するためです。このプロパティは、PreserveMessageID
ジョブ・オプションがTRUE
という値で指定された場合に追加されます。また、メッセージの変換が失敗した際に例外キューに移動されるすべてのメッセージにも追加されます。
JMS発信伝播
Oracle Database Advanced Queuingキューからメッセージをデキューすると、Oracle JMSによって表C-12に示すADTのインスタンスがJMSメッセージに変換されます。さらに、ANYDATA
のインスタンスを内容に応じてJMSメッセージに変換できます。
ペイロード型ANYDATA
のキューは、JMSメッセージにマップされないメッセージを保持できます。MGWではメッセージのデキューはできません。エラーが記録され、そのキューからのメッセージの伝播はメッセージが削除されるまで続行されません。
Oracle Messaging Gatewayの監視
次のトピックでは、Oracle Messaging Gateway (MGW)のエージェントの監視方法、ユーザーが経験する異常状態、メッセージ・ゲートウェイのエラーと例外に関する複数ソースの情報および推奨される改善措置を説明します。
Oracle Messaging Gatewayのログ・ファイル
メッセージ・ゲートウェイ・エージェントの状態、履歴およびエラーは、メッセージ・ゲートウェイのログ・ファイルに記録されます。メッセージ・ゲートウェイ・エージェントが起動されるたびに、異なるログ・ファイルが作成されます。あらゆるエラー、起動時に読み込まれた設定情報または動的設定情報はログ・ファイルに書き込まれているため、ログ・ファイルを監視する必要があります。
デフォルトのエージェントのログ・ファイル名のフォーマットは次のとおりです。
oramgw-hostname-timestamp-processid.log
指定エージェントのログ・ファイル名のフォーマットは次のとおりです。
oramgw-AGENTNAME-hostname-timestamp-processid.log
デフォルトで、メッセージ・ゲートウェイのログ・ファイルは、ORACLE_HOME
/mgw/log
にあります。この場所は、エージェントで使用されるメッセージ・ゲートウェイの初期化ファイル(通常、mgw.ora
)内のlog_directory
パラメータで上書きできます。
この項の内容は次のとおりです。
Oracle Messaging Gatewayのログ・ファイル・サンプル
次のサンプル・ログ・ファイルは、メッセージ・ゲートウェイ・エージェントの起動を示しています。サンプル・ログ・ファイルには、リンク、登録された外部キュー、サブスクライバおよびスケジュールが追加されたことが表示されます。また、伝播ジョブがアクティブ化されていることも示されています。最後の行は、メッセージ・ゲートウェイが起動され、実行中であり、メッセージを伝播する準備が完了していることを示しています。
例C-36 メッセージ・ゲートウェイのサンプル・ログ・ファイル
>>2007-01-16 15:04:49 MGW C-Bootstrap 0 LOG process-id=11080 Bootstrap program starting >>2007-01-16 15:04:50 MGW C-Bootstrap 0 LOG process-id=11080 JVM created -- heapsize = 64 >>2007-01-16 15:04:53 MGW Engine 0 200 main MGW Agent version: 11.1.0.0 >>2007-01-16 15:04:53 MGW AdminMgr 0 LOG main Connecting to database using connect string = jdbc:oracle:oci:@INST1 >>2007-01-16 15:05:00 MGW Engine 0 200 main MGW Component version: 11.1.0.3.0 >>2007-01-16 15:05:01 MGW Engine 0 200 main MGW agent name: DEFAULT_AGENT, MGW job instance id: 273006EC6ED255F1E040578C6D021A8C, MGW database instance: 1 >>2007-01-16 15:05:09 MGW Engine 0 1 main Agent is initializing. >>2007-01-16 15:05:09 MGW Engine 0 23 main The number of worker threads is set to 1. >>2007-01-16 15:05:09 MGW Engine 0 22 main The default polling interval is set to 5000ms. >>2007-01-16 15:05:09 MGW MQD 0 LOG main Creating MQSeries messaging link: link : MQLINK link type : Base Java interface queue manager : my.queue.manager channel : channel1 host : my.machine port : 1414 user : ccdt url : ssl cipherSuite : connections : 1 inbound logQ : logq1 outbound logQ : logq2 >>2007-01-16 15:05:09 MGW Engine 0 4 main Link MQLINK has been added. >>2007-01-16 15:05:09 MGW Engine 0 7 main Queue DESTQ@MQLINK has been registered; provider queue: MGWUSER.MYQUEUE. >>2007-01-16 15:05:09 MGW Engine 0 9 main Propagation Schedule JOB_AQ2MQ (MGWUSER.MGW_BASIC_SRC --> DESTQ@MQLINK) has been added. >>2007-01-16 15:05:09 MGW AQN 0 LOG main Creating AQ messaging link: link : oracleMgwAq link type : native database : INST1 user : MGWAGENT connection type : JDBC OCI connections : 1 inbound logQ : SYS.MGW_RECV_LOG outbound logQ : SYS.MGW_SEND_LOG >>2007-01-16 15:05:10 MGW Engine 0 19 main MGW propagation job JOB_AQ2MQ has been activated. >>2007-01-16 15:05:10 MGW Engine 0 14 main MGW propagation job JOB_AQ2MQ (MGWUSER.MGW_BASIC_SRC --> DESTQ@MQLINK) has been added. >>2007-01-16 15:05:11 MGW Engine 0 2 main Agent is up and running.
Oracle Messaging Gatewayのログ・ファイルにおける例外メッセージの解釈
メッセージ・ゲートウェイのログ・ファイルに記録された例外メッセージには、ログ・ファイル内で[Linked-exception]
と特定された1つ以上のリンクされた例外が含まれる場合があります。これが問題の原因を特定するための最も便利な方法となります。たとえば、リンクされた例外には、Oracleエラー・メッセージ、PL/SQLスタック・トレースまたはその両方を含むjava.sql.SQLException
があります。
次の例は、無効な値(bad_service_name
)がDBMS_MGWADM
.CREATE_AGENT
またはDBMS_MGWADM
.ALTER_AGENT
のdatabase
パラメータに指定された場合の、メッセージ・ゲートウェイのログ・ファイルからのエントリを示したものです。この場合、メッセージ・ゲートウェイ・エージェントではデータベース接続を確立できません。
例C-37 例外メッセージ・サンプル
>>2003-07-22 15:27:26 MGW AdminMgr 0 LOG main Connecting to database using connect string = jdbc:oracle:oci8:@BAD_SERVICE_NAME >>2003-07-22 15:27:29 MGW Engine 0 EXCEPTION main oracle.mgw.admin.MgwAdminException: [241] Failed to connect to database. SQL error: 12154, connect string: jdbc:oracle:oci8:@BAD_SERVICE_NAME [ …Java stack trace here…] [Linked-exception] java.sql.SQLException: ORA-12154: TNS:could not resolve the connect identifier specified [ …Java stack trace here…] >>2003-07-22 15:27:29 MGW Engine 0 25 main Agent is shutting down.
Oracle Messaging Gatewayのエージェント・ステータスの監視
この項の内容は次のとおりです。
MGW_GATEWAYビュー
MGW_GATEWAY
ビューでは、メッセージ・ゲートウェイ・エージェントの進捗を監視します。エージェントの監視に使用できるフィールドは、次のとおりです。
-
AGENT_NAME
-
AGENT_INSTANCE
-
AGENT_PING
-
AGENT_STATUS
-
LAST_ERROR_MSG
-
SERVICE
AGENT_STATUS
フィールドには、エージェントのステータスが表示されます。この列に有効な値は、次のとおりです。
- NOT_STARTED
-
エージェントが実行されず、実行されるスケジュールもないことを示します。
- START_SCHEDULED
-
エージェント・ジョブがジョブ・スケジューラによって実行されるのを待機中であることを示します。
- STARTING
-
エージェントが起動プロセス中であることを示します。
- INITIALIZING
-
エージェントが起動済で設定データを読込み中であることを示します。
- RUNNING
-
エージェントで、使用可能メッセージの伝播または動的な設定変更のプロセスの準備が完了していることを示します。
- SHUTTING_DOWN
-
エージェントが停止プロセス中であることを示します。
- BROKEN
-
エージェントのプロセスの起動時に、メッセージ・ゲートウェイが他のエージェントが実行中であることを検出したことを示します。通常の使用状態でこのような状況が発生することはありません。
AGENT_PING
フィールドを問い合せると、メッセージ・ゲートウェイ・エージェントがpingされます。この値は、REACHABLE
またはUNREACHABLE
のいずれかになります。ステータスがRUNNING
のエージェントは、常にREACHABLE
である必要があります。
LAST_ERROR_MSG
、LAST_ERROR_DATE
およびLAST_ERROR_TIME
の列には、メッセージ・ゲートウェイ・エージェントの起動時または実行時にエラーが発生した場合に有効な情報が表示されます。AGENT_INSTANCE
は、メッセージ・ゲートウェイのインスタンスが起動されたOracle Databaseのインスタンスを示します。
関連項目:
MGW_GATEWAY
ビューの詳細は、『Oracle Database PL/SQLパッケージ・プロシージャおよびタイプ・リファレンス』のDBMS_MGWADMに関する項を参照してください。
Oracle Messaging Gatewayのリカバリ不能なエラー・メッセージ
MGW_GATEWAY
ビューのAGENT_STATUS
フィールドにあるNOT_STARTED
のステータスは、メッセージ・ゲートウェイ・エージェントが実行中でないことを示します。AGENT_STATUS
がNOT_STARTED
で、LAST_ERROR_MSG
フィールドがNULLでない場合は、メッセージ・ゲートウェイ・エージェントが起動中または実行中にリカバリ不能なエラーが発生したことを示します。メッセージ・ゲートウェイのログ・ファイルが生成済であり、なんらかのエラーが表示されていないかどうかを確認します。ログ・ファイルが存在しない場合、メッセージ・ゲートウェイ・エージェントのプロセスは起動されなかった可能性があります。
この項では、MGW_GATEWAY
ビューのLAST_ERROR_MSG
フィールドに表示されるエラー・メッセージの原因と解決方法を説明します。特に他で記述がないかぎり、メッセージ・ゲートウェイ・エージェントでは、これらのエラーが発生した場合に、自動的に再起動することはありません。
ORA-01089: 即時シャットダウン処理中 - 操作はできません。
エージェントを実行中のインスタンスで、実行中のOracleデータベース・インスタンスを停止するSHUTDOWN IMMEDIATE
コマンドが使用されたため、メッセージ・ゲートウェイ・エージェントは停止されました。エージェントは、実行が設定されている次の使用可能データベース・インスタンスで自動的に再起動されます。
ORA-06520: PL/SQL: 外部ライブラリのロード中にエラーが発生しました。
共有ライブラリがロードされていないため、メッセージ・ゲートウェイ・エージェントのプロセスを起動できませんでした。Java共有ライブラリがライブラリ・パスにない可能性があります。listener.ora
のライブラリ・パスが正しく設定されていることを確認してください。
ORA-28575: 外部プロシージャ・エージェントへのRPC接続をオープンできません。
メッセージ・ゲートウェイ・エージェントが起動されませんでした。自動的に再起動されます。
次の原因が考えられます。
-
リスナーが実行されていません。
listener.ora
を変更した場合は、リスナーを停止してから再起動して変更を有効にする必要があります。 -
tnsnames.ora
、listener.ora
またはその両方の値が正しくありません。特に、
tnsnames.ora
には、MGW_AGENT
というネット・サービス名エントリが必要です。このエントリは、Windowsのメッセージ・ゲートウェイには必要ありません。tnsnames.ora
のMGW_AGENT
ネット・サービス名のCONNECT_DATA
に指定されているSID値は、listener.ora
のSID_DESC
エントリのSID_NAME
値と一致している必要があります。MGW_AGENT
ネット・サービス名がプロセス間通信(IPC)接続用に設定されている場合、tnsnames.ora
とlistener.ora
のADDRESS
のKEY
値が一致している必要があります。sqlnet.ora
のnames.default_domain
パラメータを使用してデフォルト・ドメインを設定した場合は、そのドメインをtnsnames.ora
のネット・サービス名MGW_AGENT
に追加する必要があります。
ORA-28576: 外部プロシージャ・エージェントへのRPC接続が失われました。
メッセージ・ゲートウェイ・エージェントのプロセスが強制終了しました。外部エンティティによってプロセスが終了したか、または内部エラーによって障害が発生した可能性があります。エージェントは自動的に再起動されます。メッセージ・ゲートウェイのログ・ファイルを確認し、詳細情報がないかを調べてください。問題が解決しない場合は、Oracleサポート・サービスに連絡してください。
ORA-32830: 結果コード-2がMessaging Gatewayエージェントによって戻されました。
メッセージ・ゲートウェイ・エージェントが初期化ファイル(通常、mgw
.ora
)の読込みを試行した場合、エラーが発生します。ファイルが読込み可能であることを確認します。
ORA-32830: 結果コード-3がMessaging Gatewayエージェントによって戻されました。
メッセージ・ゲートウェイのログ・ファイル作成時にエラーが発生しました。ログ・ディレクトリが書込み可能であることを確認してください。デフォルトの位置は、ORACLE_HOME
/mgw/log
です。
ORA-32830: 結果コード-8がMessaging Gatewayエージェントによって戻されました。
Java Virtual Machine(JVM)起動時に、エラーが発生しました。次のことを確認してください。
-
正しいJavaバージョンを使用していること
-
オペレーティング・システムのバージョンおよびパッチ・レベルがJDKのバージョンに適合していること
-
JVMヒープ・サイズに適切な値が設定されていること
ヒープ・サイズが
DBMS_MGWADM.ALTER_AGENT
のmax_memory
パラメータで指定されていること -
Windowsプラットフォームの場合は、
mgw.ora
に設定されているMGW_PRE_PATH
に適切なJVMライブラリ(jvm.dll
)へのパスが含まれていること
ORA-32830: 結果コード-12がMessaging Gatewayエージェントによって戻されました。
メッセージ・ゲートウェイのログ・ファイル作成時にエラーが発生しました。ファイルのI/O問題を発生させる可能性のある、ディスクの空き領域またはその他の問題がないかどうか確認します。
ORA-32830: 結果コード-17がMessaging Gatewayエージェントによって戻されました。
JVMは正常に作成されましたが、メッセージ・ゲートウェイJavaエージェント・プログラムのコール試行中にエラーが発生しました。mgw.ora
で設定されているCLASSPATHが適切であることを確認します。
ORA-32830: 結果コード-19がMessaging Gatewayエージェントによって戻されました。
メッセージ・ゲートウェイ・エージェントは特定の初期化ファイルを使用するように構成されていますが、そのファイルは存在しません。管理者によって指定されているファイルのフルパス名は、MGW_GATEWAY
ビューのINITFILE
フィールドに表示されます。その初期化ファイルを作成するか、DBMS_MGWADM
.ALTER_AGENT
を使用して、INITFILE
を他のファイルに設定するか、またはデフォルトの初期化ファイルを使用するようにNULL
を設定します。
ORA-32830: 結果コード-100がMessaging Gatewayエージェントによって戻されました。
メッセージ・ゲートウェイ・エージェントJVMで、ログ・ファイルに書き込む前に、起動時にランタイム例外またはエラーが発生しました。
ORA-32830: 結果コード-101がMessaging Gatewayエージェントによって戻されました。
回復不能なエラーにより、メッセージ・ゲートウェイ・エージェントが停止されました。メッセージ・ゲートウェイのログ・ファイルで詳細を確認してください。mgw.ora
で指定されている値が適切であることを確認します。値が不適切な場合、メッセージ・ゲートウェイ・エージェントは異常なエラー状態のため終了することがあります。
ORA-32830: 結果コード-102がMessaging Gatewayエージェントによって戻されました。
ファイルORACLE_HOME
/mgw/jlib/mgw.jar
のバージョンとメッセージ・ゲートウェイのPL/SQLパッケージのバージョンが一致しないため、メッセージ・ゲートウェイ・エージェントが停止されました。すべてのメッセージ・ゲートウェイのコンポーネントのリリース番号が同じであることを確認してください。
ORA-32830: 結果コード-103がMessaging Gatewayエージェントによって戻されました。
メッセージ・ゲートウェイ・エージェントを実行中のデータベース・インスタンスが停止されたため、エージェントが停止されました。エージェントは、別のインスタンス上(そのように設定した場合)、または停止したインスタンスを再起動したとき、自動的に再起動されます。
ORA-32830: 結果コード-104がMessaging Gatewayエージェントによって戻されました。
前のエラーを参照してください。
ORA-32830: 結果コード-105がMessaging Gatewayエージェントによって戻されました。
メッセージ・ゲートウェイ・エージェントが、実行不可のときに実行中であることが検出されました。これは起りえないことです。このようなことが発生すると、AGENT_STATUS
はBROKEN
となりエージェントは自動的に停止します。このエラーが発生する場合は、次のようにします。
-
実行中のメッセージ・ゲートウェイ・エージェントのプロセスをすべて終了します。プロセス名は、通常
extprocmgwextproc
です。 -
DBMS_MGWADM.CLEANUP_GATEWAY(DBMS_MGWADM.CLEAN_STARTUP_STATE)
を実行します。 -
DBMS_MGWADM.STARTUP
を使用してメッセージ・ゲートウェイ・エージェントを起動します。
ORA-32830: 結果コード-106がMessaging Gatewayエージェントによって戻されました。
前のエラーを参照してください。
関連項目:
『Oracle Database PL/SQLパッケージ・プロシージャおよびタイプ・リファレンス』のDBMS_MGWADMに関する項
その他のOracle Messaging Gatewayのエラー状態
この項では、長時間にわたりMGW_GATEWAY
ビューにSTART_SCHEDULED
で残留しているAGENT_STATUS
の原因を説明します。
データベース・サービスが起動していない
メッセージ・ゲートウェイでは、Oracle Schedulerジョブを使用して、メッセージ・ゲートウェイ・エージェントを起動します。Oracle Schedulerを使用して、どのジョブでデータベース・サービスを実行するか(サービス・アフィニティ)を指定できます。管理者はメッセージ・ゲートウェイで、メッセージ・ゲートウェイ・エージェントを、そのエージェントに関連付けられているSchedulerジョブ・クラスを構成するときに使用されるデータベース・サービスで構成できます。
データベースを停止すると、そのデータベースへのサービスがすべて停止されます。データベースの起動時、それらのサービスを手動で再起動する必要がある場合があります。Schedulerジョブがサービスに関連付けられている場合、そのサービスが開始されるまでジョブは実行されません。メッセージ・ゲートウェイ・エージェントのAGENT_STATUS
が、長時間にわたりSTART_SCHEDULED
のままである場合、データベース・サービスが無効化されているか、またはそのサービスに関連付けられているデータベース・インスタンスがいずれも実行中でない可能性があります。MGW_GATEWAY
ビュー、Oracle Schedulerビューおよびサービス・ビューを使用して、エージェントの構成方法、Schedulerジョブとデータベース・サービスの現在の状態を判断できます。
ノート:
Messaging Gatewayで使用されるOracle Schedulerオブジェクトの詳細は、「Oracle Messaging Gatewayのエージェントのスケジューラのジョブ」を参照してください。
不足しているジョブ・キュー・プロセス
メッセージ・ゲートウェイでは、Oracle Schedulerを使用して、メッセージ・ゲートウェイの外部プロセスを起動します。AGENT_STATUS
がSTART_SCHEDULED
の場合、メッセージ・ゲートウェイ・エージェントのSchedulerジョブはスケジューラによって実行されるのを待機します。メッセージ・ゲートウェイ・ジョブは、使用可能なジョブ・プロセスが現れるまで実行されません。メッセージ・ゲートウェイでは、Schedulerジョブ・プロセスはメッセージ・ゲートウェイ・エージェント・セッションの存続期間中、保持されます。複数のメッセージ・ゲートウェイ・エージェントが起動された場合、エージェントはそれぞれ独自のSchedulerジョブを使用し、独自のジョブ・プロセスを必要とします。
JOB_QUEUE_PROCESSES
データベース初期化パラメータの値がゼロの場合、Oracle Schedulerジョブは実行されません。値がゼロ以外の場合、事実上、この値は同時に実行できるSchedulerジョブおよびジョブ・キューのジョブの最大数です。
メッセージ・ゲートウェイのステータスが長時間START_SCHEDULED
のままである場合、JOB_QUEUE_PROCESSES
がゼロまたは低すぎる値ですべてのジョブ・スレーブがビジーの状態でデータベースが起動された可能性があります。値にゼロ以外が設定され、十分な数のジョブ・キュー・プロセスがあり、各メッセージ・ゲートウェイ・エージェントでプロセスが1つずつ使用可能な状態でデータベース・インスタンスが起動されていることを確認してください。
破損または無効化されたSchedulerジョブ
メッセージ・ゲートウェイ・エージェントに関連付けられたOracle Schedulerジョブがなんらかの理由により無効化または破損した場合、メッセージ・ゲートウェイ・エージェントのステータスはSTART_SCHEDULED
のままになります。そのような場合であるかを判定するには、DBA_SCHEDULER_JOBS
ビューを使用して、エージェントのSchedulerジョブのSTATE
フィールドを確認します。通常、Schedulerジョブのステータスは、メッセージ・ゲートウェイ・エージェントのSchedulerジョブが実行されるのを待機している場合、SCHEDULED
またはメッセージ・ゲートウェイ・エージェントが実行中の場合、RUNNING
です。メッセージ・ゲートウェイ・エージェントのステータスがNOT_STARTED
の場合、エージェントのSchedulerジョブは存在しません。
DBA_SCHEDULER_JOB_RUN_DETAILS
などのその他のSchedulerビューで、メッセージ・ゲートウェイのSchedulerジョブの追加情報を確認してください。また、問題を示すエラー・メッセージがないかどうか、MGW_GATEWAY
ビューおよびメッセージ・ゲートウェイのログ・ファイルも確認してください。
ノート:
Messaging Gatewayで使用されるOracle Schedulerオブジェクトの詳細は、「Oracle Messaging Gatewayのエージェントのスケジューラのジョブ」を参照してください。
Oracle Real Application Clusters(Oracle RAC)環境
メッセージ・ゲートウェイをOracle RAC環境で使用し、データベース・サービスでエージェントが構成されているが、サービスが使用可能なデータベース・インスタンスが実行されていない場合、実行中のデータベース・インスタンス上でサービスが起動されるまで、メッセージ・ゲートウェイAGENT_STATUS
はSTART_SCHEDULED
のままです。
Oracle Messaging Gatewayの伝播の監視
メッセージ・ゲートウェイ伝播は、MGW_JOBS
ビューおよびメッセージ・ゲートウェイのログ・ファイルを使用して監視できます。ビューでは、伝播済メッセージに関する情報および伝播試行中に発生したエラーに関する情報が提供されます。ログ・ファイルを使用して、エラーの原因を判定できます。
MGW_JOBS
ビューには、構成情報の表示の他に、メッセージ伝播の監視に使用できる動的情報も表示されます。適用可能フィールドは、STATUS
、ENABLED
、PROPAGATED_MSGS
、EXCEPTIONQ_MSGS
、FAILURES
、LAST_ERROR_MSG
、LAST_ERROR_DATE
およびLAST_ERROR_TIME
です。
STATUS
フィールドには、ジョブの現在のステータスが表示されます。READY
は、伝播のジョブが準備完了であることを表します(ただし、ENABLED
フィールドがTRUE
の場合のみ)。RETRY
は、伝播障害が発生したが、伝播が再試行されることを表します。FAILED
は、リカバリ不可能なエラーが発生または伝播障害に達したため、エージェントがジョブの伝播を停止したことを表します。DELETE_PENDING
は、DBMS_MGWADM
.REMOVE_JOB
がコールされたが、このジョブに関連する特定のクリーン・アップ・タスクが未完了で、ジョブの削除が保留中であることを表します。SUBSCRIBER_DELETE_PENDING
は、DBMS_MGWADM
.REMOVE_SUBSCRIBER
が古い形式のジョブでコールされたが、このジョブに関連する特定のクリーン・アップ・タスクが未完了で、ジョブの削除が保留中であることを表します。
ENABLED
フィールドには、伝播ジョブが現在有効化されているかどうかが表示されます。TRUE
は、ジョブが有効であることを、FALSE
はジョブが無効であることを表します。ジョブが有効化されていなければ、いずれの伝播も発生しません。
MGW_JOBS
ビューのPROPAGATED_MSGS
フィールドには、正常に伝播されたメッセージの数が表示されます。メッセージ・ゲートウェイ・エージェントが起動すると、このフィールドはゼロにリセットされます。
メッセージ・ゲートウェイのジョブに例外キューが構成されている場合、メッセージ変換障害のためメッセージ・ゲートウェイ・エージェントで最初の伝播障害が発生した時点で、メッセージ・ゲートウェイ・エージェントによってメッセージがその例外キューに移されます。メッセージ変換障害は、メッセージ・ゲートウェイのログ・ファイルでoracle.mgw.common.MessageException
によって示されます。EXCEPTIONQ_MSGS
フィールドには、例外キューに移されたメッセージの数が表示されます。メッセージ・ゲートウェイ・エージェントが起動すると、このフィールドはゼロにリセットされます。
伝播ジョブに対してメッセージ伝播中にエラーが発生すると、FAILURES
フィールドの値が増分されます。このフィールドは、最後にメッセージが正常に伝播されてからの障害回数を示します。障害が発生するたびに、LAST_ERROR_MSG
、LAST_ERROR_DATE
およびLAST_ERROR_TIME
によって、エラー・メッセージとその発生時刻が表示されます。障害の発生回数が16件になると、メッセージ・ゲートウェイはこの伝播ジョブに対する伝播試行を停止します。伝播試行を再開するには、伝播ジョブに対してDBMS_MGWADM
.RESET_JOB
をコールする必要があります。
エラーが発生した場合、詳細はメッセージ・ゲートウェイのログ・ファイルを調べてください。
関連項目:
『Oracle Database PL/SQLパッケージ・プロシージャおよびタイプ・リファレンス』のDBMS_MGWADMに関する項
Oracle Messaging Gatewayのエージェントのエラー・メッセージ
この項では、MGW_JOBS
ビューのLAST_ERROR_MSG
列に表示され、メッセージ・ゲートウェイ・エージェントのログ・ファイルに記録される、特に頻繁に発生する一部のエラーを示します。また、特別なアクションを必要とするエラーも示されています。エラーの発生に気付いたら、ログ・ファイルでリンクされている例外を参照して、問題の原因を判断します。
次の2つの主なエラー・タイプが、メッセージ・ゲートウェイ・エージェントのログ・ファイルに記録されています。
-
oracle.mgw.common.MessageException
このエラー・タイプは、メッセージ変換障害が発生すると記録されます。メッセージ・ゲートウェイ・エージェントでは、障害の原因となったメッセージを伝播できない可能性があり、この伝播ジョブは最終的に停止されます。
-
oracle.mgw.common.GatewayException
このエラー・タイプは、メッセージ変換以外の障害が発生すると記録されます。原因によっては、問題が自動的に修復されたり、またはユーザー・アクションが必要になる場合があります。
[221] <messaging_system>キューへのアクセスに失敗しました: <queue>
Oracle Database Advanced QueuingキューまたはOracle以外のキューにアクセスしたとき、エラーが発生しました。ログ・ファイルにあるリンクされた例外エラー・コードとメッセージを調べてください。
[241] データベースへの接続に失敗しましたSQLエラー: <error>、接続文字列: <connect_string>
これは、DBMS_MGWADM
.CREATE_AGENT
またはDBMS_MGWADM
.ALTER_AGENT
で指定されたMGW接続情報が不適切であった可能性があります。メッセージ・ゲートウェイ・エージェントのユーザーまたはパスワードが不適切か、またはデータベース指定子(データベース・パラメータ)のいずれかが不適切です。エージェント、JDBC OCIまたはJDBC Thinによって使用される接続タイプに関して、接続情報が適切であることを確認します。
database
パラメータがNULL
の場合は、メッセージ・ゲートウェイのログ・ファイルで次のOracleリンク・エラーを調べてください。
ORA-01034: ORACLE not available ORA-27101: shared memory realm does not exist
これらの2つのエラーはどちらも、メッセージ・ゲートウェイ・エージェントがローカルIPC接続を使用してデータベースへの接続を試みましたが、ORACLE_SID
値が不適切であることを示しています。
データベース・パラメータがNULL
に設定されている場合、ローカル接続が使用されます。ローカルで接続する必要がある場合、メッセージ・ゲートウェイ・エージェントのプロセスに正しいORACLE_SID
値を設定する必要があります。この値を設定するには、MGW初期化ファイル(通常、mgw
.ora
)に次の行を追加します。
set ORACLE_SID = sid_value
データベースがNULL
でない場合、MGW初期化ファイルでORACLE_SID
を設定する必要はありません。
MGW初期化ファイルでORACLE_SID
を設定しても機能しない場合は、データベース・パラメータをNULL
以外の値に設定する必要があります。
JDBC Thin接続が使用されている場合は、データベース・パラメータをNULL
以外の値に設定する必要があります。JDBC Thin接続が使用されていて、データベース・パラメータがTNSNamesの別名である場合、oracle
.net
.tns_names
JavaプロパティがMGW初期化ファイルで設定されていることを確認します。このプロパティを設定するには、MGW初期化ファイルに次の行を追加します。
setJavaProp oracle.net.tns_admin=<directory containing tnsnames.ora>
ノート:
詳細は、「oracle.net.tns_admin」を参照してください。
[415] ジョブ<job_name>のソース・キューからのメッセージの欠落
次の原因が考えられます。
-
エージェントがメッセージ・ゲートウェイ・エージェント以外によってデキューされた永続メッセージの一部を処理しました。
-
伝播ソース・キューがパージまたは再作成されました。
-
メッセージがOracle Database Advanced Queuingの例外キューに移されました。
このエラーが発生した場合は、次のように、DBMS_MGWADM
パッケージのプロシージャCLEANUP_GATEWAY
をコールしてください。
DBMS_MGWADM.CLEANUP_GATEWAY (
action => DBMS_MGWADM.RESET_SUB_MISSING_MESSAGE,
sarg => <job_name>);
このコールは、伝播ジョブでメッセージが欠落する問題が発生した場合で、エージェントが実行中の場合のみ有効になります。エージェントは、欠落メッセージを非永続メッセージとみなし、伝播ジョブ処理を続行します。
関連項目:
メッセージ・ゲートウェイ例外キューの詳細は、「伝播ジョブの概要」を参照してください。
[416] ジョブ<job_name>の受信ログ・キューのログ・レコードの欠落
次の原因が考えられます。
-
ログ記録が、メッセージ・ゲートウェイ・エージェント以外によってログ・キューからデキューされました。
-
ログ・キューがパージまたは再作成されました。
このエラーが発生した場合は、次のように、DBMS_MGWADM
パッケージのプロシージャCLEANUP_GATEWAY
をコールしてください。
DBMS_MGWADM.CLEANUP_GATEWAY ( action => DBMS_MGWADM.RESET_SUB_MISSING_LOG_REC, sarg => <job_name>);
このコールは、伝播ジョブでログ記録が欠落する問題が発生した場合で、エージェントが実行中の場合のみ有効になります。
ノート:
欠落メッセージが宛先キューに伝播済の場合、プロシージャDBMS_MGWADM.CLEANUP_GATEWAY
をコールするとメッセージが重複する可能性があります。ソースおよび宛先キューの両方にあるメッセージをチェックする必要があります。このようなメッセージがある場合は、ソースまたは宛先キューのいずれかからメッセージを削除してから、このプロシージャをコールする必要があります。
[417] ジョブ<job_name>の送信ログ・キューのログ・レコードの欠落
前のエラーを参照してください。
[421] 警告: ジョブ<job_name>のリカバリのための接続を取得できません
これは、他の伝播ジョブによって接続がすべて使用中であるため、メッセージ・ゲートウェイ・エージェントが伝播ジョブを回復するための接続を取得できなかったことを示す警告メッセージです。エージェントは接続を取得できるまで試行します。
WebSphere MQのリンクに対してこのメッセージが何回も繰り返される場合は、伝播ジョブに関連付けられたメッセージ・ゲートウェイのリンクが使用する最大接続数を増やしてください。
関連項目:
[434] キュー<queue>、プロバイダ・キュー<queue>へのアクセスに失敗しました
このメッセージは、メッセージ・システムの固有キューにアクセスできないことを示します。キューがDBMS_MGWADM.REGISTER_FOREIGN_QUEUE
によって登録されている、またはOracle Database Advanced Queuingキューである可能性があります。詳細は、リンクされた例外を参照してください。
次の原因が考えられます。
-
外部キーの登録が正しくない、またはメッセージ・ゲートウェイのリンク設定が正しくありません。
構成情報を確認してください。可能な場合は、同じ構成情報を使用してOracle以外のメッセージ・システムのサンプル・アプリケーションを実行してください。
-
Oracle以外のメッセージ・システムにアクセスできません。
Oracle以外のメッセージ・システムが実行中で、メッセージ・ゲートウェイのリンクで提供されている情報を使用してアクセス可能であることを確認してください。
-
Oracle Database Advanced Queuingキューが存在しません。メッセージ・ゲートウェイの伝播ジョブの作成後、キューが削除された可能性があります。
Oracle Database Advanced Queuingキューが存在することを確認してください。
[436] LOW MEMORY WARNING: 合計メモリー = < >、free_mem = < >
メッセージ・ゲートウェイ・エージェントJVMの実行用メモリーが不足しています。Javaガベージ・コレクションが起動されますが、JVMヒープ・サイズが小さすぎると表示される可能性があります。DBMS_MGWADM.ALTER_AGENT
のmax_memory
パラメータを使用して、JVMヒープ・サイズを増やしてください。メッセージ・ゲートウェイ・エージェントを実行中の場合は、再起動して変更を有効にする必要があります。
[703] 変換<transformation_id>の情報の取得に失敗しました
メッセージ・ゲートウェイ・エージェントが、変換に関する必要な情報をすべて取得できませんでした。DBMS_MGWADM.CREATE_JOB
の変換パラメータでは、変換ファンクションではなく登録済の変換の名前を指定する必要があります。
次の原因が考えられます。
-
変換が存在しません。変換が作成済であることを確認します。これは、ユーザーSYSとして実行される次の問合せで確認できます。
SELECT TRANSFORMATION_ID, OWNER FROM DBA_TRANSFORMATIONS;
-
メッセージ・ゲートウェイに登録された変換が間違っています。登録済の変換が間違っていないことを確認します。
-
メッセージ・ゲートウェイ・エージェント・ユーザーに、例外で示された変換の
from_type
またはto_type
に使用されるオブジェクト型に対するEXECUTE
権限がありません。MGW_AGENT_ROLE
にEXECUTE
権限を付与し、その後エージェントのユーザーにMGW_AGENT_ROLE
を付与するだけでは不十分です。オブジェクト型に対するEXECUTE
権限をエージェントのユーザーに直接付与するか、またはPUBLIC
に付与する必要があります。次の例は、
from_type
でのそのような場合を示しています。また、エラーの厳密な原因を判断するために使用されているリンクされた例外も示されています。オブジェクト型に対するEXECUTE権限がない場合
Errors occurred during processing of job JOB_AQ2MQ_2 oracle.mgw.common.GatewayException: [703] Failed to retrieve information for transformation mgwuser.SAMPLEADT_TO_MGW_BASIC_MSG […Java stack trace here…] [Linked-exception] java.sql.SQLException: "from_type" is null […Java stack trace here…]
[720] AQペイロード型<type>はサポートされていません。キュー: <queue>
メッセージ・ゲートウェイの伝播ジョブによって使用されるOracle Database Advanced Queuingキューのペイロード型がメッセージ・ゲートウェイによって直接サポートされていません。JMS以外の伝播の場合、メッセージ・ゲートウェイではペイロード型のRAW
、SYS.MGW_BASIC_MSG_T
およびSYS.MGW_TIBRV_MSG_T
を直接サポートしています。
次の処理が考えられます。
-
メッセージ・ゲートウェイの伝播ジョブをキュー・ペイロード型からサポートされている型へ変換するように構成します。
-
メッセージ・ゲートウェイの伝播ジョブを削除し、サポートされているペイロード型のOracle Database Advanced Queuingキューを使用する新規ジョブを作成します。
Java Message Service (JMS)伝播の場合は、メッセージ・ゲートウェイの伝播ジョブを削除し、Oracle Java Message Service (Oracle JMS)によってそのOracle Database Advanced Queuingペイロード型がサポートされている新規ジョブを作成する必要があります。JMS伝播に対する変換はサポートされていません。
[721] 変換タイプ<type>はサポートされていません。キュー: <queue_name>、変換: <transformation>
メッセージ・ゲートウェイの伝播ジョブが、標準型の1つではないオブジェクト型を使用する変換によって構成されています。
発信ジョブの場合、変換from_type
はOracle Database Advanced Queuingペイロード型、変換to_type
はメッセージ・ゲートウェイ標準型である必要があります。着信ジョブの場合、変換from_type
はメッセージ・ゲートウェイ標準型、変換to_type
はOracle Database Advanced Queuingペイロード型である必要があります。
[722] メッセージの変換に失敗しました。キュー: <queue_name>、変換: <transformation>
変換実行中にエラーが発生しました。通常、ORA-25229は、変換ファンクションによってPL/SQL例外が発生したとき、または変換を使用しようとしたときにその他のOracleエラーが発生した場合に、Oracle Database Advanced Queuingによって表示されます。
次の原因が考えられます。
-
メッセージ・ゲートウェイ・エージェントのユーザーに変換ファンクションに対する
EXECUTE
権限がありません。これは、次の例に示されています。MGW_AGENT_ROLE
にEXECUTE
権限を付与し、その後メッセージ・ゲートウェイ・エージェントのユーザーにMGW_AGENT_ROLE
を付与するだけでは不十分です。変換ファンクションに対するEXECUTE
権限を、メッセージ・ゲートウェイ・エージェントのユーザーに直接付与するか、またはPUBLIC
に付与する必要があります。変換ファンクションに対するEXECUTE権限がない場合
Errors occurred during processing of job JOB_MQ2AQ_2 oracle.mgw.common.GatewayException: [722] Message transformation failed queue: MGWUSER.DESTQ_SIMPLEADT, transform: MGWUSER.MGW_BASIC_MSG_TO_SIMPLEADT […Java stack trace here…] [Linked-exception] oracle.mgw.common.MessageException: [722] Message transformation failed; queue: MGWUSER.DESTQ_SIMPLEADT, transform: MGWUSER.MGW_BASIC_MSG_TO_SIMPLEADT […Java stack trace here…] [Linked-exception] java.sql.SQLException: ORA-25229: error on transformation of message msgid: 9749DB80C85B0BD4E03408002086745E ORA-00604: error occurred at recursive SQL level 1 ORA-00904: invalid column name […Java stack trace here…]
-
登録済の変換が存在しても、変換ファンクションが存在しません。変換ファンクションが存在しない場合は、再作成する必要があります。
-
メッセージ・ゲートウェイ・エージェントのユーザーには、例外で示されたキューのペイロード・オブジェクト型に対する
EXECUTE
権限がありません。MGW_AGENT_ROLE
にEXECUTE
権限を付与し、その後メッセージ・ゲートウェイ・エージェントのユーザーにMGW_AGENT_ROLE
を付与するだけでは不十分です。オブジェクト型に対するEXECUTE
権限を、メッセージ・ゲートウェイ・エージェントのユーザーに直接付与するか、またはPUBLIC
に付与する必要があります。 -
変換ファンクションでエラーが発生しました。変換ファンクションが受信するすべてのメッセージを処理できること確認してください。
[724] メッセージの変換がサポートされていません。宛先AQペイロード型: <type>、送信元タイプ: <type>
メッセージ・ゲートウェイの伝播ジョブは、Oracle以外のメッセージ・システム・リンクによって生成される標準メッセージ型がOracle Database Advanced Queuingキュー・ペイロード型と互換性がない着信伝播用に構成されています。SYS.MGW_BASIC_MSG_T
ペイロード型によるTIB/Rendezvousメッセージ・システムからOracle Database Advanced Queuingキューへの伝播、またはWebSphere MQからSYS.MGW_TIBRV_MSG_T
ペイロード型を使用したOracle Database Advanced Queuingへの伝播です。
次の処理が考えられます。
-
Oracle以外のメッセージ・リンクによって生成される標準メッセージ型をOracle Database Advanced Queuingペイロード型にマップする変換によって、メッセージ・ゲートウェイの伝播ジョブを構成します。
-
メッセージ・ゲートウェイの伝播ジョブを削除し、Oracle Database Advanced Queuingキュー・ペイロード型が、Oracle以外のリンクによって生成される標準メッセージ型と一致する新規ジョブを作成します。
[725] テキスト・メッセージがRAWペイロードをサポートしていません。
メッセージ・ゲートウェイの伝播ジョブが、RAW
ペイロード型のOracle Database Advanced Queuing宛先への着信伝播に対して構成されています。Oracle以外のソース・キューから受信したテキスト・メッセージのメッセージ変換に失敗しました。
テキスト・データに対するサポートが必要な場合は、メッセージ・ゲートウェイの伝播ジョブを削除し、ペイロード型がテキスト・データをサポートしているOracle Database Advanced Queuing宛先に対する新規ジョブを作成します。
[726] メッセージ・サイズ<size>はRAWペイロードには大きすぎます。最大サイズは<size>です
メッセージ・ゲートウェイの伝播ジョブが、RAW
ペイロード型のOracle Database Advanced Queuing宛先への着信伝播に対して構成されています。Oracle以外のソース・キューからの大きなRAW
値を含むメッセージを受信時に、メッセージ変換障害が発生しました。
大容量データに対するサポートが必要な場合は、メッセージ・ゲートウェイの伝播ジョブを削除し、ペイロード型が大容量データ(通常、BLOB属性のオブジェクト型フォームのデータ)をサポートしているOracle Database Advanced Queuing宛先に対する新規ジョブを作成します。
[728] メッセージに含まれる(BLOB)フィールドが多すぎます。
BLOB
型に格納される必要のあるフィールドが、ソース・メッセージに多すぎます。SYS.MGW_TIBRV_MSG_T
は、3つのBLOB
フィールドに制限されています。小さなフィールドに分割するか、または少数の大きなフィールドに結合して、メッセージ内の大きなフィールドの数を減らします。
[729] メッセージに含まれる(CLOB)フィールドが多すぎます。
ソース・メッセージに、CLOB
に格納される必要のある大きなテキスト値を含むフィールドが多すぎます。SYS.MGW_TIBRV_MSG_T
は、3つのCLOB
フィールドに制限されています。小さなフィールドに分割するか、または少数の大きなフィールドに結合して、メッセージ内の大きなフィールドの数を減らします。
[805] キュー<queue>へのエンキュー中にMQSeries Messageエラーが発生しました
WebSphere MQキューにメッセージを格納したとき、WebSphere MQによってエラーが戻されました。ログ・ファイルにあるリンクされた例外エラー・コードとメッセージを調べてください。WebSphere MQのドキュメントを参照してください。
Oracle Messaging Gatewayのビュー
MGW_GATEWAY: 構成およびステータスに関する情報
このビューは、メッセージ・ゲートウェイの構成およびステータスに関する情報をリストします。
表C-13 MGW_GATEWAYビューのプロパティ
名前 | 型 | 説明 |
---|---|---|
|
|
メッセージ・ゲートウェイ・エージェントが使用するデータベース接続文字列。 |
|
|
メッセージ・ゲートウェイ・エージェントが現在実行されているデータベース・インスタンス。エージェントが実行されていない場合、 |
|
|
[非推奨] メッセージ・ゲートウェイ・エージェントのプロセスの起動に使用するキューされたジョブのジョブ番号。ジョブ番号は、メッセージ・ゲートウェイの開始時に設定され、停止時にクリアされます。 |
|
|
メッセージ・ゲートウェイ・エージェントの名前。 |
|
|
ゲートウェイ・エージェントのpingステータス。値:
|
|
|
現在実行されているメッセージ・ゲートウェイ・エージェントが起動された時間。エージェントが実行されていない場合、 |
|
|
メッセージ・ゲートウェイ・エージェントのステータス。値:
|
|
|
メッセージ・ゲートウェイ・エージェントがデータベースへの接続に使用するデータベース・ユーザー名 |
|
|
エージェントに関するコメント。 |
|
|
エージェントが使用する接続タイプ。
|
|
|
エージェントが使用するメッセージ・ゲートウェイ初期化ファイルの名前。 |
|
|
メッセージ・ゲートウェイ・エージェントの最終エラーの日付。メッセージ・ゲートウェイが開始されると最後のエラー情報がクリアされます。メッセージ・ゲートウェイ・エージェントが起動に失敗するか、異常な条件のために終了すると、設定されます。 |
|
|
メッセージ・ゲートウェイ・エージェントの最終エラーに関するメッセージ。 |
|
|
メッセージ・ゲートウェイ・エージェントの最終エラーの時間。 |
|
|
[非推奨] Oracleデータベースへのメッセージ・コネクションの最大数。 |
|
|
メッセージ・ゲートウェイ・エージェントにより使用される最大ヒープ・サイズ(MB)。 |
|
|
メッセージ・ゲートウェイ・エージェントにより作成されるメッセージ・スレッドの最大数。 |
|
|
エージェントにより使用されるOracle Schedulerジョブ・クラスに関連付けられたデータベース・サービスの名前。 |
MGW_AGENT_OPTIONS: サプリメンタル・オプションおよびプロパティ
このビューは、メッセージ・ゲートウェイ・エージェントのサプリメンタル・オプションおよびプロパティに関する情報をリストします。
表C-14 MGW_AGENT_OPTIONSビュー
列 | 型 | 説明 |
---|---|---|
|
|
メッセージ・ゲートウェイ・エージェントの名前。 |
|
|
値を暗号化して格納するかどうかを示します。
|
|
|
オプションの名前。 |
|
|
オプションタイプまたは使用方法。オプションを使用してJavaシステム・プロパティを設定する場合、 |
|
|
オプションの値。値が暗号化されたフォームで格納される場合、<< |
MGW_LINKS: メッセージ・システム・リンクの名前および型
このビューは、現在定義されているメッセージ・システム・リンクの名前および型をリストします。
表C-15 MGW_LINKSビューのプロパティ
名前 | 型 | 説明 |
---|---|---|
|
|
このリンクの伝播ジョブを処理するメッセージ・ゲートウェイ・エージェントの名前 |
|
|
リンクに関するユーザー・コメント |
|
|
メッセージ・システム・リンクの名前 |
|
|
メッセージ・システム・リンクのタイプ。値
|
MGW_MQSERIES_LINKS: WebSphere MQメッセージ・システム・リンク
このビューは、WebSphere MQメッセージ・システム・リンクに関する情報をリストします。このビューには、リンク作成時に指定された大部分のメッセージ・システムのプロパティが表示されます。
表C-16 MGW_MQSERIES_LINKSビューのプロパティ
名前 | 型 | 説明 |
---|---|---|
|
|
このリンクの伝播ジョブを処理するメッセージ・ゲートウェイ・エージェントの名前 |
|
|
接続チャネル |
|
|
WebSphere MQホストの名前 |
|
|
インバウンド伝播のログ・キュー |
|
|
メッセージ・インタフェース・タイプ。値:
|
|
|
リンクに関するユーザー・コメント |
|
|
メッセージ・システム・リンクの名前 |
|
|
メッセージ・コネクションの最大数 |
|
|
リンク・オプション |
|
|
発信伝播のログ・キュー |
|
|
ポート番号 |
|
|
WebSphereキュー・マネージャの名前 |
MGW_TIBRV_LINKS: TIB/Rendezvousメッセージ・システム・リンク
このビューは、TIB/Rendezvousメッセージ・システム・リンクに関する情報をリストします。このビューには、リンク作成時に指定された大部分のメッセージ・システムのプロパティが表示されます。
表C-17 MGW_TIBRV_LINKSビューのプロパティ
プロパティ名 | 型 | 説明 |
---|---|---|
|
|
このリンクの伝播ジョブを処理するメッセージ・ゲートウェイ・エージェントの名前 |
|
|
TIB/Rendezvous CM ledgerのファイル名 |
|
|
TIB/Rendezvous CM ledgerのファイル名 |
|
|
RDVトランスポート用のTIB/Rendezvousデーモン・パラメータ |
|
|
リンクに関するユーザー・コメント |
|
|
メッセージ・システム・リンクの名前 |
|
|
RDVトランスポート用のTIB/Rendezvousネットワーク・パラメータ |
|
|
リンク・オプション |
|
|
RDVトランスポート用のTIB/Rendezvousサービス・パラメータ |
MGW_FOREIGN_QUEUES: 外部キュー
このビューは、外部キューに関する情報をリストします。このビューには、キュー登録時に指定された大部分のキューのプロパティが表示されます。
表C-18 MGW_FOREIGN_QUEUESビューのプロパティ
名前 | 型 | 説明 |
---|---|---|
|
|
キュー・ドメイン・タイプ。値:
|
|
|
メッセージ・システム・リンクの名前 |
|
|
登録キューの名前 |
|
|
オプションのキュー・プロパティ |
|
|
メッセージ・プロバイダ(ネイティブ)のキュー名 |
|
|
外部キューに対するユーザー・コメント |
MGW_JOBS: メッセージ・ゲートウェイ伝播ジョブ
このビューは、メッセージ・ゲートウェイ伝播ジョブに関する情報をリストします。このビューには、伝播ジョブの作成時に指定された大部分のジョブのプロパティが、その他のステータスおよび統計情報とともに表示されます。
表C-19 MGW_JOBSビュー
列 | 型 | 説明 |
---|---|---|
|
|
このジョブを処理するメッセージ・ゲートウェイ・エージェントの名前 |
|
|
伝播ジョブに関するコメント |
|
|
メッセージの伝播先の宛先キュー |
|
|
ジョブが有効化されているかどうかを示します。値は次のとおりです。
|
|
|
伝播のロギングの目的で使用される例外キュー |
|
|
オプションタイプまたは使用方法。オプションを使用してJavaシステム・プロパティを設定する場合、 |
|
|
最後にエージェントが起動されてから例外キューに移動されたメッセージの数 |
|
|
伝播ジョブの名前 |
|
|
伝播の最終エラーに関するメッセージ |
|
|
伝播の最終エラーの日付 |
|
|
伝播の最終エラーの時間 |
|
|
このジョブで使用されるメッセージ・ゲートウェイ・リンクの名前 |
|
|
ジョブ・オプション |
|
|
伝播のポーリング間隔(秒) |
|
|
最後にエージェントが起動されてから例外キューに伝播されたメッセージの数 |
|
|
メッセージの伝播スタイル。値は次のとおりです。
|
|
|
伝播型。値は次のとおりです。
|
|
|
伝播ソースで使用されるサブスクリプション・ルール |
|
|
メッセージの伝播元のソース・キュー |
|
|
ジョブ・ステータス。値は次のとおりです。
|
|
|
メッセージ変換に使用される変換 |
MGW_SUBSCRIBERS: サブスクライバに関する情報
このビューは、メッセージ・ゲートウェイ・サブスクライバの構成およびステータスに関する情報をリストします。このビューには、サブスクライバの追加時に指定された大部分のサブスクライバのプロパティが、その他のステータスおよび統計情報とともに表示されます。
表C-20 MGW_SUBSCRIBERSビューのプロパティ
名前 | 型 | 説明 |
---|---|---|
|
|
メッセージの伝播先の宛先キュー |
|
|
最後にエージェントが起動されてから伝播例外キューに移動されたメッセージの数 |
|
|
ロギングの目的で使用される例外キュー |
|
|
伝播の失敗数 |
|
|
伝播の最終エラーの日付 |
|
|
伝播の最終エラーに関するメッセージ |
|
|
伝播の最終エラーの時間 |
|
|
サブスクライバ・オプション |
|
|
メッセージの伝播スタイル。値:
|
|
|
最後にエージェントが起動されてから宛先キューに伝播されたメッセージの数 |
|
|
伝播型。値:
|
|
|
サブスクリプション・ソース・キュー |
|
|
サブスクリプション・ルール |
|
|
サブスクライバ・ステータス。値:
|
|
|
伝播サブスクライバの識別子 |
|
|
メッセージ変換に使用される変換 |
MGW_SCHEDULES: スケジュールに関する情報
このビューは、メッセージ・ゲートウェイ・スケジュールの構成およびステータスに関する情報をリストします。このビューには、スケジュールの作成時に指定された大部分のスケジュールのプロパティが、その他のステータス情報とともに表示されます。
表C-21 MGW_SCHEDULESビューのプロパティ
名前 | 型 | 説明 |
---|---|---|
|
|
伝播の宛先 |
|
|
伝播枠の待機時間(秒) |
|
|
将来の使用のために予約済 |
|
|
伝播型。値は次のとおりです。値:
|
|
|
将来の使用のために予約済 |
|
|
スケジュールが使用不可かどうかを示します。 |
|
|
伝播スケジュールの識別子 |
|
|
伝播ソース |
|
|
将来の使用のために予約済 |
|
|
将来の使用のために予約済 |