Terminating an orchestration instance takes very long time
I recently faced an issue with the termination of one of the long running orchestration on my BizTalk server. I had one orchestration instance which was running for a long time – using high CPU. When I tried to terminate it, it would not terminate. When I checked the status for that instance, it showed as Active and Terminate as pending job. It stayed in the same state for the next 15 hours.
Let me explain the cause of the issue over here. When you are trying to process a large message through an orchestration and in between you try to terminate the orchestration, there is a lot that the orchestration has to do before it terminates. The state of the orchestration is such that it has to persist the data and there are a lot of pending operations which the orchestration has to finish before it can do a terminate action. That why it stays in the Active and Terminate as pending job which means that it is still active and finishing its pending jobs before it can terminate itself.
Now in case where you have to terminate the orchestration immediately, you can use the hard termination option which is provided in the terminator tool.
This tool is freely available at the below MSDN site. https://www.microsoft.com/en-us/download/details.aspx?id=2846
One of the primary purposes behind creating the BizTalk Terminator tool was to allow users the ability to easily resolve many of the common database integrity issues identified by the BizTalk MsgBoxViewer tool. I would recommend you to check out the documentation of this tool as it takes care a lot of database related issue for BizTalk.
Now let me demonstrate a typical hard terminate scenario over here:
1. You have a long running instance which I have to hard terminate. That instance would still be in an Active state. Note down the instance id of that instance. You can check the instance id of an active instance by double clicking the instance.
2. Start the terminator application by running it as admin. Provider the database server name and the management db name. Also make sure your BizTalk databases are backed up, all host instances are stopped and SQL agent jobs are stopped.
3. Click on Connect. Click on the delete button after you get connected.
4. Select Terminator Single Instance (Hard Termination) option from the above drop down list and go to the parameters tab.
5. Specify the instance id in the first parameter. And click on execute. Your instance would get terminated.
I hope this helps!!!
Written by
Yakshit Gohel
Reviewed by
Chirag Pavecha
Microsoft India GTSC