MQRECEIVE
MQRECEIVE 関数は、指定された MQSeries® ロケーション (VARCHAR の戻り値) からメッセージを戻し、キューからメッセージを除去します。
MQRECEIVE 関数は、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 が使用されます。
- correl-id
- LOB 以外の組み込みの文字ストリング・データ・タイプまたはグラフィック・ストリング・データ・タイプの値を戻す式。式の実際の長さは、24 バイトを超えてはなりません。
式の値は、このメッセージに関連付けられている相関 ID を指定します。
相関 ID は、しばしば、要求を応答に関連付けるために「要求と応答」シナリオで指定されます。
相関 ID が一致した最初のメッセージが戻されます。
MQSeries Application Messaging について詳しくは、「SQL プログラミング」を参照してください。
末尾ブランクを含む固定長ストリングは、有効な値として扱われます。ただし、correl-id を MQSEND など他の要求で指定する場合、一致していると認識されるためには、同じ correl-id を指定する必要があります。 例えば、前の MQSEND 要求時に「test」(末尾ブランクがある) という correl-id 値を指定し、MQRECEIVE の correl-id に「test」という値を指定しても一致しません。
correl-id が、指定されていない、空ストリングである、または NULL 値である場合、相関 ID は使用されず、キューの先頭のメッセージが戻されます。
この関数の結果は、長さ属性 32000 の可変長ストリングです。結果が、NULL になることもあります。戻されるメッセージがない場合、結果は NULL 値です。
結果の CCSID は、現行サーバーにおけるデフォルト CCSID です。
注
前提条件: MQSeries の機能を使用するためには、IBM® MQSeries for IBM i がインストールおよび構成され、作動可能である必要があります。
例
- この例は、デフォルト・サービス (DB2.DEFAULT.SERVICE) によって指定された、デフォルト・ポリシー (DB2.DEFAULT.POLICY) を使用するキューの先頭にあるメッセージを取り出します。
SELECT MQRECEIVE () FROM SYSIBM.SYSDUMMY1
- この例は、サービス「MYSERVICE」によって指定された、デフォルト・ポリシー (DB2.DEFAULT.POLICY) を使用するキューの先頭にあるメッセージを取り出します。
SELECT MQRECEIVE ('MYSERVICE') FROM SYSIBM.SYSDUMMY1
- この例は、サービス「MYSERVICE」によって指定された、ポリシー「MYPOLICY」を使用するキューの先頭にあるメッセージを取り出します。
SELECT MQRECEIVE ('MYSERVICE','MYPOLICY') FROM SYSIBM.SYSDUMMY1
- この例は、サービス「MYSERVICE」によって指定された、ポリシー「MYPOLICY」を使用するキューの先頭から、「1234」と一致する相関 ID をもつ最初のメッセージを取り出します。
SELECT MQRECEIVE ('MYSERVICE','MYPOLICY','1234') FROM SYSIBM.SYSDUMMY1