The process I'm currently working on has some memory issues. I'm building emails from markup. These emails contain dynamically sized tables (more data = bigger table to email). The table cannot be an attachment.
Unfortunately this means that I have run into some System.OutOfMemoryException issues.
I have tracked it to a calculate stage that stiches various parts of the email together.
It's basicaly a laundry list of [variable] & [variable2] & [variable3] etc...
The problem is that as the process runs, and at this point more than any other, the memory consumed is not disposed after It's done being used.
All of my data stages have the "Reset to Intiail Value whenever this page runs." checkbox checked.
The contents of the calculate stage's output ends up being put into a queue.
The specific exception thrown is:
Exception occurred - System.OutOfMemoryException: Exception of type 'System.OutOfMemoryException' was thrown.
at System.String.Concat(String str0, String str1)
at BluePrism.AutomateProcessCore.clsProcessOperators.DoOp_Concatenation(clsProcessValue objVal1, clsProcessValue objVal2, clsProcessValue& objRes, Boolean bValidate, String& sErr)
at BluePrism.AutomateProcessCore.clsProcessOperators.DoOperation (String sOp, clsProcessValue val1, clsProcessValue val2, clsProcessValue& objRes, Boolean bValidate, String& sErr)
I run into this exception not in just running the stage, but evaluating it as well.
It would appear that evaluating the expression consumes memory that is not disposed of after evaluation (otherwise i imagine only running the stage would cause an exception).
The stage's evaluation (clicking "Test") doesn't immediately cause the exception, but does so eventually with every run through it takes up a little more until one of the many happen to hit the memory ceiling.
The test case that first got me that exception from evaluating in the calculation stage had a output of ~1.9 million characters (markup can add up quickly).
I am on blue prism version 4.2.43.0
Am I doing something wrong that is causing this, or is this something I'll need to maneuver around?
p.s. the memory is not released when process studio is closed, only when all of BP is closed.