|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 アプリケーションと通信することができます。
|enable_MQFunctions コマンドは、MQSeries 関数用に DB2 データベース |を使用可能にするために使用されます。このコマンドは、 |クライアント・アプリケーションが他の管理アクションを実行せずに使用できる単純な |デフォルト構成を自動的に確立します。詳しくは、20.6, enable_MQFunctions およ |び 20.7, 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')
|
|MQSeries は、メッセージ操作とデータベース操作をアトミック・トランザクション |として 1 つの作業単位に結合する機能を提供します。この機能は、UNIX および Windows では、 |MQSeries 関数によって最初からサポートされているわけではありません。
|送受信の関数を使用する場合、タイプ VARCHAR のメッセージの最大長 |は、4000 文字です。タイプ CLOB のメッセージを送受信する場合の |最大長は、1 MB です。 MQPublish を使用してメッセージを発行する際の |最大メッセージ・サイズもあります。
|CLOB メッセージおよび VARCHAR メッセージを処理する場合は、 |異なる関数が必要な場合もあります。一般に MQ 関数の CLOB バージョンは、MQ 関数と同一の構文 |を使用します。 唯一の違いは、その名前の末尾に CLOB の文字が |付いている点です。たとえば、MQREAD に相当する関数は、CLOB で |は、MQREADCLOB です。これらの関数について詳しくは 42.5.3, MQSeries 関数でサポートされるようになった CLOB データ を参照してください。
|MQSeries 関数から戻される戻りコードは、「MQSeries アプリケーション・メッセージング・インターフェース」 |マニュアルの「付録 B」に記載されています。