Publish and Wait Step is misbehaving...


I have an urgent problem. My publish and wait step in Integration Component A sends a document to another integration component B. In that integration depending on an operation it will either of 2 documents.

Integration Component A only waits for one of them with a timeout. The problem is that when B sends the other document, A still continues processing upon receiving it (instead of timing out). Is this the right behaviour…?

Please help …

Your scenario isn’t very clear. Let me see if I’m understanding it properly. Integration A sends some kind of request to Integration B and waits for a reply. You say there are two documents that can be sent by Integration B. Are you expecting to get doc type 1 OR doc type 2, or doc type 1 AND doc type 2?

In either case, the easiest solution is to create one document type that can contain both types of information, with a flag indicating which type (possibly both) is represented in a particular document. Integration B can then always return the same document type, and you can handle the result in Integration A based on the flag.

hi thanks for your reply. sorry if i wasn’t clear. Integration component A is waiting for Doc1. it doesn’t wait for Doc2. (Doc1 denotes success and Doc2 denotes failure). I want integration component A to continue only when integration component B is successful (ie. it receives Doc1). If integration component B fails, I want integration component A to timeout.

however, when integration component B sends Doc2, integration component A still continues instead of timing out. It somehow senses that it has received a reply albeit the wrong one :frowning:

I suspect that as long as integration component B sends something back, integration component A will continue as it senses it has received a reply and continue, ie it will not timeout. Is this correct?

hi…after much investigating, i found out the cause of the problem.

it seems that one of the document that IC B sends out is corrupt.

As you know:

IC B sends out 2 documents - Doc1 (Success) OR Doc2 (Fail).

IC A waits for Doc1 (Success).

The problem is that even if IC B sends Doc2, IC A will think it has received a reply.

What I did is to recreate another document Doc3 with the same fields as Doc2 and make IC B to publish that new Doc3 instead of Doc2 and now it works!!

It seems that Doc2 is corrupt. Is this possible? If so, how do I check for such cases? Is there any utility I can use? I am worried if I will face with such problems again coz it is really long process debugging for such errors. (took me almost 2 days) :frowning: