We have created a process model that retrieves an XML file from an external system and starts a new process instance using the "Start Process" smart service. The second process instance then extracts data from the XML file and stores it in the database.
Despite deleting the process instances after completion, we are experiencing increased memory utilization over time. The memory is not being released from RAM, even after the instances are deleted.
We need to understand the mechanism Appian uses to release memory from deleted instances. Is there a specific Appian process or configuration that ensures memory is properly freed up? If not, are there any additional steps or practices we should follow to manage and optimize memory usage effectively?
Discussion posts and replies are publicly visible
When storing larger volumes of text in process variables, there is a separate memory just for this. This memory is freed by design only on a restart. The only advice I can give is to keep that XML out of process memory as good as possible.
Do you have any specific advice on how much data we can store in process variables? Additionally, would using activity class parameters in nodes instead of process variables make a difference?
Not sure how you would want to replace a PV with an AC. They have a completely different purpose. In general, try to move the data into a file or the DB ASAP. For incoming XML, a file could be a option. For further processing, use the xpathdocument() function to directly extract sections with loading the XML into process memory.
If a process model initially consumes around 30,000+ AMU during its execution and then reduces to 3 AMU upon completion, will the 30,000+ AMU memory be released from RAM once the process instance is completed?