Automatically Deleting Old Processes and Chains
The keep clause of a process definition can automate process deletion. The author of the process definition can set the keep clause to the desired number of processes or the maximum age of processes. If the number of processes is set, this number can be counted per owner, per key or overall for the system. If you alter the keep clause of an existing process definition with existing processes, then the conditions under which the existing processes are kept is not changed; the keep clause will only affect future processes.
Process Deletion
Processes are not deleted immediately, but deleted by system processes that run according to a submit frame every 15 minutes, by default. The processes information in the central Redwood Server is deleted by System_ProcessKeepClauses processes, the output files are removed by System_DeleteJobFiles processes. These are maintenance processes that run in the background and are not displayed in the default All (non-maintenance) processes filter. If you need to monitor these processes, you need to use the Maintenance (background) processes filter. These process definitions run according to the built-in submit frames System_ProcessKeepClausesSubmitFrame and System_DeleteJobFilesSubmitFrame, you can change them to modify the interval at which the processes run.
Keep Force
When you enable Keep Force for a process which has a parent, the process will be kept according to its keep clause if the keep clause of its parent is shorter. When the parent of a process with Keep Force has been deleted, the process will no longer be considered as having had a parent. If Keep Force is false, which is the default, then processes that have a parent will not be deleted according to their own keep clause, but to that of their parent. Keep Force has no effect on manually deleting a process, that is, when you delete the parent, all child processes will always be deleted as well. Keep Force also has no effect on processes which have a shorter keep clause than their parent.
Maximum Age of Processes
If you set a maximum age for a process, the system will fill in an expiration time stamp for the process when it finishes. For example, if the keep clause is 1 day and the process finishes on 12 October at 11:02, then the expiration time stamp is set to 13 October at 11:02. When you edit the keep clause on the process definition, the changes affect all processes of the process definition almost immediately.
Maximum Number of Processes
If you set a maximum number of finished processes, the system will keep track of the numbers of processes per script. If you specify a number for the entire system, then an overall count is calculated and compared against the maximum. If you specify a number per user, then only the processes ran for the user are compared to the set value. If you specify a number per key field, then the processes with the same values for the parameters that are part of the primary key are considered. For example, if you run a process with a particular parameter P_COMPANY_ID
which is set to be a key parameter, and the keep clause is 1 per key, then a run with P_COMPANY_ID
set to 1 will not be deleted until another run with P_COMPANY_ID
set to 1 is finished.
Keeping Processes Indefinitely
This is the most trivial keep strategy and should only be used when you have other strategies in place for process deletion, such as the Active Archive module. The difference between this keep clause setting and the default behavior is that processes with this keep clause are not counted towards the ratio of processes without a keep clause; see the Retention Warning section below.
Partition-wide and System-wide Keep Clause
You can set partition-wide and system-wide keep clause defaults by creating or editing <Partition of Process Definition>.System_Defaults_Partition
and/or GLOBAL.System_Defaults_System
. See Controlling Global and Partition Restart Behavior for instructions on how to create the process definition.
DefaultKeepStatus Registry Key
Processes that reach one of statuses defined by the ScriptKeepStatus are excluded from the keep clause of process definitions. These processes are kept indefinitely.
This can be set with the following registry entry:
/configuration/DefaultKeepStatus
If this registry entry is not set, processes in all final statuses adhere to the keep clause. The registry entry takes a succession of status codes, note that no spaces, commas or semi-colons should be used; the order is not relevant.
Status codes for final status
A
- CanceledC
- CompletedE
- ErrorK
- KilledU
- Unknown
Example value: KAUE
Keep Processes In Status
The Keep Processes In Status is used to keep processes in other statuses for another duration.
For example, you need keep processes in status A,E,K,U
for 15 days, to give you time to troubleshoot any issues, processes in status C
(Completed) are to be kept 12 months.
You specify Processes for 12 Months
in the Keep field, and A,E,K,U for 15 Days
in the Keep Process In Status field.
Retention Warnings
Redwood Server allows you to specify retention limits which, when reached, will display a warning. The default limits are:
100 000
processes in Redwood Server10 000
new processes over a period of 24 hours80%
of process definitions without a specific keep clause
The warning is displayed if 80%
of non-system process definitions do not have a keep clause set and either the maximum number of processes has been reached ( 100 000
) or the number of new processes over a period of 24 hours reaches 10 000
.
KeepExpiration
You set the KeepExpiration
field of a process to override the keep clause specified on the process definition of the process.
This setting also ignores the DefaultKeepStatus registry entry.