Q:

Is restarting Biztalk host instance as a daily schedule job a best practice?

I'm a BizTalk newbie, and recently ran into some issue where the biztalk orchestration get stuck and i'm forced to restart host instance to get the message processing again.
What i found weird is by doing a test, i can see that the biztalk host instance in task manager takes up a lot of memory and doesn't release them even after the orchestration goes into dehydrated mode.
Is it due to some bad programming that i'm doing in my biztalk orchestration?
FYI my orchestration uses a utility DLL that calls WCF to retrieve data from SQL Server 2008 R2.
Orchestration are programmed with a timer utility to exit after four hours of non operation.
Setup: FYI, i'm using biztalk 2009, in windows server 2008 r2, 24GB of memory, intel xeon processor.
Updates:
Well you guys are right, as expected!
Restarting the host instances doesn't really help with the issue and as of now i still don't have any idea what's wrong with it.
I've did a debug diagnostic run to get the memory dump and i believe the memory is being consumed by the schemas and other parts of the biztalk application so i think it's probably fine.
I did stumble upon a long list of cumulative updates and trying to see which one that i need to install to resolve this issue.
Thanks!

A:

Performing all of your Wcf and SQL calls inside .Net helper code is definitely not best practice, and neither is regularly re-starting your host instances.
Is there any way you can re-factor your code to use the out-of-the-box adapters?  Failing that, try using a memory profiler to see where your memory leak lies.

A:

I wouldn't think that Biztalk needs restarting daily.
I would ensure that all resources in your DLL are cleaned up/disposed appropriately. And then do some measurments in test to see if it's not your code that's putting load on the server.

