Can a very large schema cause an OutOfMemory exception?
Greetings,
I have a BizTalk project that must process an input message originating in Lotus Notes. The Lotus Notes schema is approximately 330K. When I try to build my BizTalk project I get the following error after 15 minutes or so:
Build failed. Compiler for file type '*.btm' failed. Exception of type 'System.OutOfMemoryException' was thrown.
The schema is the "offical" schema for Lotus Notes and not something that I created myself. My workstation has 4GB of memory. I observe that the devenv.exe process maxes out at approximately 1.25GB about 10 minutes before the build fails.
Is BizTalk unable to process a schema of this size? Can someone suggest a workaround to make this work?
Thanks,
BCB
This is not that large a schema at all. I have dealth with much larger ones (from SAP etc).
This is a compile time error. Most likely the schema is invalid or bad - or more likely nested very deep.
Did you check your %biztalk_install%\Developer Tools\Mapper Extensions folder for unnecessary or bad functoids dlls?
The folder you mentioned contains only one dll - Microsoft.BizTalk.CrossReferencingFunctoids.dll - which I assume is OK. I used the Validate Schema option and got an OK message. The schema is supposed to be the vanilla schema from IBM so I imagine it is structurally sound.
The schema may fall into the "nested very deep" category that you mentioned in your response. How many levels would you consider to be dangerously deep? And is there any way to trouble shoot a case like this where the build fails and the schema is so large?
Thanks for your response.
The answer is "Yes", as Microsoft acknowledges. I was able to overcome this problem by hand-editing my map file (.btm) with Notepad and changing the value of the GenerateDefaultFixedNodes attribute to "No", as shown below.
<mapsource Name="BizTalk Map" BizTalkServerMapperTool_Version="2.0" Version="2" XRange="100" YRange="420" OmitXmlDeclaration="Yes" TreatElementsAsRecords="No" OptimizeValueMapping="No" GenerateDefaultFixedNodes="No" CopyPIs="No" method="xml" xmlVersion="1.0" IgnoreNamespacesForLinks="Yes">
It is not possible to change this attribute value in Visual Studio.
Link to the article suggesting this approach:
http://www.kbalertz.com/917839/experience.exceptions.Visual.Studio.responding.validate.BizTalk.Server.aspx