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.
Execution Properties
Each graph or jobflow may 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 properties can be set in the job’s XML file (via Designer) or in the Server Console.
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
. (See Configuration 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}
.
Property name | Default value | Description |
---|---|---|
classloader_caching |
|
|
classpath |
List of paths or |
|
compile_classpath |
List of paths or |
|
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 |