Integration Server 10.15 | Publish-Subscribe Developer’s Guide | Publishing Documents | Impact of Universal Messaging Changes to Shared Durables on Document Delivery | Client IDs for Triggers and the Destination ID in pub.publish:deliver* Services
 
Client IDs for Triggers and the Destination ID in pub.publish:deliver* Services
For Integration Server, adopting the Universal Messaging subscription name filtering feature required a change in the naming conventions for the client ID of the trigger. The client ID of the trigger is now the trigger's shared durable name which is as follows:
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
Note:
The change to shared durables does not affect the destination ID for the default client of an Integration Serverwhich remains: clientPrefix_DefaultClient Where clientPrefix is the client prefix for the messaging connection alias used by subscribers to the publishable document type on Integration Server.
The new naming format applies to webMethods messaging trigger created in Integration Server version 10.3 and later.
When calling pub.publish:deliver or pub.publish:deliverAndWait, Integration Server attempts to automatically convert trigger client IDs that are in the old format to the new format during the publishing process. A majority of the time this conversion will work and no changes will be needed to the destID input parameter for existing invocations of pub.publish:deliver*. However, if the service delivers a message to a client ID that has an underscore it its name, then the client ID is converted to the wrong value which can result in the message not getting delivered at all or being delivered to the wrong trigger. The previous naming format for trigger client IDs used underscores between the clientID, folder names, and trigger name (specifically clientPrefix_folderName_subfolderName_triggerName). When converting the client ID to the new format, Integration Server changes the first underscore (_) to a # and makes all other single underscores (_) into double underscores (__). If a folder, subfolder, or trigger name includes an underscore character, Integration Server replaces that character with a double underscore as well, which results in the incorrect client name.
For example, suppose that a trigger uses a connection alias with a client prefix of myPrefix and the trigger name is my_folder.mySubfolder:myTrigger. Under the previous client ID naming format, the client ID would be: myPrefix_my_folder_mySubfolder_myTrigger. The new format would be myPrefix#my_folder__mySubfolder__myTrigger. However, when executing a pub.publish:deliver* service that includes the old client ID as the destination ID, Integration Server converts the client ID to: myPrefix#my__folder__mySubfolder__myTrigger. This converted client ID does not match the correct client ID for the new format because of the additional underscore character in the folder name portion of the client ID. In this situation, the destID field needs to be updated manually with the new client ID format.
The Messaging > webMethods triggers > triggerName page in Integration Server Administrator displays the client ID in the new format in the Trigger Client ID field.