MQREADALL

MQREADALL 関数は、キューからメッセージを除去せずに、VARCHAR 列で指定された MQSeries® ロケーションからのメッセージおよびメッセージ・メタデータが入った表を戻します。

構文図を読む構文図をスキップする
>>-MQREADALL--(--+----------------------------------------+--+---------------------+--)-><
                 '-receive-service--+-------------------+-'  |                 (1) |      
                                    '-,--service-policy-'    '-+---+--num-rows-----'      
                                                               '-,-'                      

注:
  1. 先行する引数が関数に指定されている場合は、num-rows の前にコンマが必要です。
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 可能です。
表 1. MQREADALL の結果表の形式
列名 データ・タイプ 内容
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