DB2 Version 9.7 for Linux, UNIX, and Windows

MQPUBLISH scalar function

The MQPUBLISH function publishes data to MQSeries®. For more details, visit http://www.ibm.com/software/MQSeries.

The MQPUBLISH function publishes the data contained in msg-data to the MQSeries publisher specified in publisher-service, and using the quality of service policy defined by service-policy. An optional topic for the message can be specified, and an optional user-defined message correlation identifier can also be specified.

The data type of the result is VARCHAR(1). The result of the function is '1' if successful or '0' if unsuccessful.

Syntax

Read syntax diagramSkip visual syntax diagram
>>-MQPUBLISH--(------------------------------------------------->

>--+---------------------------------------------+--msg-data---->
   '-publisher-service--,--+-------------------+-'             
                           '-service-policy--,-'               

>--+--------------------------------+--)-----------------------><
   '-,--topic--+------------------+-'      
               |              (1) |        
               '-,--correl-id-----'        

Notes:
  1. The correl-id cannot be specified unless a service and a policy are also specified.

The schema is DB2MQ for non-transactional message queuing functions, and DB2MQ1C for one-phase commit transactional MQ functions.

Function parameters

publisher-service
A string containing the logical MQSeries destination where the message is to be sent. If specified, the publisher-service must refer to a publisher Service Point defined in the DB2MQ.MQPUBSUB table that has a type value of 'P' for publisher service. If publisher-service is not specified, the DB2.DEFAULT.PUBLISHER will be used. The maximum size of publisher-service is 48 bytes.
service-policy
A string containing the MQSeries Service Policy to be used in handling of this message. If specified, the service-policy must refer to a Policy defined in the DB2MQ.MQPOLICY table. A Service Policy defines a set of quality of service options that should be applied to this messaging operation. These options include message priority and message persistence. If service-policy is not specified, the default DB2.DEFAULT.POLICY will be used. The maximum size of service-policy is 48 bytes.
msg-data
A string expression containing the data to be sent via MQSeries. The maximum size for a VARCHAR string expression is 32 000 bytes and the maximum size for a CLOB string expression is 1M bytes.
topic
A string expression containing the topic for the message publication. If no topic is specified, none will be associated with the message. The maximum size of topic is 40 bytes. Multiple topics can be specified in one string (up to 40 characters long). Each topic must be separated by a colon. For example, "t1:t2:the third topic" indicates that the message is associated with all three topics: t1, t2, and "the third topic".
correl-id
An optional string expression containing a correlation identifier to be associated with this message. The correl-id is often specified in request and reply scenarios to associate requests with replies. If not specified, no correlation ID will be added to the message. The maximum size of correl-id is 24 bytes.

Authorization

One of the following authorities is required to execute the function:
  • EXECUTE privilege on the function
  • DATAACCESS authority
  • DBADM authority
  • SQLADM authority

Examples

Example 1: This example publishes the string "Testing 123" to the default publisher service (DB2.DEFAULT.PUBLISHER) using the default policy (DB2.DEFAULT.POLICY). No correlation identifier or topic is specified for the message.
   VALUES MQPUBLISH('Testing 123')
Example 2: This example publishes the string "Testing 345" to the publisher service "MYPUBLISHER" under the topic "TESTS". The default policy is used and no correlation identifier is specified.
   VALUES MQPUBLISH('MYPUBLISHER','Testing 345', 'TESTS')
Example 3: This example publishes the string "Testing 678" to the publisher service "MYPUBLISHER" using the policy "MYPOLICY" with a correlation identifier of "TEST1". The message is published with topic "TESTS".
   VALUES MQPUBLISH('MYPUBLISHER','MYPOLICY','Testing 678','TESTS','TEST1')
Example 4: This example publishes the string "Testing 901" to the publisher service "MYPUBLISHER" under the topic "TESTS" using the default policy (DB2.DEFAULT.POLICY) and no correlation identifier.
   VALUES MQPUBLISH('Testing 901','TESTS')