How to avoid zombie in biztalk?
Hi Biztalk expert!
I need find out the solution for biztalk zombie (very urgent), I have read many article about zombies, but I can't resolve problem.
I'm finding the approach to change the orchestration ( not use external tool/script as zombie management tool or WMI script).
below image is my orchestration.

any idea is good appreciated! If you can change this orchestration to resolve zombie, please give me screen shot.
sorry if my question duplicate in this forum.
Thanks in advance.
February 24th, 2014 7:44am
Hi Daniel,
Increasing the timespan in Delay shape should help upto some extent.
February 24th, 2014 8:00am
If this is related to the other thread and your business scenario is the same, you need to remove the Suspend Shape.
February 24th, 2014 8:36am
Hi Daniel,
you can refer this thread ,it will help you to understand the zombie issues .
http://www.biztalkgurus.com/biztalk_server/biztalk_2006/f/10/t/3898.aspx
Thanks,
Chandra Kumar
February 24th, 2014 9:54am
Maybe the queues would help?
It works if you process messages individually and don't have to compound some date from one message to another (like creating batch or calculate some aggregates like message counter or some amount from the message sequence). Seems your processing could be implemented
without orchestration at all, only with pipelines and maps on ports
For example if you need only an ordered delivery.
The possible design is:
-
Your messages go to the MSMQ queue (or ServiceBus Queue)
-
Send port(s) consumes messages from queue, this port is with ordered delivery on. There is no convoy orchestration and no orchestrations at all.
In this design you avoid convoy completely hence avoid the zombie problem and all problems around the singleton orchestration (the orchestration status, the complexity of the error handling).
February 24th, 2014 10:58am
Thanks Maheshumar,
I understand, if I am increasing the time in delay shape should help
up to some extent, but
should I increase to how many minutes/hours/days?
I assume the time span in delay shape increase to 4 hours, the delay shape
waits 4 hours for
receiving any message, but haven't any message came in this time, when any messages come
at the same time with
an expression exit loop, which messages will be lost!
February 24th, 2014 9:22pm
Hi Boatseller,
If I take out the suspend shape, that will be processed next message when have one message error, but not solve the zombie problem.
February 24th, 2014 9:27pm
Thanks Chandra Kumar,
I have read the thread, which you are
provided, It's
taken me understand about zombie, but haven't the solution to resolve zombie.
February 24th, 2014 9:30pm
Hi Leonid,
Do you mean is
1. Receive port (Rcv1) with Wcf-SQL adapter will execute the store procedure and generate the xml file (SQL
MSG message)
2. Send port with filter BTS. ReceivePortName = "Rcv1" and MSMQ adapter to send messages to MSMQ queue. 3. In orchestration will receive
messages from
the MSMQ queue with a orchestration instance per a message (Multiple orchestration instance and not use
a sequential convoy - loop)
Let me know if I wrong you mean!
February 24th, 2014 9:45pm
Hi Daniel,
From my experience, zombie messages can't be avoided completely.
But as said earlier if we know the probable timespan during which we will receive messages then we can have our delay shape wait for that amount of time.
Say I expect messages to be received in 1 hour then in delay shape I would add timespan like
--> 1 hour + 10 minutes where 10 minutes is extra time just to avoid the zombie message.
February 25th, 2014 12:42am
Hi Maheshkumar,
Fromyou suggest, if
MSG SQL generated by
a store procedure every 5 minutes, that
means I expect message to be received about 5 minutes.
Should I set the timespan value is 5 + 10 = 15 minutes?
If so, the delay shape is fine because I'm
setting the time span up to 30 minutes.
Regards,
February 25th, 2014 2:02am