Integration Server 10.3 | Built-In Services Reference Guide | Publish Folder | Summary of Elements in this Folder | pub.publish:deliver
 
pub.publish:deliver
WmPublic. Delivers a document to a specific destination.
Input Parameters
documentTypeName
String Fully qualified name of the publishable document type being delivered.
The publishable document type must be in sync with the associated provider definition. The provider definition is a representation of the publishable document type and its properties on the provider. In the case of Universal Messaging, this is a channel. For Broker, it is a Broker document type. If the document type and provider definition are not synchronized, publication might fail.
A publishable document type that uses the IS_LOCAL_CONNECTION alias cannot be delivered because delivery can only occur with a messaging provider (Broker or Universal Messaging).
document
Document Document (IData object) conforming to the publishable document type in documentTypeName.
destId
String The destination to which the document will be delivered. You can specify the ID for an individual trigger or the default client of an Integration Server as the destination. When you deliver a document to the default client of Integration Server, Integration Server routes the delivered document to any subscribers on that Integration Server.
When working with Universal Messaging, the destination ID is a subject. When working with Broker, the destination ID is the client ID. For details about the destination IDs, see the Usage Notes for this service.
If you specify an invalid client ID, the Integration Server delivers the document to the messaging provider, but the messaging provider never delivers the document to the intended recipient and no error is produced.
delayUntilServiceSuccess
String Optional. Flag indicating whether the Integration Server should publish the document when the pub.publish:deliver service executes or after the top-level service successfully completes. If the top-level service fails, the Integration Server will not publish the document.
Set to:
*true to delay publishing until after the top-level service executes successfully.
*false to publish the document when the pub.publish:deliver service executes. This is the default.
Output Parameters
None.
Usage Notes
You can use the pub.publish:deliver service to deliver a document to a destination where the destination can be a webMethods messaging trigger or the default client of an Integration Server.
*The destination ID for a trigger that receives documents from Broker uses the following naming convention:
clientPrefix _folderName_subfolderName_triggerName
Where clientPrefix is the client prefix for the messaging connection alias used by the trigger, folderName is the folder in which the trigger is located, subfolderName is the subfolder in which the trigger is located, and triggerName is the local name of the trigger.
For example, for a trigger with the fully qualified name myFolder.mySubFolder:myTrigger that uses a messaging connection alias with the client prefix “myAlias”, the destination ID of the trigger is: myAlias_myFolder_mySubfolder_myTrigger.
*The destination ID for a trigger that receives documents from Universal Messaging uses the following naming convention:
clientPrefix##triggerName
Where clientPrefix is the Universal Messaging connection alias used by the trigger and triggerName is the fully qualified name of the trigger where periods and colons are replaced by double underscores.
For example, a trigger that uses a Universal Messaging connection alias with a client prefix of myPrefix and a trigger name of myFolder.mySubfolder:myTrigger the trigger client ID, and therefore the destination ID, would be: myPrefix##myFolder__mySubFolder__myTrigger
*The destination ID for the default client of an Integration Server uses the following naming convention:
clientPrefix_DefaultClient
Where clientPrefix is the client prefix for the messaging connection alias used by subscribers to the publishable document type on the Integration Server.
As of version 10.3, Universal Messaging has implemented subscriber name filtering for its durable subscriptions which is what Integration Server uses to ensure that delivered documents were routed by Universal Messaging to the intended destination. In subscriber name filtering, when a publisher designates a message for a specific subscriber, Universal Messaging routes the message to a consumer whose durable subscription name matches the designated subscriber name in the message. For IIntegration Server, the subscription name filtering requires some modifications, specifically:
*Enable the subscription name filtering feature on Universal Messaging. To enable the feature through Universal Messaging Enterprise Manager, navigate to the realm and select the Config tab. In the realm server configuration panel, click Show Advanced Config. Expand Advanced Configuration - Durable Config, and set Durable Name Filtering to true.
*Change the destID input parameter value in invocations of pub.publish:deliver and pub.publish:deliverAndWait, if necessary. This may only be necessary when the trigger to which the message is to be delivered contains an underscore in its name. For more information about client IDs for triggers and how this change may impact existing services that invoke pub.publish:deliver*, see Impact of Universal Messaging Changes to Shared Durables on Document Delivery.
To view the subjects for a trigger used with Universal Messaging, use Integration Server Administrator to open the Settings > Messaging > webMethods Messaging Trigger Management screen. In the Individual webMethods Messaging Trigger list, click the name of the trigger for which you want to view the client ID. On the Settings > Messaging > webMethods Messaging Trigger Management > triggerName screen, under Destination ID for Deliver, the Trigger Client ID field displays the client ID for the trigger. The Default Client ID field displays the client of the Integration Server.
To view a list of client IDs on the Broker, use the Broker user interface within My webMethods or use Designer to test the publishable document type that you want to deliver.
For a Universal Messaging connection alias the Publish Wait Time While Reconnecting value specifies the number of milliseconds that a publishing service using alias will wait for a connection to the Universal Messaging server to be re-established after the connection fails. If Integration Server re-establishes the connection before the Publish Wait Time While Reconnecting elapses, the publishing service continues executing. If the specified time elapses before a connection is re-established, the publishing service ends with an ISRuntimeException. Make sure to code your service to handle this situation.
If outbound client-side queuing is disabled (the watt.server.publish.useCSQ property is set to "never"), Integration Server throws a ServiceException if the Broker is not available when this service executes. Make sure to code your service to handle this situation.
If the pub.publish:deliver services publishes a document to Universal Messaging and use of the client side queue is disabled for the Universal Messaging connection alias, Integration Server throws an ISRuntimeException if the Universal Messaging server is not available when the service executes. Make sure to code your service to handle this situation.
For more information about how the Integration Server, Universal Messaging, and Broker deliver documents and for information about building a service that delivers a document, see the Publish-Subscribe Developer’s Guide.
See Also
pub.publish:publish
pub.publish:deliverAndWait
pub.publish:envelope