Db2 MQ 関数

Db2® MQ 関数を使うと、メッセージキューにメッセージを送ったり、 メッセージキューからメッセージを受け取ったりすることができる。 要求をメッセージ・キューに送信して、応答を受信することができます。

Db2 MQ 関数は、以下のタイプの操作をサポートします。
  • 応答不要送信 (応答が不要の場合)。
  • 読み取りまたは受信。1 つまたはすべてのメッセージをキューから除去しないで読み取るか、あるいは受信してキューから除去する場合。
  • 要求と応答。送信元アプリケーションが要求に対する応答を必要とする場合。

WebSphere® MQ サーバーは、Db2 と同じ IBM i 上にあります。 Db2 MQ 関数は Db2 に登録され、MQI API を使用して WebSphere MQ サーバーへのアクセスを提供します。

次の表では、 Db2 MQ スカラー関数について説明します。
表 1. Db2 MQ スカラー関数
スカラー関数 説明
MQREAD MQREAD は、service-policy で定義されたポリシーを使用して、 receive-service で指定した MQ の場所から VARCHAR 変数にメッセージを返します。 この操作は、キューの先頭からメッセージを除去せずに、それを返します。 返すメッセージがない場合、NULL 値が返されます。
MQREADCLOB MQREADCLOB は、service-policy で定義されたポリシーを使用して、 receive-service で指定した MQ の場所から CLOB 変数にメッセージを返します。 この操作は、キューの先頭からメッセージを除去せずに、それを返します。 返すメッセージがない場合、NULL 値が返されます。
MQRECEIVE MQRECEIVE は、service-policy で定義されたポリシーを使用して、 receive-service で指定した MQ の場所から VARCHAR 変数にメッセージを返します。 この操作は、キューからメッセージを除去します。 correlation-id を指定した場合、一致する相関 ID を持つ最初のメッセージが返されます。 correlation-id を指定しない場合、キューの先頭のメッセージが返されます。 返すメッセージがない場合、NULL 値が返されます。
MQRECEIVECLOB MQRECEIVECLOB は、service-policy で定義されたポリシーを使用して、 receive-service で指定した MQ の場所から CLOB 変数にメッセージを返します。 この操作は、キューからメッセージを除去します。 correlation-id を指定した場合、一致する相関 ID を持つ最初のメッセージが返されます。 correlation-id を指定しない場合、キューの先頭のメッセージが返されます。 返すメッセージがない場合、NULL 値が返されます。
MQSEND MQSEND は、service-policy で定義されたポリシーを使用して、 VARCHAR または CLOB 変数 msg-data 内のデータを send-service で指定した MQ の場所に送信します。 オプションのユーザー定義メッセージ相関 ID は、correlation-id で指定できます。 戻り値は、成功した場合は 1、失敗した場合は 0 です。
注:
  1. メッセージは、VARCHAR 変数または CLOB 変数に入れて送信または受信できます。 VARCHAR 変数内のメッセージの最大長は 32000 です。 CLOB 変数内のメッセージの最大長は 2 MB です。
次の表では、 Db2 MQ 表関数について説明します。
表 2. Db2 MQ 表関数
表関数 説明
MQREADALL MQREADALL は、service-policy で定義されたポリシーを使用して、 receive-service で指定した MQ の場所から、メッセージおよびメッセージ・メタデータを含む表を VARCHAR 変数に返します。 この操作は、キューからメッセージを除去しません。 num-rows が指定されている場合は、 最大の num-rows メッセージが戻されます。num-rows が指定されていない場合は、 使用可能なすべてのメッセージが戻されます。
MQREADALLCLOB MQREADALLCLOB は、service-policy で定義されたポリシーを使用して、 receive-service で指定した MQ の場所から、メッセージおよびメッセージ・メタデータを含む表を CLOB 変数に返します。 この操作は、キューからメッセージを除去しません。 num-rows が指定されている場合は、 最大の num-rows メッセージが戻されます。num-rows が指定されていない場合は、 使用可能なすべてのメッセージが戻されます。
MQRECEIVEALL MQRECEIVEALL は、service-policy で定義されたポリシーを使用して、 receive-service で指定した MQ の場所から、メッセージおよびメッセージ・メタデータを含む表を VARCHAR 変数に返します。 この操作は、メッセージをキューから除去します。 correlation-id を指定した場合、一致する相関 ID を持つメッセージだけが返されます。 correlation-id を指定しない場合、すべての使用可能なメッセージが返されます。 num-rows が指定されている場合は、 最大の num-rows メッセージが戻されます。num-rows が指定されていない場合は、 使用可能なすべてのメッセージが戻されます。
MQRECEIVEALLCLOB MQRECEIVEALLCLOB は、service-policy で定義されたポリシーを使用して、 receive-service で指定した MQ の場所から、メッセージおよびメッセージ・メタデータを含む表を CLOB 変数に返します。 この操作は、メッセージをキューから除去します。 correlation-id を指定した場合、一致する相関 ID を持つメッセージだけが返されます。 correlation-id を指定しない場合、すべての使用可能なメッセージが返されます。 num-rows が指定されている場合は、 最大の num-rows メッセージが戻されます。num-rows が指定されていない場合は、 使用可能なすべてのメッセージが戻されます。
注:
  1. メッセージは、VARCHAR 変数または CLOB 変数に入れて送信または受信できます。 VARCHAR 変数内のメッセージの最大長は 32000 です。 CLOB 変数内のメッセージの最大長は 2 MB です。
  2. Db2 MQ 表関数の結果表の最初の列には、メッセージが含まれます。