Flow Service Pipeline Overlay seperate thread on Completion

Hello,
When I am in TN and I reprocess a document, it is published to IS. The trigger is set to retrieve the document, parse it, transform to a canonical format and retrieve extra values, then it passes all these values to a unified document handling flow service.

The problem is that if I reprocess a document and then reprocess a second or more documents, and after the completion of the first document, first pipeline of the first service “Overlays” over the pipeline of the next service to follow.

This pattern cascades through as long as one service thread is still active when the next is called. Also this only happens on the calling of the exact same flow service by the Trigger.

The overlay happens mid execution.

I had suspected that WM does a pipeline cache and restores it when first thread finishes.

I have done logging of the thread where it happens by doing snapshots along the way and can see information change mid execution.

There is no known way for me to try to restore the pipeline as any pointer would have been over written.

Thank you for any help.

Side Note : [{ Did you know that reprocess comes up as spelled wrong by the wmuser spell checker. }]

webMethods Integration Server
Version 6.0.1
Updates IS_6-0-1_SP2_Fix118
IS_6-0-1_SP2_Fix129
IS_6-0-1_SP2_Fix74
IS_6-0-1_SP2
TNS_6-0-1_Fix39

Build Number 425
SSL Strong (128-bit)

Java Version 1.3.0 (46.0)
Java Vendor IBM Corporation

OS Windows 2000
OS Platform x86
OS Version 5.2
Current User SYSTEM
Working Dir D:\Program Files\webMethods6\IntegrationServer

Hello,
I am using savePipelineToFile to help debug the transition time. I notice that when the change happens, to datastructures change there

<record> datatype

wm.b2b.edi:envelopeProcess -> Values
wm.b2b.edi:convertToValues -> EDIValues

They both start out as
com.wm.data.ISMemDataImpl
and are changed to
com.wm.util.Values

Again this change only happens in those threads executing after the first. The first thread’s values remain the same throughout execution.

Also, I have gone through various changes to the Triggers properties. I have set (currently and initially) the execute to be serial. I have tested with concurrent, large and small documentstore, different failure and timeout periods.

I do not want suggestions about the trigger as it executes perfectly. Sorry to sound hostile, I just do not want to bother on information I can’t and won’t use.

I am also not looking for a quick workaround as I could just easily save each data structure to disk and have a single thread cycle through. I do want to know that I can one day set things to “concurrent” and take full advantage of what should be offered.

Again Thank you.

Hello,
I may have solved the issue. I think it has to do with the dreaded caching. I had an internal service with “Cache” enabled, so when it is called, I get an entire old pipeline. It is weird because I call the service twice and the error only happens off the second call. Well back to work I go. Thank you.

A note, Please do not use cache if not needed and always use clearPipeline as the first statement to those you need. Old values are always restored on exit of the parent service unless they are over laid by cached values (I think).

Well, thank you everyone.