Maintenance
This feature does the following:
1) It saves all settings, task data and schedule data.
2) Stops the engine server.
3) Stops any active schedules in the old instance of the engine.
4) Re-launches a new instance of the engine.
5) The old instance of the engine will shutdown after currently running tasks
complete.
NOTE: To wait for running tasks to complete before
old instance of engine shuts down, use the engine menu - engine settings menu -
Startup/ Shutdown tab. Select the option to wait for all running tasks to
complete before shutting down engine.
You can create and schedule a Maintenance task weekly/monthly to free memory, if you notice that the memory consumption by the Engine is high. Please create only a single Maintenance task. Make sure that no other task is scheduled, when this task has a scheduled run. Leave at least 1 minute idle time before this task. Generally, you need to run this task only on Windows and Mac OS. This Maintenance task is also useful, if you are running tasks very frequently (every few seconds), and running out of memory. In this case, you can schedule a Maintenance task more frequently.
On Solaris and Linux, we have run tasks every 10 seconds for 1 month continuously, without running out of memory, and without the engine shutting down. The memory usage, during this accelerated reliability testing, stabilized at a peak of ~50 MB, for the entire 1 month testing period. Normally, the memory usage should cycle up and down between 15-30 MB.
About Memory Usage
This program does not handle any of the low-level memory allocation and release. Memory allocation and release is done by Java. Java prevents the programmer, from accessing all low-level memory handling routines, making memory safe. This prevents memory leaks and corruption, within the program, or in other running applications. This prevents serious problems, that can occur with C or C++ programs, like memory access violations, page faults, illegal operations, system crashes etc.
Java has automatic memory recycling, called Garbage Collection. Hence, you should see the memory usage, cycle up and down between 15-30 MB. However, Java tends to consume lots of memory, and may not release it efficiently on some Windows and Mac OS systems. The default maximum memory allowable is 64-128 MB. Sometimes, Java will keep requesting more memory, from the operating system. Java may shut down automatically, when the maximum allowable memory (64MB) is exceeded. This is due to incomplete garbage collection, by the Java machine, on certain operating systems.