MQREADALL
MQREADALL 関数は、キューからメッセージを除去せずに、VARCHAR 列で指定された MQSeries® ロケーションからのメッセージおよびメッセージ・メタデータが入った表を戻します。
MQREADALL 関数は、service-policy で定義されたサービス品質ポリシーを使って、receive-service で指定された MQSeries ロケーションからのメッセージおよびメッセージ・メタデータが入った表を戻します。この処理を行っても、receive-service に関連付けられたキューからメッセージは除去されません。
- receive-service
- LOB 以外の組み込みの文字ストリング・データ・タイプまたはグラフィック・ストリング・データ・タイプの値を戻す式。式の値は、空ストリング、または末尾ブランクを含むストリングであってはなりません。
式の実際の長さは、48 バイトを超えてはなりません。
この式の値は、SYSIBM.MQSERVICE 表に定義されたサービス・ポイントを参照している必要があります。
サービス・ポイントは、メッセージの送信元または受信相手側の論理エンドポイントです。
サービス・ポイントの定義には、MQSeries キュー・マネージャーの名前およびキューの名前が含まれます。
MQSeries Application Messaging について詳しくは、「SQL プログラミング」を参照してください。
receive-service が指定されていないか NULL 値である場合、DB2®.DEFAULT.SERVICE が使用されます。
- service-policy
- LOB 以外の組み込みの文字ストリング・データ・タイプまたはグラフィック・ストリング・データ・タイプの値を戻す式。式の値は、空ストリング、または末尾ブランクを含むストリングであってはなりません。
式の実際の長さは、48 バイトを超えてはなりません。
この式の値は、SYSIBM.MQPOLICY 表に定義されたサービス・ポリシーを参照している必要があります。
サービス・ポリシーは、このメッセージ処理に適用されるサービス品質オプションのセットを指定します。
これらのオプションには、メッセージ優先順位やメッセージ持続性などがあります。MQSeries Application Messaging について詳しくは、「SQL プログラミング」を参照してください。
service-policy が指定されていないか NULL 値である場合、DB2.DEFAULT.POLICY が使用されます。
- num-rows
- その値が正整数かゼロである SMALLINT または INTEGER データ・タイプの値を戻す式。式の値は、戻すメッセージの最大数を指定します。
num-rows が指定されないか、または式の値がゼロの場合、使用可能なす べてのメッセージが戻されます。
この関数の結果は、以下の表に示された形式の表です。列はすべてNULL 可能です。
列名 | データ・タイプ | 内容 |
---|---|---|
MSG | VARCHAR(32000) | MQSeries メッセージの内容 |
CORRELID | VARCHAR(24) | メッセージを関連付けるために使用される相関 ID |
TOPIC | VARCHAR(40) | 予約済み |
QNAME | VARCHAR(48) | メッセージ受信相手先のキューの名前 |
MSGID | VARCHAR(24) | このメッセージの、MQSeries 割り当ての固有な ID |
MSGFORMAT | VARCHAR(8) | MQSeries で定義されたメッセージの形式 |
結果列の CCSID は、現行サーバーにおけるデフォルト CCSID です。
注
前提条件: MQSeries の機能を使用するためには、IBM® MQSeries for IBM i がインストールおよび構成され、作動可能である必要があります。
例
- この例は、デフォルト・サービス (DB2.DEFAULT.SERVICE) によって指定された、デフォルト・ポリシー (DB2.DEFAULT.POLICY) を使用するキューからすべてのメッセージを取り出します。これらのメッセージとすべてのメタデータが表として戻されます。
SELECT * FROM TABLE (MQREADALL ()) AS T
- この例は、サービス MYSERVICE によって指定された、デフォルト・ポリシー (DB2.DEFAULT.POLICY) を使用するキューの先頭からすべてのメッセージを取り出します。MSG 列と CORRELID 列のみが戻されます。
SELECT T.MSG, T.CORRELID FROM TABLE (MQREADALL ('MYSERVICE')) AS T
- この例は、デフォルト・サービス (DB2.DEFAULT.SERVICE) によって指定された、デフォルト・ポリシー (DB2.DEFAULT.POLICY) を使用するキューの先頭を読み取ります。 CORRELID が '1234' のメッセージだけが戻されます。列はすべて戻されます。
SELECT * FROM TABLE (MQREADALL ()) AS T WHERE T.CORRELID = '1234'
- この例は、デフォルト・サービス (DB2.DEFAULT.SERVICE) によって指定された、デフォルト・ポリシー (DB2.DEFAULT.POLICY) を使用するキューの先頭から最初の 10 個のメッセージを取り出します。列はすべて戻されます。
SELECT * FROM TABLE (MQREADALL (10)) AS T