How to avoid zombie in biztalk? RRS feed

  • Question

  • 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.

    Monday, February 24, 2014 12:42 PM

All replies

  • Hi Daniel,

    Increasing the timespan in Delay shape should help upto some extent.

    Maheshkumar S Tiwari|User Page|Blog|BizTalk Server : How Map Works on Port Level

    Monday, February 24, 2014 12:58 PM
  • If this is related to the other thread and your business scenario is the same, you need to remove the Suspend Shape.

    Monday, February 24, 2014 1:33 PM
  • Hi Daniel,

    you can refer this thread ,it will help you to understand the zombie issues .


    Chandra Kumar


    Monday, February 24, 2014 2:51 PM
  • 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:

    1. Your messages go to the MSMQ queue (or ServiceBus Queue)
    2. 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).

    Leonid Ganeline [BizTalk MVP] <a href="">BizTalk Development Architecture</a>

    • Proposed as answer by Chandra Kumar Monday, February 24, 2014 5:33 PM
    Monday, February 24, 2014 3:55 PM
  • 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!

    Tuesday, February 25, 2014 2:20 AM
  • 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.

    Tuesday, February 25, 2014 2:24 AM
  • 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.

    Tuesday, February 25, 2014 2:28 AM
  • 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!

    Tuesday, February 25, 2014 2:43 AM
  • 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.

    Maheshkumar S Tiwari|User Page|Blog|BizTalk Server : How Map Works on Port Level

    Tuesday, February 25, 2014 5:39 AM
  • 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.


    Tuesday, February 25, 2014 7:00 AM