Random unsuccessful Correlation for process

My Case:
IDOCS are posted to webmethods TN. This kicks off process model and details are sent out to customer in the particular format required (cXML/EDI).
For some requests, the 3rd step in process model is failing (failure to establish correlation). This is random behaviour, happens only to some requests.

Can anybody help me in finding reason for this random behaviour?

Error message I got:

Correlation was unsuccessful for process with ConversationID=0000000018708582 and ProcessInstanceID = 9a3ae5400de011dea3d6e84df847d188 com.wm.lang.flow.FlowException: Correlation was unsuccessful for process with ConversationID=0000000018708582 and ProcessInstanceID = 9a3ae5400de011dea3d6e84df847d188 at com.wm.lang.flow.FlowExit.getFailure(FlowExit.java:250) at com.wm.lang.flow.FlowState.willExit(FlowState.java:268) at com.wm.lang.flow.FlowSequence.invoke(FlowSequence.java:196) at com.wm.lang.flow.FlowRoot.invoke(FlowRoot.java:258) at com.wm.lang.flow.FlowState.invokeNode(FlowState.java:581) at com.wm.lang.flow.FlowState.step

No quick answers, and correlations by their nature aren’t that easy to diagnose - you’ll probably find that the cause of the failure you are seeing is either related to the data itself, some timing issue, or an error in the correlation service.

In terms of hunting down where the problem is, I’d suggest these approaches :

  1. On the IS (and I’m assuming a single instance IS - just do updates on both sides or repeat until you see logs on the one IS) increase the server logging to trace on the Service facility so that you get a log of each time a service is invoked. You will be able to see whether your correlation service is actually running - this is a config change so no code changes.

  2. Obvious choice, but check for any service related errors in the server log. These might appear well before the error you are seeing below.

  3. If you can temporarily modify the correlation service then change the audit to log the service on all occasions, including the pipeline. You will then be able to view the execution data in the service audit database (use MWS).

  4. Other modifications to make to the correlation service would be to savePipelineToFile, and then use Developer so you can reload the pipeline and test your correlation service; add debuggLog steps to temporarily log detailed operation (remember to remove them prior to use in production).

Once you have logs and pipeline data records for the good and bad occurrences, analyse and compare for differences in behaviour.

Good luck,
Rob.

FYI the IS log setting you need is to set facility 0014 to Trace in order to see service invocations being logged.