How can i prevent an orchestration from going to dehydrate
My orchestration subscribe message from BTS MsgDB, do few modification to xml and use request/response send port to send the message to external webserive via Wcf-basichttp. It update a table based on status in response. I notice that Orchestraton goes dehydrate for a sec or less before it complete, no failure or warning message during this dehydrate. I have delivery notificate = transmited in Req/Res port. I guess orch goes to dehydrate since it need to wait for response even though it gets the response very fast. Is there way to avoid orch going to dehydrate or let be active for 2min (sendport timeout is 2min) before it goes to dehydrate?

Can we do this in Hostinstance setting or some config?

Thank you for your help in advance,

Siv

August 28th, 2015 8:20pm

Hi,

Rehyderation and  dehyderation of Orchestration instance is much more necessary  in pub sub architecture on which BizTalk is build.

I would not suggest to change anything on this part. You are try changing  The MaxReceiveInterval from adm_service(BizTalk Management DB) but it may cause you race condition for messages published to the mesagebox .

You can also try creating multiple host instances for processing ,receiving and sending messages in/out of BizTalk .If your environment is taking much more time then try running messagebox viewer to see any inconsistency in biztalk databases

Thanks

Abhishek

Free Windows Admin Tool Kit Click here and download it now
August 28th, 2015 11:35pm

Hi

There are ways to modify the dehydration behavior, but it's not worth it for the trouble it can cause if not done judiciously. Why are you looking to prevent the dehydration? Are there strict latency requirements for the scenario?

Thanks
Arindam

August 29th, 2015 12:56am

Thank you for your reply Abhishek and Arindam,

we want our orchestration send 8 web request at a time. So we used maximum worker throat to 8 in Host Instance .NET CLR. What we observed is, 8 orchestrations are active at a time. However, these orch dehydrate for few sec and more orchestration become active to keep the 8 throats. As a result more requests are hitting the web service at a time. Is it possible to keep the orch active until it completes or for few sec?  This orche runs on its on host

Free Windows Admin Tool Kit Click here and download it now
August 29th, 2015 2:22am

You can increase the Minimum Threshold for Orchestration Throttling for your Host from the default of 1sec. But beware, this is potentially dangerous because this affects all orchestrations in that host and may lead to memory issues.

Maybe you can try and control the number of active Send Port instances using the Dispenser pattern - that's a much cleaner approach-

http://social.technet.microsoft.com/wiki/contents/articles/23924.biztalk-resource-dispenser-send-port-edition.aspx

August 29th, 2015 2:43am

You can increase the Minimum Threshold for Orchestration Throttling for your Host from the default of 1sec. But beware, this is potentially dangerous because this affects all orchestrations in that host and may lead to memory issues.

Maybe you can try and control the number of active Send Port instances using the Dispenser pattern - that's a much cleaner approach-

http://social.technet.microsoft.com/wiki/contents/articles/23924.biztalk-resource-dispenser-send-port-edition.aspx

Free Windows Admin Tool Kit Click here and download it now
August 29th, 2015 6:39am

You can increase the Minimum Threshold for Orchestration Throttling for your Host from the default of 1sec. But beware, this is potentially dangerous because this affects all orchestrations in that host and may lead to memory issues.

Maybe you can try and control the number of active Send Port instances using the Dispenser pattern - that's a much cleaner approach-

http://social.technet.microsoft.com/wiki/contents/articles/23924.biztalk-resource-dispenser-send-port-edition.aspx

August 29th, 2015 6:39am

You can increase the Minimum Threshold for Orchestration Throttling for your Host from the default of 1sec. But beware, this is potentially dangerous because this affects all orchestrations in that host and may lead to memory issues.

Maybe you can try and control the number of active Send Port instances using the Dispenser pattern - that's a much cleaner approach-

http://social.technet.microsoft.com/wiki/contents/articles/23924.biztalk-resource-dispenser-send-port-edition.aspx

Free Windows Admin Tool Kit Click here and download it now
August 29th, 2015 6:39am

You can increase the Minimum Threshold for Orchestration Throttling for your Host from the default of 1sec. But beware, this is potentially dangerous because this affects all orchestrations in that host and may lead to memory issues.

