ヘッダーをスキップ
Oracle Streamsアドバンスト・キューイング・ユーザーズ・ガイド
11gリリース1(11.1)
E05782-01
  目次
目次
索引
索引

戻る
戻る
次へ
次へ
 

17 Oracle Messaging Gatewayの概要

メッセージ・ゲートウェイ管理パッケージDBMS_MGWADMでは、メッセージ・ゲートウェイ・エージェントの作成、エージェントの管理、メッセージ・システム・リンクの作成、Oracle以外のキューの登録および伝播ジョブの設定のためのインタフェースを提供しています。

内容は次のとおりです。

17.1 Oracle Messaging Gatewayの概要

メッセージ・ゲートウェイを使用すると、Oracle以外のメッセージ・システムとOracle Streams AQに基づくアプリケーション間の通信が可能になります。

Oracle Streams AQでは、Oracle Streams AQキュー間の伝播を提供し、E-Business(iDAP経由のHTTP)を可能にしています。メッセージ・ゲートウェイでは、この機能をOracle以外のメッセージ・システムに基づくアプリケーションに拡張しています。

メッセージ・ゲートウェイはOracle Streams AQおよびOracle Databaseと統合されているため、信頼性のあるメッセージ配信が可能です。メッセージ・ゲートウェイを使用すると、永続性がサポートされているOracle以外のメッセージ・システムとOracle Streams AQ間で、メッセージの配信が1回のみ行われることが保証されます。PL/SQLインタフェースでは、特にOracle Streams AQの使用方法をすでによく理解している開発者を対象に、簡単に使用できる管理APIが提供されます。

今回のリリースのメッセージ・ゲートウェイでは、Oracle Streams AQとWebSphere MQ 6.0およびTIB/Rendezvous 7.2ベースのアプリケーションの統合がサポートされています。

17.2 Oracle Messaging Gatewayの機能

メッセージ・ゲートウェイの機能は次のとおりです。

17.3 Oracle Messaging Gatewayのアーキテクチャ

メッセージ・ゲートウェイには、次の2つの主要コンポーネントがあります。

図17-1は、これらのコンポーネントがOracle DatabaseとOracle以外のメッセージ・システム間で連動する方法を示したものです。

図17-1 メッセージ・ゲートウェイのアーキテクチャ

図adque449.gifの説明が続きます
図adque449.gifの説明

17.3.1 管理パッケージDBMS_MGWADM

メッセージ・ゲートウェイ管理パッケージDBMS_MGWADMでは、指定したメッセージ・ゲートウェイ・エージェントの作成、エージェントの管理、メッセージ・システム・リンクの作成、Oracle以外のキューの登録および伝播ジョブの設定のためのインタフェースを提供しています。

ユーザーはパッケージ内のプロシージャをコールして、メッセージ・ゲートウェイ・エージェントが実行中かどうかにかかわらず構成を変更します。メッセージ・ゲートウェイ・エージェントが実行中である場合は、パッケージ内のプロシージャによってエージェントに構成の変更についての通知が送信されます。エージェントでは、ほとんどの構成変更に対してエージェントの構成が動的に変更されます。ただし、変更を有効にするためにエージェントを停止し、再起動する必要がある場合もあります。管理パッケージ内のすべてのプロシージャはシリアル化され、これによってメッセージ・ゲートウェイ・エージェントが構成変更の通知を変更順に受信することが保証されます。


関連項目:

DBMS_MGWADMパッケージの詳細は、『Oracle Database PL/SQLパッケージ・プロシージャおよびタイプ・リファレンス』を参照してください。

17.3.2 Oracle Messaging Gatewayのエージェント

メッセージ・ゲートウェイ・エージェントはOracle Databaseサーバーの外部プロセスとして実行され、伝播ジョブを処理します。エージェントを起動および終了するには、DBMS_MGWADMパッケージ内のSTARTUPおよびSHUTDOWNプロシージャをコールします。

メッセージ・ゲートウェイ・エージェントには、マルチスレッド伝播エンジンおよびメッセージ・システム用のドライバ・セットが含まれます。伝播エンジンによって伝播ジョブが適切にスケジューリングされ、伝播処理が同時に処理されます。エージェントのポーリング・スレッドによって、有効な伝播ジョブのソース・キューが定期的にポーリングされ、メッセージが使用可能な場合は、ワーカー・スレッドが起動して伝播ジョブが処理されます。Oracle以外のメッセージ・システムのドライバは、すべてのメッセージ操作においてメッセージ・システムのクライアントとして実行されます。

17.3.3 Oracle Database

メッセージ・ゲートウェイでは、Oracle Databaseとして、Oracle Streams AQとOracle以外のメッセージ・システム間のメッセージ伝播用メカニズムを提供しています。Oracle Streams AQは、伝播元または伝播先のいずれかの立場ですべての伝播ジョブに関与しています。

