Use of activationId on Publishable document

Hi

In one of our interface, at publish side service (which reads data from source system) has to publish two different set of documents for each plant. Ex: If we have 5 plants configured for an interface, we will query the source API individually for each plant and publish two documents (Doc1 - containing source API output & Doc2 - containing txn & interface config details).

On subscribing side, the trigger has a Join type “All (AND)” which looks for both Doc1 and Doc2 and invokes the subscribing side service.

The interface works well, when all goes well on subscribe side service. In-case if one of the subscribing side service instance fails due to some processing error, we observe the other plant info is not getting subscribed.
Ex: When subscribing side service fails while processing Plant-1 info, 4 other plant info was not getting subscribed.

We see a log entry in server.log as shown below for all remaining 8 publishable documents (Remaining 4 Plants x 2 Docs)

[536]2020-05-28 14:23:09 IST [ISS.0106.0006I] AND Join with activation key: wm651a2b606-fc48-48e8-b82f-c58d7d70640a is being processed. Suppressing document of type: “Doc2name”
[535]2020-05-28 14:23:09 IST [ISS.0106.0006I] AND Join with activation key: wm651a2b606-fc48-48e8-b82f-c58d7d70640a is being processed. Suppressing document of type: “Doc1name”
[534]2020-05-28 14:23:09 IST [ISS.0106.0006I] AND Join with activation key: wm651a2b606-fc48-48e8-b82f-c58d7d70640a is being processed. Suppressing document of type: “Doc2name”
[533]2020-05-28 14:23:09 IST [ISS.0106.0006I] AND Join with activation key: wm651a2b606-fc48-48e8-b82f-c58d7d70640a is being processed. Suppressing document of type: “Doc1name”
[532]2020-05-28 14:23:09 IST [ISS.0106.0006I] AND Join with activation key: wm651a2b606-fc48-48e8-b82f-c58d7d70640a is being processed. Suppressing document of type: “Doc2name”
[531]2020-05-28 14:23:09 IST [ISS.0106.0006I] AND Join with activation key: wm651a2b606-fc48-48e8-b82f-c58d7d70640a is being processed. Suppressing document of type: “Doc1name”
[530]2020-05-28 14:23:08 IST [ISS.0106.0006I] AND Join with activation key: wm651a2b606-fc48-48e8-b82f-c58d7d70640a is being processed. Suppressing document of type: “Doc2name”
[529]2020-05-28 14:23:08 IST [ISS.0106.0006I] AND Join with activation key: wm651a2b606-fc48-48e8-b82f-c58d7d70640a is being processed. Suppressing document of type: “Doc1name”
[528]2020-05-28 14:23:08 IST [ISS.0153.0042E] webMethods Messaging Trigger “Triggername” failed processing message wm:b2bb90f0-a0ab-11ea-8127-0000000000a5: com.wm.lang.flow.FlowException: “Error arised at sub side”

The same issue is not seen, when we pass explicitly a different “activation” key on the “_env” documents of both Doc-1 & Doc-2 for each plant.

Does the issue seen while passing default “activation” key generated on publish side top level service was due to the error seen on the first service instance of sub-side discards all the publishable documents having same “activation” key? Please share some light to get a better understanding on this

I think you should explicitly generate activation ID for each plant, so they will only correlate between them.
Otherwise all plants in the batch will share the same activation ID (since they are called from the same service), be treated with AND join logic.

from: Publish-Subscribe Developer’s Guide Version 10.5

"About the Activation ID
An activation ID is a unique identifier assigned to a published document. Subscribing
triggers use the activation ID to determine whether a document satisfies a join condition.
Integration Server stores the activation ID in the activation field of a document envelope.
By default, Integration Server assigns the same activation ID to each document
published within a single top-level service. For example, suppose the processPO
service publishes a newCustomer document, a checkInventory document, and a confirmOrder
document. Because all three documents are published within the processPO service,
Integration Server assigns all three documents the same activation ID.
You can override the default behavior by assigning an activation ID to a document
manually. For example, in the pipeline, you can map a variable to the activation field of
the document. If you want to explicitly set a document’s activation ID, you must set it

before publishing the document. When publishing the document, the Integration Server
will not overwrite an explicitly set value for the activation field.
You need to set the activation ID for a document only when you want a trigger to
join together documents published by different services. If a trigger will join together
documents published within the same execution of a service, you do not need to set
the activation ID. Integration Server automatically assigns all the documents the same
activation ID."