Maybe you can try and control the number of active Send Port instances using the Dispenser pattern - that's a much cleaner approach-

http://social.technet.microsoft.com/wiki/contents/articles/23924.biztalk-resource-dispenser-send-port-edition.aspx

August 29th, 2015 6:39am

You can increase the Minimum Threshold for Orchestration Throttling for your Host from the default of 1sec. But beware, this is potentially dangerous because this affects all orchestrations in that host and may lead to memory issues.

Maybe you can try and control the number of active Send Port instances using the Dispenser pattern - that's a much cleaner approach-

http://social.technet.microsoft.com/wiki/contents/articles/23924.biztalk-resource-dispenser-send-port-edition.aspx

Free Windows Admin Tool Kit Click here and download it now
August 29th, 2015 6:39am

My first bit of advice is don't worry about it.  Seriously.

You didn't describe any actual problem with this, just as a observation.  This is how BizTalk works.

Second, while you can adjust some settings, you likely won't see a measurable difference it at all.  Since there is a Persistence Point on the Send Port anyway, the Dehydration cycle is almost incidental.

So, unless you can prove a specific problem, such as not meeting an SLA, don't do anything.

August 29th, 2015 8:36am

Hi ,

There is no need to change Maximum Worker Threads to 8 (by default it is 100) .Let Biz Talk handle current threads .If you are changing the WT to a minimum number like 8 then there is always a case were multiple request are awaiting in  Queue for the processing .

You can try using maxconnection setting in BTSNTSvc.exe.config .

https://msdn.microsoft.com/en-us/library/ee290739%28BTS.10%29.aspx

Thanks

Abhishek

Free Windows Admin Tool Kit Click here and download it now
August 29th, 2015 10:44am

There is no need to change Maximum Worker Threads to 8 (by default it is 100) .Let Biz Talk handle current threads .If you are changing the WT to a minimum number like 8 then there is always a case were multiple request are awaiting in  Queue for the processing .

So, this should not be marked as a Proposed Answer.  This has nothing to do with the question asked.
August 29th, 2015 2:27pm

Hi ,

There is no need to change Maximum Worker Threads to 8 (by default it is 100) .Let Biz Talk handle current threads .If you are changing the WT to a minimum number like 8 then there is always a case were multiple request are awaiting in  Queue for the processing .

You can try using maxconnection setting in BTSNTSvc.exe.config .

https://msdn.microsoft.com/en-us/library/ee290739%28BTS.10%29.aspx

Thanks

Abhishek

Free Windows Admin Tool Kit Click here and download it now
August 29th, 2015 2:39pm

Hi ,

There is no need to change Maximum Worker Threads to 8 (by default it is 100) .Let Biz Talk handle current threads .If you are changing the WT to a minimum number like 8 then there is always a case were multiple request are awaiting in  Queue for the processing .

You can try using maxconnection setting in BTSNTSvc.exe.config .

https://msdn.microsoft.com/en-us/library/ee290739%28BTS.10%29.aspx

Thanks

Abhishek

August 29th, 2015 2:39pm

Hi ,

There is no need to change Maximum Worker Threads to 8 (by default it is 100) .Let Biz Talk handle current threads .If you are changing the WT to a minimum number like 8 then there is always a case were multiple request are awaiting in  Queue for the processing .

You can try using maxconnection setting in BTSNTSvc.exe.config .

https://msdn.microsoft.com/en-us/library/ee290739%28BTS.10%29.aspx

Thanks

Abhishek

Free Windows Admin Tool Kit Click here and download it now
August 29th, 2015 2:39pm

Hi ,

There is no need to change Maximum Worker Threads to 8 (by default it is 100) .Let Biz Talk handle current threads .If you are changing the WT to a minimum number like 8 then there is always a case were multiple request are awaiting in  Queue for the processing .

You can try using maxconnection setting in BTSNTSvc.exe.config .

https://msdn.microsoft.com/en-us/library/ee290739%28BTS.10%29.aspx

Thanks

Abhishek

August 29th, 2015 2:39pm

Thank you Abhishek,

I allready have separate host for orchs. I was sharing the send port host with others. I will create separate one for send port and check it.

