.comment-link {margin-left:.6em;}

Ben Cops

Thursday, January 13, 2005

Out of Memory Errors on Enlisting Orchestrations

[Note - this issue has now been addressed]

Having added a number of orchestrations to my orchestration project, I started getting a variety of out of memory errors when enlisting orchestrations using WMI:

"Exception of type System.OutOfMemoryException was thrown.(HRESULT: 80131600)."

"External component has thrown an exception.(HRESULT: 80131600).

BizTalk Server cannot access SQL server. This could be due to
one of the following reasons:
1. Access permissions have been denied to the current user. ..."

"An SEHException exception occurred while the XLANG/s runtime enlisted a
service.
Error message:External component has thrown an exception.
Call stack: at Microsoft.BizTalk.MetaDataOM.ICLRType.GetFields(UInt32
dwBindingFlags)..."


I applied Lee Graber's suggestion of increasing the amount of memory available to WMI using the following script:

var locator = WScript.CreateObject ("WbemScripting.SWbemLocator");
var wmi = locator.ConnectServer ("", "root");
var quota = wmi.Get ("__providerhostquotaconfiguration=@");
quota.MemoryPerHost = 384*1024*1024;


But this just gave me GPF errors gpf faults from wmiprvse.exe.

Finally, I found splitting the orchestrations into tiers, in seperate projects greatly lessened the problem as it decreases the amount of memory required to enlist the orchestrations in an assembly - the problems still occured but far less frequently. still, wmiprvse is using hundreds of megabytes of RAM to enlist an orchestration what is it doing?

2 Comments:

  • http://www.insuranceapropos.com/
    Wow just happend to stumble here and thought I should say Go Blog! heya.

    By Anonymous Anonymous, at 2:54 pm  

  • Took the VbScript from here an tweaked it a bit to make it work


    Set locator = WScript.CreateObject ("WbemScripting.SWbemLocator")
    Set wmi = locator.ConnectServer ("", "root")
    Set quota = wmi.Get ("__providerhostquotaconfiguration=@")

    Wscript.Echo quota.MemoryPerHost
    quota.MemoryPerHost = 1717986918 ' 1.6*1024*1024*1024 = 1717986918.4 1.6 GB since in 2GB the WMI crashes
    wmi.Put(quota)

    Dekel Israeli

    By Anonymous Anonymous, at 2:45 pm  

Post a Comment

<< Home