Re: Infinite output messages for one input message
- From: Tony Hedge <TonyHedge@xxxxxxxxxxxxxxxxxxxxxxxxx>
- Date: Tue, 17 Apr 2007 08:34:03 -0700
Hi Dave,
Your logic makes a lot of sense and it sounds like that is what is
happening. I will try to map the opchestration directly to the receive port
as opposed to the message box. I was having some difficulty doing this
earlier because I want my orchestration to work with the xml file from the
result of the map, which is MainOut.xml. Mapping to the receive port means
that my orchestration will receive MainIn.xml. Is that right?
Thanks... Hedge
"Dave" wrote:
On Apr 17, 4:04 pm, Tony Hedge <TonyHe...@xxxxxxxxxxxxxxxxxxxxxxxxx>.
wrote:
Hello all,
Any help at all would be greatly appreciated, I think the following is
simple to follow. I'm using BizTalk 2006...
I have a schema that produces the following xml:
<MainIn>
<InA>
<InAElement1></InAElement1>
<InAElement2></InAElement2>
</InInA>
<InB>
<InBElement1></InBElement1>
<InBElement2></InBElement2>
</InB>
.....
<InF>
<InFElement1></InFElement1>
<InFElement2></InFElement2>
</InF>
</MainIn>
I have another schema that produces the following xml:
<MainOut>
<OutElement1></OutElement1>
<OutElement2></OutElement2>
<OutElement3></OutElement3>
<OutElement4></OutElement4>
</MainOut>
I have a map with MainIn as the source schema and MainOut as the destination
schema. I have reduced mappings to the following two direct node mappings for
testing:
InAElement1 to OutElement1
InBElement1 to OutElement2
I have a receive port tied to this map, so that when I drop a xml file
matching schema MainIn.xsd it will put an MainOut.xml file in the message
box. I then have a very simple orchestration that receives MainOut.xml files
from the message box and send it out to a send port. Sounds pretty simple and
it *almost* works...
However when I drop a MainIn.xml file with one 'record', I get back infinite
MainOut.xml files in the folder tied to the send port!!! File after file is
being generated. What is causing one input xml to produce so many messages???
The situation is as simple as I've described. I have no functoids in my map,
and only a receive port, receive message shape, send message shape, and send
port in my orchestration. This is driving me crazy!! A client is going to
be sending us xml files almost identical to MainIn.xsd, and I have to output
almost identical to MainOut.xml so I need to know what's causing this
behavior. Thanks in advance for any help. :-)
Tony Hedge
You might try binding your orchestration to your receive port..
It seems to me that the map in your receive port is creating a message
of type MainOut, and the presence of this in your messagebox is
causing the orchestration to activate. Your orchestration (I'm
guessing!) is then publishing this message to the messagebox to be
picked up by the send port. However, this message is also of type
MainOut, thereby causing another orchestration to activate, publish
another message etc. etc.
Couple of solutions:
1. Bind the receive port to the orchestration, ditto the sent port
2. Do the mapping inside the orchestration i.e. your orchestration
activates on receipt of a MainIn and creates a MainOut
From the way you describe your solution do you even need anorchestration? You could just do the transform as you describe it in
your receive port and then use a suitably filtered send port to
transmit the message
Hope this helps!
Dave
- Follow-Ups:
- References:
- Prev by Date: Re: Infinite output messages for one input message
- Next by Date: BizTalk 2006 :: Automatically include CDATA
- Previous by thread: Re: Infinite output messages for one input message
- Next by thread: Re: Infinite output messages for one input message
- Index(es):
Relevant Pages
|