Free Windows Admin Tool Kit Click here and download it now
August 30th, 2015 1:51pm

Thank you Guys, all of your advise are helping a lot.

Problem with my solution is, vender is complaining we are sending too many web connection call at a time. As you advise, i will check send port and max connection set up to see if i can bring down the num of connections. We have 4 BTS servers (total 32 cpu). It looks like vender's system is not that rich and cannot handle over 32 connection at atime. We dont want to stop hosts in some server to control the connection calls since we need load balance and not to over load one server than other.

August 30th, 2015 2:00pm

Hi WatNxt,

Can you please try with the below setting in the BizTalk confile btsntsvc.exe.config and btsntsvc64.exe.config? You can replace address="*" with the specific url of the vednor web service.

 <system.net>
    <connectionManagement>
      <add address="*" maxconnection="32" />
    </connectionManagement>
  </system.net> 

Cheers

Free Windows Admin Tool Kit Click here and download it now
August 30th, 2015 6:23pm

Problem with my solution is, vender is complaining we are sending too many web connection call at a time.

Hi WatNxt,

So, that's a completely different scenario and isn't related, BizTalk-wise, to you observed dehydration.

This is, unfortunately, a very common scenario.

The easiest solution is setting Ordered Delivery on the Send Port.  This will essentially serialize calls to the external app.  While that might be too slow, it will work.

Did you try maxWorkerThreads?  That will affect the outbound connections as well, although not as granularly as you may need.

August 30th, 2015 7:31pm

Yes, i used Maxworkerthreads and ordered delivery on send port. I see below issues.

1. i used same (1) maxworkerthreads on Orchestration host and send port host (without order delivery). Soft req/res port has Delivery Notification = Transmitted in orchestration. I see alot of warning messages in application event view complains not enough threads to transmit the request. Event log get filled with below..and hard for support team if they need event log for other failurs.

The adapter failed to transmit message going to send port "****" with URL "******". It will be retransmitted after the retry interval specified for this Send Port. Details:"System.InvalidOperationException: There were not enough free threads in the ThreadPool to complete the operation.

2. If i use above setting with Order delivery ON on send port then i see request are going from only one server. I guess because it is singleton now. We are running 3 servers and want to distribute the load across the servers. Since send port stay active forever in this case, it looks like it will use same server to send/receive web request until it got terminated. Since servers are used by other apps...this setting may overload one server where send port runs. If send port become active on receiving requst and goes away after completing the pool, then it may choose different server based on the available resource. But it is active forever on one server and it is going to use same server here. doesnt look good. is there any way to handle this?

Free Windows Admin Tool Kit Click here and download it now
September 1st, 2015 8:43am

The most correct BizTalk way to achieve what you're looking for is with a Resource Dispense Pattern.

This Wiki Article describes a Send Port implementation: http://social.technet.microsoft.com/wiki/contents/articles/23924.biztalk-resource-dispenser-send-port-edition.aspx

September 1st, 2015 10:17am

Thank you John, we are going to use .net app to handle send part so we can easly control thread and load balance.

Thank you so much for your help.

Free Windows Admin Tool Kit Click here and download it now
September 2nd, 2015 1:18pm

Please trust us, you really don't need to do that, meaning the out-of-band solution.

All the these issues have been addressed many times.

If you have any specific issues, feel free to open a new thread.

September 2nd, 2015 2:25pm

Thank you John, we are going to use .net app to handle send part so we can easly control thread and load balance.

Thank you so much for your help.

Free Windows Admin Tool Kit Click here and download it now
September 2nd, 2015 5:11pm

Thank you John, we are going to use .net app to handle send part so we can easly control thread and load balance.

Thank you so much for your help.

September 2nd, 2015 5:11pm

Thank you John, we are going to use .net app to handle send part so we can easly control thread and load balance.

Thank you so much for your help.

Free Windows Admin Tool Kit Click here and download it now
September 2nd, 2015 5:11pm

Thank you John, we are going to use .net app to handle send part so we can easly control thread and load balance.

Thank you so much for your help.

September 2nd, 2015 5:11pm

This topic is archived. No further replies will be accepted.

Other recent topics Other recent topics