メッセージ・ゲートウェイは、PL/SQL管理パッケージDBMS_MGWADMを介して管理されています。すべての構成情報とメッセージ・ゲートウェイの実行状態情報はOracle Databaseに格納され、データベース・ビューからアクセスできます。

メッセージ・ゲートウェイ・エージェントは、Oracle Databaseサーバーの外部プロシージャとして実行されます。したがって、関連付けられたデータベース・サーバーが実行中の場合のみ実行されます。

17.3.4 Oracle以外のメッセージ・システム

メッセージ・ゲートウェイ・エージェントは、メッセージ・システム・リンクを介してOracle以外のメッセージ・システムに接続されます。メッセージ・システム・リンクとは、メッセージ・ゲートウェイ・エージェントとOracle以外のメッセージ・システム間の通信チャネルです。ユーザーは、管理パッケージDBMS_MGWADMを使用して、同じまたは異なるOracle以外のメッセージ・システムへの複数のリンクを構成できます。

WebSphere MQキュー、TIB/Rendezvousサブジェクト、WebSphere MQ JMS宛先(キューおよびトピック)などのOracle以外のメッセージ・システム内のキューは、すべてメッセージ・ゲートウェイの伝播元および伝播先として機能できます。これらのキューを外部キューと呼びます。ソース・キュー、宛先キューまたは例外キューとしてメッセージ伝播に関与するすべての外部キューは、管理パッケージを経由して登録する必要があります。外部キューを登録しても、Oracle以外のメッセージ・システムに物理的なキューは作成されず、キューにアクセスするためのメッセージ・システム・リンク、システム固有の名前、ドメイン(キューまたはトピック)など、キューに関する情報が記録されるだけです。物理的なキューは、Oracle以外のメッセージ・システムの管理インタフェースを介して作成する必要があります。

17.4 伝播処理の概要

メッセージが1つのメッセージ・システムから別のメッセージ・システムに伝播されるようにするには、伝播ジョブを定義する必要があります。伝播ジョブは、ソース・キュー、宛先キュー、および伝播ジョブの処理に影響する他の各種属性を定義します。

伝播ソースがPoint-to-Pointキューの場合は、メッセージ・ゲートウェイ・エージェントによってキュー内のすべてのメッセージが宛先に移動されます。伝播ソースがトピック(パブリッシュ・サブスクライブ)の場合は、メッセージ・ゲートウェイ・エージェントによって伝播ソース・トピックのサブスクリプションが作成されます。サブスクリプションを作成すると、エージェントによってパブリッシュされたすべてのメッセージがトピックに移動されます。

伝播ジョブはスケジュールが有効になったときに処理されます。伝播ジョブを無効にすると伝播処理が停止されますが、メッセージ・サブスクリプションは停止されません。

メッセージ・ゲートウェイ・エージェントが伝播ジョブを処理すると、ソース・キューからメッセージがデキューされ、宛先キューへメッセージがエンキューされます。メッセージは、各メッセージの伝播時に、ソース・メッセージ・システム固有のフォーマットから宛先メッセージ・システム固有のフォーマットに変換されます。メッセージ・ゲートウェイでは、一般的に使用されている単純なメッセージ・フォーマット間のメッセージ変換は自動的に実行されます。独自のメッセージ変換機能を提供することによって、メッセージ変換をカスタマイズできます。

メッセージ・ゲートウェイ・エージェントがソース・フォーマットから宛先フォーマットへのメッセージ変換に失敗すると、例外キューがある場合は、エージェントによってメッセージがソース・キューから例外キューに移動され、伝播ジョブの処理が続行されます。

伝播ジョブの処理中に障害が発生した場合、メッセージ・ゲートウェイ・エージェントはジョブを停止する前に、指数バックオフ・スキームで最大16回ジョブを再試行します(2秒から最大30分)。

信頼できるメッセージ配信を保証するために、メッセージ・ゲートウェイではトランザクションと永続メッセージをサポートしているメッセージ・システムでロギング・キューが必要になります。メッセージ・ゲートウェイ・エージェントでは、ロギング・キューを使用して伝播ジョブの処理状態を格納し、障害から伝播処理を復元できるようにしています。

17.5 Oracle Streams AQのバッファ済メッセージとメッセージ・ゲートウェイ

メッセージ・ゲートウェイでは、バッファ済メッセージの伝播はサポートされていません。発信伝播の場合、メッセージ・ゲートウェイ・エージェントはAQキューから永続メッセージのみをデキューします。着信伝播の場合、メッセージ・ゲートウェイ・エージェントは常に永続メッセージをAQキューにエンキューします。