A general design pattern we use for applications that generate statements from data files: A statement generator class library is created. It has a couple of properties to set input and output file names, and then a method to generate all of the statements.
For testing we create an on-demand windows application which instances, and calls the library via CLR. In production we have scripts which instance the component and calls the library via COM. We are making perhaps 4 property value sets, and then
making 1 method call. We don't call our generate method for each statement created, but rather, one call to generate all of the statements.
We have several applications generated in this pattern. A few of them generate perhaps 100,000 to 250,000 pages of statements in the generate call. We create our own PCL files, directly using SYSTEM.IO.
NEVER when run interactively, invoking our library via CLR do we ever have any problem.
When run in production, these applications will fail after about 1 hour wall time with System.OutOfMemoryException.
Does .NET runtime memory management (GC) operate DIFFERENTLY when a class library is invoked via a COM interface, as opposed to a CLR interface? If not, then what other things to consider?
VS 2008, VB.net, Framework 3.5
Production computer is running Windows Server 2003, releas
View Complete Post