リリース情報


17.4 MQSeries 関数の概説

MQSeries 関数のセットは、SQL ステートメントにメッセージング操作を組み込むために、 DB2UDB バージョン 7.2 によって提供されるものです。つまり、このサポートは、 データベース・インターフェースを使用して C、Java、SQL などのサポートされている言語で 作成されたアプリケーションに使用できるということです。下記の例はすべて SQL で記述されて います。この SQL は、他のプログラム言語からもすべて標準の方法で使用できます。上記の すべての MQSeries メッセージ・スタイルがサポートされています。MQSeries 関数の詳細に ついては、「リリース情報」の「SQL 解説書」セクションを参照してください。

基本構成では、MQSeries サーバーが DB2 とともにデータベース・サーバー・マシン上に 置かれます。MQSeries 関数は、DB2 にインストールされ、MQSeries サーバーへのアクセスを 提供します。DB2 クライアントは、DB2 サーバーへアクセス可能なマシン上に置かれます。 MQSeries 関数には、複数のクライアントがデータベースを介して同時にアクセスできます。 DB2 クライアントは、提供された関数を使用して、SQL ステートメント内のメッセージング操作を 実行します。これらのメッセージング操作を使用して、DB2 アプリケーションは相互に、または 他の MQSeries アプリケーションと通信することができます。

MQSeries 関数の DB2 データベースを使用可能にするときには、 enable_MQFunctions コマンドを使用します。このコマンドは、 クライアント・アプリケーションが他の管理アクションを実行せずに使用できる単純な デフォルト構成を自動的に確立します。このコマンドの説明については、 enable_MQFunctions および disable_MQFunctions を参照してください。デフォルト構成では、 アプリケーション・プログラマーに、簡単な使い方と、開発用のシンプルなインターフェースが 提供されます。必要に応じて、追加の機能を構成できます。

例 1: デフォルト構成を使用して単純なメッセージを送信するには、次のような SQL ステートメントを 使用します:

VALUES DB2MQ.MQSEND('simple message')

これにより、simple message というメッセージが、デフォルト構成で 指定されている MQSeries キュー・マネージャーとキューへ送られます。

MQSeries の Application Message Interface (AMI) では、メッセージング・アクションと、 そのアクションの実行方法を示す定義が、完全に分離されています。これらの定義は、 外部リポジトリー・ファイルに保持され、AMI 管理ツールを使用して管理されます。これにより、 AMI アプリケーションの開発と保守が容易になります。DB2 で提供される MQSeries 関数は、 AMI MQSeries インターフェースに基づいています。AMI は、構成情報を保管するために、 AMI リポジトリーと呼ばれる外部構成ファイルの使用をサポートしています。デフォルト構成には、 DB2 とともに使用されるように構成されている MQSeries AMI リポジトリーが含まれています。

MQSeries AMI の 2 つの重要な概念であるサービス・ポイントとポリシーは、 DB2 MQSeries 関数にも引き継がれています。サービス・ポイントとは、メッセージを送受信する 論理エンドポイントのことです。各サービス・ポイントは、AMI リポジトリーに、 MQSeries キュー名およびキュー・マネージャーとともに定義されています。 ポリシーは、指定されたメッセージング操作に使用するサービス・オプションの品質を 定義します。サービスの重要な品質としては、メッセージ優先順位や持続性などが あります。デフォルトのサービス・ポイントとポリシー定義が提供されるので、開発者は それを利用してアプリケーションを単純化させることができます。例 1 は、デフォルトの サービス・ポイントとポリシー名を明示的に指定して、次のように書き換えることができます。

例 2:

VALUES DB2MQ.MQSEND('DB2.DEFAULT.SERVICE', 'DB2.DEFAULT.POLICY', 'simple message')

キューは、そのキューとアプリケーションが常駐するサーバーにある 1 つ以上の アプリケーションによってサービスされます。多くの構成では、各種アプリケーションと用途を サポートするために、複数のキューが定義されます。このため多くの場合、MQSeries 要求を 作成するときには、さまざまなサービス・ポイントを定義することが重要になります。次に例を示します。

例 3:

VALUES DB2MQ.MQSEND('ODS_Input', 'simple message')

注:
この例では、ポリシーが指定されていないので、デフォルト・ポリシーが使用されます。

17.4.1 制約事項

MQSeries は、メッセージ操作とデータベース操作をアトミック・トランザクション として 1 つの作業単位に結合する機能を提供します。この機能は、UNIX および Windows では、 MQSeries 関数によって最初からサポートされているわけではありません。

送信または受信機能を使用するときのメッセージの最大長は 4000 文字です。これはまた、 MQPublish を使用してメッセージを発行するときの最大メッセージ・サイズでもあります。

17.4.2 エラー・コード

MQSeries 関数から戻される戻りコードは、「MQSeries アプリケーション・メッセージング・インターフェース」 マニュアルの「付録 B」に記載されています。


[ ページのトップ | 前ページ | 次ページ | 目次 | 索引 ]