none
Unable to resume suspended instance in Biztalk RRS feed

  • Question

  • Hello All,

    I am having an orchestration as service which get called wherein I get requests and from that message I do some processing and finally output file get written to a server by calling external Web service.

    2-3 days back the disk space of server got down due to which messages did not get written to that server and got suspended, however today when I am trying resume failed instance it is giving me routing failure as no subscriber found.

    I understand this error but could not find anything wrong, is there anything I am missing.

    Also is there any timeout of out of retry things that Biztalk has limitation of ?

    Thank you in advance

    Monday, January 13, 2020 12:11 PM

All replies

  • Without a lot more detail about the Orchestration and where it failed, we would only be guessing as to why.  Was the disk space on the DB or a file server?

    Can you re-trigger the Orchestration from the start with the same message?  

    Monday, January 13, 2020 7:47 PM
  • Thank you for response.

    So after all the processing in orchestration there is a send port (SOAP) which call an external web service and writes final output messages to some other server on its C drive. so the C drive disk space was full. Orchestration has created files there but with 0Kb due to disk space issue.

    Now the C drive has enough space and after 2-3 days of failure I was trying to resume those instances but could not resubmit them as I am getting routing failure as no subscriber found.

    I tried but could not retrigger/resume them.

    1\ is there any timeout of out of retry things that Biztalk has limitation of ?

    Tuesday, January 14, 2020 6:45 AM
  • You are not telling us WHERE and WHAT was suspended.  Was it the Orchestration, was it the message going to the file location, was it a Request/Response two way send port?   

    It does not sound like it was a FILE send port, as those can usually be resumed without issue.   

    If it was a Request/Reponse send port, and it failed in the response, and the Orchestration has exited, then yes, you cannot resume the Suspended send port messages as the Orchestration is no longer listening for the response, in which case you will get a routing failure.

    Tuesday, January 14, 2020 8:10 PM
  • Hi Nilesh,

    Timeouts and retries are configured on send ports. This can be viewed under it's properties.

    If no suberibers are found, your message will not be resumable.

    Side note: If you have SCOM, consider adding the BizTalk Management Pack. This includes disk space alerts.

    Thanks,

    Samad Khan


    samadkhan

    Thursday, January 16, 2020 8:23 PM
  • This is a common problem with using two-way send ports.  What has happened is that your Orchestration has Sent a message, which has been processed by the adapter.  The destination service has had an error and thrown a fault or something back - this is a response, just maybe not the one you want.

    Your Orchestration does not handle this, as it's expecting a certain (successful) response from the service you just called.  Everything suspends.

    When you resume your Orchestration, it resumes from the last persistence point, which is the receive - but that's not what you want, you want it to resume from the send to resend the message.

    If you try and resume the messaging instance, you get an error because that has already delivered to the orchestration, so that's no longer got a subscription for the send port, thus there is nowhere for that to go.

    You've hit a dead end, and there is no easy way to recover from this.

    In order to resolve this in the future, you can use a retry pattern.  Put your send and receive in a scope with a catch-all exception handler on it, and put that in a loop.  If the Send Port errors, it'll get handled by your exception handler (a simple suspend generally works here).  You can then resume the orchestration safely and it'll setup a new send.  Make sure you remember to break out of your loop once you've received successfully.


    If this is helpful or answers your question - please mark accordingly.
    Because I get points for it which gives my life purpose (also, it helps other people find answers quickly)
    Read my articles on: BizTalk | .NET

    • Proposed as answer by Bobby Biztalk Tuesday, January 28, 2020 6:27 PM
    Monday, January 20, 2020 10:41 AM