CloverDX creates new classloaders when necessary to load a class in runtime.
For example, a Reformat component with a Java transformation has to create a new classloader to load the class.
It is worth noting that classloaders for JDBC drivers are not re-created.
Classloader cache is used to avoid Metaspace out of memory errors (some JDBC drivers automatically register themselves to DriverManager, which can cause that the classloader cannot be released by the garbage collector). This behavior can be inconvenient, for example if you want to share POJO between components.
For example, a Reformat component creates an object (from a jar
file on runtime classpath) and stores it into a dictionary.
Another Reformat component recovers the object from the dictionary and attempts to cast the object to the expected class. ClassCastException
is thrown due different classloaders used in the Reformat components.
Using this flag you can force Clover Server to re-use classloader when possible.
30. Execution properties
Each graph or jobflow can have a set of execution properties which are applied during its execution, for example to change the log level, number of parallel executions etc. The execution properties can be set both in the Designer and Server. When set in the Designer they are stored in the graph XML file, and so they are moved, versioned etc. with the job file itself. The execution properties stored in the graph XML are used as default values of the properties for the job. When the properties are set in the Server Console (on job or sandbox level - see Sandboxes for more information), they have higher priority than then those in the job XML. Typically you would set the property in the job XML file as a default value, and only override it in the Server Console when needed (e.g. to fix an incident).
Execution properties hierarchy
Priorities (from highest to lowest):
-
Job-level setting - execution properties set on a job in the Sandboxes section of Server Console have the highest priority. The properties are set in the Execution Properties tab of a selected job file.
-
Sandbox-level setting - execution properties set on a sandbox in the Sandboxes section of Server Console set the property for all jobs in the sandbox. This can be overridden by the above job-level setting. The properties are set in the Execution Properties tab of a selected sandbox.
-
Job XML file setting - execution properties set in a job XML file (via the Designer) have lower priority than the above job and sandbox level settings. However, their benefit is that they are versioned and moved with the job file, which simplifies their management. The execution properties set in the job’s XML file can be considered as default for the job, and can be overridden on the sandbox or job level in the Server Console.
The execution property values set in the graph XML can use graph parameters, for a more centralized configuration. The graph parameters are resolved during loading and parsing of the XML file, thus such a job cannot be pooled.
-
Global defaults - global Server configuration defines default values for all of the execution properties. Global execution properties related to job execution properties have the
executor.
prefix. For example, the Server propertyexecutor.classpath
is default for the execution propertyclasspath
. (Refer here for details.)
Propagation of property values to a child job
-
property values - values of execution properties are propagated from parent job to a child job regardless of whether the child job has already a value set by user.
-
log_level - Log4j 2 log level is an exception and its value is not propagated to a child job if the value was not set for its parent job by user. That is if parent job has the value set as a global default and child job has the value set by user regardless of whether user set the value in the job’s XML file (via Designer) or in the Server Console the child job keeps the value set by user.
If you use a relative path, the path is relative to ${SANDBOX_ROOT}
.
In a path definition, you can use system properties - e.g. ${java.io.tmpdir}
- and some of server configuration properties: ${sandboxes.home}
, ${sandboxes.home.partitioned}
and ${sandboxes.home.local}
.
List of execution properties
Property name | Default value | Description |
---|---|---|
classloader_caching |
|
|
classpath |
List of paths or |
|
compile_classpath |
List of paths or |
|
encrypt_temp_files |
|
If This property is useful in environment where all persisted data must be encrypted. |
data_service_base_path |
Sandbox level only property for data services url prefix.
It allows data services to have the same (user defined) url paths if they are in different sandboxes.
It is useful e.g. in environments with multiple versions of the same sandbox.
The result data services url will have the form |
|
debug_mode |
|
If Without explicit setting, running a job manually sets |
delete_obsolete_temp_files |
|
If This property is useful together with enabled debug mode ensuring that obsolete debug files from previous runs of a job are removed from temp space.
This property is set to |
|
Boolean value. If if This property is evaluated after the job queue, see Job queue impact. |
|
jobflow_token_tracking |
|
If |
locale |
|
Can be used to override the |
log_level |
|
Log4j 2 log level for this graph executions.
( |
|
The maximum number of concurrently running instances of this transformation. In cluster environment, the limit is per node. This property is evaluated after the job queue, see Job queue impact. |
|
Can be used to override default behavior of the job queue (see Job queue) for this job.
The job queue by default processes most types of jobs (e.g.
graphs, jobflows, subgraphs etc.) and ignores some types of jobs (Data Services). This execution property can be used to override the default behavior on this job, if it’s set.
If set to If the execution property is set on a job, its value is propagated to child jobs. For example, if job queue is disabled for a job, then it’s disabled for all its child jobs such as subgraphs etc. By default Data Services are not processed by the job queue. This execution property can be used to enable job queue on specific Data Services, e.g. such that are used for orchestration of job executions. |
||
skip_check_config |
default value is taken from engine property |
Specifies whether check config must be performed before a transformation execution. |
time_zone |
|
Can be used to override the |
tracking_interval |
|
Interval in milliseconds for sampling nodes status in a running transformation. |
use_jmx |
|
If |
use_local_context_url |
|
If |
verbose_mode |
|
If |
|
Set to |
Setting execution properties in Designer
To set an execution property, right-click the Execution Properties item in the Outline pane and choose Edit from the context menu, or just double-click the Execution Properties item.
Click on the line with label Add configuration property and select property name from the list. Specify property value in the second column. Some properties may have a value only of a specific type. In that case you may select the value from a list.
Setting execution properties in Server console
To set an execution property in Server, add the desired property in the Execution Properties tab in the Sandboxes module. Properties can be added at the job level or sandbox level. See Execution properties hierarchy for more information on execution properties hierarchy.