|>>-MQPUBLISH--(-------------------------------------------------> | |>--+---------------------------------------------+--msg-data----> | '-publisher-service--,--+-------------------+-' | '-service-policy--,-' | |>--+---------------------------------+--)---------------------->< | '-,--topic--+-------------------+-' | | (1) | | '-,--correl-id------' | |
|注:
|スキーマは DB2MQ です。
|MQPUBLISH 関数はデータを MQSeries に発行します。 |この関数を使用するには、MQSeries パブリッシュ/サブスクライブまたは MQSeries Integrator の |いずれかをインストールしなければなりません。 |詳細については、www.ibm.com/software/MQSeries を調べてください。
|MQPUBLISH 関数は、service-policy により定義されているサービス・ポリシーの |品質を使用して、msg-data に含まれているデータを、publisher-service により |指定されている MQSeries パブリッシャーに発行します。 |メッセージのオプションのトピックが指定でき、オプションのユーザー定義のメッセージ相関 ID も |指定できます。 |この関数は、正常に終了すると '1' の値を返し、正常に終了しないと '0' の値を返します。 |
|例:
|例 1: この例では、デフォルト・ポリシー (DB2.DEFAULT.POLICY) により |ストリング "Testing 123" がデフォルト・パブリッシャー・サービス (DB2.DEFAULT.PUBLISHER) に |発行されます。 |相関 ID もトピックもメッセージに対して指定されていません。
|VALUES MQPUBLISH('Testing 123')
|例 2: この例では、ストリング "Testing 345" がトピック "TESTS" で |パブリッシャー・サービス "MYPUBLISHER" に発行されます。 |デフォルト・ポリシーが使用されていて、相関 ID が指定されていません。
|VALUES MQPUBLISH('MYPUBLISHER','Testing 345', 'TESTS')
|例 3: この例では、"TEST1" の相関 ID を持つポリシー "MYPOLICY" によりストリング "Testing 678" が |パブリッシャー・サービス "MYPUBLISHER" に発行されます。 |トピック "TESTS" に関するメッセージが発行されます。
|VALUES MQPUBLISH('MYPUBLISHER','MYPOLICY','Testing 678','TESTS','TEST1')
|例 4: この例では、デフォルト・ポリシー (DB2.DEFAULT.POLICY) を使用し、 |相関 ID を使用せずに、ストリング "Testing 901" がトピック "TESTS" で |パブリッシャー・サービス "MYPUBLISHER" に発行されます。
|VALUES MQPUBLISH('Testing 901','TESTS')
|上記のどの例でも、正常終了の場合は値 '1' が返されます。
|>>-MQREADCLOB--(--+----------------------------------------+----> | '-receive-service--+-------------------+-' | '-,--service-policy-' | |>--)----------------------------------------------------------->< | |
|スキーマは DB2MQ です。
|MQREADCLOB 関数は、service-policy に定義されているサービス・ポリシーの |品質を使用して、receive-service によって指定されている MQSeries ロケーションから |メッセージを返します。 |この操作を実行しても、receive-service に関連するキューからこのメッセージが |除去されることはありませんが、代わりにキューの先頭にあるメッセージが返されます。戻り値は、 |このメッセージを含む最大長 1MB の CLOB です。 |戻されるメッセージが使用できない場合、NULL が返されます。 |
|例:
|例 1: この例では、デフォルト・ポリシー (DB2.DEFAULT.POLICY) を使用して、 |デフォルト・サービス (DB2.DEFAULT.SERVICE) により指定されているキューの先頭にある |メッセージが読み取られます。
|VALUES MQREADCLOB()
|例 2: この例では、デフォルト・ポリシー (DB2.DEFAULT.POLICY) を使用して、 |サービス "MYSERVICE" により指定されているキューの先頭にある |メッセージが読み取られます。
|VALUES MQREADCLOB('MYSERVICE')
|例 3: この例では、ポリシー "MYPOLICY" を使用して、サービス "MYSERVICE" により |指定されているキューの先頭にあるメッセージが読み取られます。
|VALUES MQREADCLOB('MYSERVICE','MYPOLICY')
|上記の例ではすべて、正常終了するとメッセージの内容が最大サイズ 1MB の CLOB として |返されます。 |メッセージが使用できない場合、NULL が返されます。
|>>-MQRECEIVECLOB------------------------------------------------> | |>--(--+----------------------------------------------------------+--)->< | '-receive-service--+-------------------------------------+-' | '-,--service-policy--+--------------+-' | '-,--correl-id-' | |
|スキーマは DB2MQ です。
|MQRECEIVECLOB 関数は、サービス・ポリシー service-policy の |品質を使用して、receive-service によって指定されている MQSeries ロケーションからの |メッセージを返します。この操作を実行すると、receive-service に関連するキューからこのメッセージが除去されます。 |correl-id が |指定されている場合、一致する相関 ID を持つ最初のメッセージが返されます。 |correl-id が指定されていない場合、キューの先頭にあるメッセージが返されます。 |戻り値は、このメッセージを含む最大長 1MB の CLOB です。 |戻されるメッセージが使用できない場合、NULL が返されます。 |
|例:
|例 1: この例では、デフォルト・ポリシー (DB2.DEFAULT.POLICY) を使用して、 |デフォルト・サービス (DB2.DEFAULT.SERVICE) により指定されているキューの先頭にある |メッセージが受信されます。
|VALUES MQRECEIVECLOB()
|例 2: この例では、デフォルト・ポリシー (DB2.DEFAULT.POLICY) を使用して、 |サービス "MYSERVICE" により指定されているキューの先頭にある |メッセージが受信されます。
|VALUES MQRECEIVECLOB('MYSERVICE')
|例 3: この例では、ポリシー "MYPOLICY" を使用して、サービス "MYSERVICE" により |指定されているキューの先頭にあるメッセージが受信されます。
|VALUES MQRECEIVECLOB('MYSERVICE','MYPOLICY')
|例 4: この例では、ポリシー "MYPOLICY" を使用して、サービス "MYSERVICE" により |指定されているキューの先頭から '1234' に一致する相関 ID を持つ最初のメッセージが |受信されます。
|VALUES MQRECEIVECLOB('MYSERVICE',MYPOLICY','1234')
|上記の例ではすべて、 |正常終了するとメッセージの内容が最大サイズ 1MB の CLOB として返されます。 |メッセージが使用できない場合、NULL が返されます。
|>>-MQSEND--(--+----------------------------------------+--------> | '-send-service--,--+-------------------+-' | '-service-policy--,-' | |>--msg-data--+-------------------+--)-------------------------->< | | (1) | | '-,--correl-id------' | |
|注:
|スキーマは DB2MQ です。
|MQSEND 関数は、service-policy により定義されているサービス・ポリシーの |品質を使用して、msg-data に含まれているデータを、send-service により |指定されている MQSeries ロケーションに送信します。 |任意指定のユーザー定義メッセージ相関 ID は、correl-id によって指定することができます。 |この関数は、正常に終了すると '1' の値を返し、正常に終了しないと '0' の値を返します。 |
|例:
|例 1: この例では、デフォルト・ポリシー (DB2.DEFAULT.POLICY) を使用して、 |相関 ID は使用せずに、ストリング "Testing 123" がデフォルト・サービス (DB2.DEFAULT.SERVICE) に |送信されます。
|VALUES MQSEND('Testing 123')
|例 2: この例では、ポリシー "MYPOLICY" を使用して、相関 ID は使用せずに、 |ストリング "Testing 345" がサービス "MYSERVICE" に送信されます。
|VALUES MQSEND('MYSERVICE','MYPOLICY','Testing 345')
|例 3: この例では、ポリシー "MYPOLICY" と相関 ID "TEST3" を使用して、 |ストリング "Testing 678" がサービス "MYSERVICE" に送信されます。
|VALUES MQSEND('MYSERVICE','MYPOLICY','Testing 678','TEST3')
|例 4: この例では、デフォルト・ポリシー (DB2.DEFAULT.POLICY) を使用して、 |相関 ID は使用せずに、ストリング "Testing 901" がサービス "MYSERVICE" に |送信されます。
|VALUES MQSEND('MYSERVICE','Testing 901')
|上記のすべての例で、正常終了すると '1' のスカラー値が返されます。
|>>-MQREADALLCLOB--(---------------------------------------------> | |>--+----------------------------------------+--+----------+-----> | '-receive-service--+-------------------+-' '-num-rows-' | '-,--service-policy-' | |>--)----------------------------------------------------------->< | |
|スキーマは DB2MQ です。
|MQREADALLCLOB 関数は、サービス・ポリシー service-policy の品質を |使用して、receive-service によって指定されている MQSeries ロケーションからの |メッセージおよびメッセージ・メタデータを含む表を返します。 |この操作を実行しても、receive-service に関連するキューからこのメッセージが |除去されることはありません。
|num-rows が指定されている場合、num-rows メッセージの最大数が |返されます。 |num-rows が指定されていない場合、使用可能なすべてのメッセージが |返されます。返される表には以下の列が含まれます。
|例:
|例 1: この例では、デフォルト・ポリシー (DB2.DEFAULT.POLICY) を使用して、 |デフォルト・サービス (DB2.DEFAULT.SERVICE) により指定されているキューから |すべてのメッセージが受信されます。 |メッセージとすべてのメタデータが表として返されます。
|SELECT * | FROM table (MQREADALLCLOB()) T
|例 2: この例では、デフォルト・ポリシー (DB2.DEFAULT.POLICY) を使用して、 |サービス MYSERVICE により指定されているキューの先頭からすべてのメッセージが受信されます。 |MSG 列と CORRELID 列だけが返されます。
|SELECT T.MSG, T.CORRELID | FROM table (MQREADALLCLOB('MYSERVICE')) T
|例 3: この例では、デフォルト・ポリシー (DB2.DEFAULT.POLICY) を使用して、 |デフォルト・サービス (DB2.DEFAULT.SERVICE) により指定されているキューの先頭が |読み取られます。 |'1234' の CORRELID を持つメッセージだけが返されます。 |列はすべて返されます。
|SELECT * | FROM table (MQREADALLCLOB()) T | WHERE T.CORRELID = '1234'
|例 4: この例では、デフォルト・ポリシー (DB2.DEFAULT.POLICY) を使用して、 |デフォルト・サービス (DB2.DEFAULT.SERVICE) により指定されているキューの先頭から |最初の 10 メッセージが受信されます。 |列はすべて返されます。
|SELECT * | FROM table (MQREADALLCLOB(10)) T
|>>-MQRECEIVEALLCLOB--(------------------------------------------> | |>--+----------------------------------------------------------+--> | '-receive-service--+-------------------------------------+-' | '-,--service-policy--+--------------+-' | '-,--correl-id-' | |>--+-----------------+--)-------------------------------------->< | '-+---+--num-rows-' | '-,-' | |
|スキーマは DB2MQ です。
|MQRECEIVEALLCLOB 関数は、サービス・ポリシー service-policy の品質を |使用して、receive-service によって指定されている MQSeries ロケーションからの |メッセージおよびメッセージ・メタデータを含む表を返します。 |この操作を実行すると、receive-service に関連するキューからこのメッセージが除去されます。
|correl-id が指定されている場合、一致する相関 ID を持つメッセージだけが |返されます。correl-id が指定されていない場合、キューの先頭にあるメッセージが返されます。
|num-rows が指定されている場合、num-rows メッセージの最大数が |返されます。 |num-rows が指定されていない場合、有効なすべてのメッセージが |返されます。 |返される表には以下の列が含まれます。
|例:
|例 1: この例では、デフォルト・ポリシー (DB2.DEFAULT.POLICY) を使用して、 |デフォルト・サービス (DB2.DEFAULT.SERVICE) により指定されているキューから |すべてのメッセージが受信されます。 |メッセージとすべてのメタデータが表として返されます。
|SELECT * | FROM table (MQRECEIVEALLCLOB()) T
|例 2: この例では、デフォルト・ポリシー (DB2.DEFAULT.POLICY) を使用して、 |サービス MYSERVICE により指定されているキューの先頭からすべてのメッセージが受信されます。 |MSG 列と CORRELID 列だけが返されます。
|SELECT T.MSG, T.CORRELID | FROM table (MQRECEIVEALLCLOB('MYSERVICE')) T
|例 3: この例では、ポリシー "MYPOLICY" を使用して、サービス "MYSERVICE" により |指定されているキューの先頭からすべてのメッセージが受信されます。 |'1234' の CORRELID を持つメッセージだけが返されます。 |MSG 列と CORRELID 列だけが返されます。
|SELECT T.MSG, T.CORRELID | FROM table (MQRECEIVEALLCLOB('MYSERVICE','MYPOLICY','1234')) T |
|例 4: この例では、デフォルト・ポリシー (DB2.DEFAULT.POLICY) を使用して、 |デフォルト・サービス (DB2.DEFAULT.SERVICE) により指定されているキューの先頭から |最初の 10 メッセージが受信されます。 |列はすべて返されます。
|SELECT * | FROM table (MQRECEIVEALLCLOB(10)) T
|MQSeries 関数 (DB2MQ スキーマで定義された関数) には、VARCHAR データに |加えて、CLOB データでも使用できる機能が含まれるようになりました。 |新規関数が CLOB データ・ |タイプを処理する場合もあれば、既存の関数が CLOB と VARCHAR データの |両方を処理するようになった場合もあります。いずれの場合も、CLOB 関数の構文は、VARCHAR の |場合と同一です。CLOB データの使用をサポートする関数と VARCHAR データの使用を |サポートする関数は、次の表にリストされています。
|
|表 17. CLOB データ・タイプをサポートする MQSeries 関数
VARCHAR データ用に使用される関数 | CLOB データ用に使用される関数 |
---|---|
MQPUBLISH | MQPUBLISH |
MQREAD | MQREADCLOB |
MQRECEIVE | MQRECEIVECLOB |
MQSEND | MQSEND |
MQREADALL | MQREADALLCLOB |
MQRECEIVEALL | MQRECEIVEALLCLOB |
|MQSeries 関数 (DB2MQ スキーマに定義されているもの) を使用可能化する |方法については MQSeriesを参照してください。