You can use external files to store job or order parameters.
The above example generates the following configuration:
<?xml version="1.0" encoding="iso-8859-1"?> <job> <params> <include live_file="my_parameter_file.xml" node=""/> </params> ... </job>
- The job expects the parameter file in the same folder where the job is stored when using
<include live_file="my_parameter_file.xml" node=""/>
(from Hot Folder flag in JOE is on) - The job expects the parameter file in
./config/live/params
when using<include live_file="/params/my_parameter_file.xml" node=""/>
(from Hot Folder flag in JOE is on) - The job expects the parameter file in
./config/params
when using<include file="/config/params/my_parameter_file.xml" node=""/>
(from Hot Folder flag in JOE is off)
Look at http://www.sos-berlin.com/doc/en/scheduler.doc/xml/include.xml for more information.
This has the following advantages:
- Parameters can be stored centrally and then used in more than one job or order.
- Parameters of external files cannot be displayed in JOC using show configuration. Such files can then be used, for example, to store sensitive data.
A typical parameter file would look like:
<?xml version="1.0" encoding="iso-8859-1"?> <params> <param name="param1" value="value1"/> <param name="param2" value="value2"/> <param name="param3" value="value3"/> <param name="param4" value="value4"/> </params>
In this case you do not have to specifiy the node attribute.
You can also use a different structure. In particular you can have multiple parameter sets:
<?xml version="1.0" encoding="iso-8859-1"?> <database_connections> <database_connection id="myConnection1"> <param name="host" value="myHost"/> <param name="port" value="myPort"/> <param name="user" value="myUser"/> <param name="password" value="myPassword"/> </database_connection> <database_connection id="myConnection2"> <param name="host" value="otherHost"/> <param name="port" value="otherPort"/> <param name="user" value="otherUser"/> <param name="password" value="otherPassword"/> </database_connection> </database_connections>
In this case you must specify the node attribute with an Xpath expression.
If a job needs the parameters from myConnection1
then use e.g. //database_connection@id='myConnection1'/param
.
It is recommended that you use the from Hot Folder flag in JOE and store the external parameter file ...
... below the Hot Folder (./config/live
) because ...
- Changes to the parameters will be taken over by the JobScheduler when external parameter files are located below the
./config/live
folder.
... below the corresponding remote
subfolder of the Master JobScheduler when you have a remote configuration architecture because ...
- Changes to the parameters will be taken over by the Slave JobScheduler when external parameter files are located below the
./config/cache
folder if you are using remote configuration.
Changes to external parameter files located outside the Hot Folder (./config/live
or ./config/cache
resp.) will not be taken over by JobScheduler except the job or order has changed or JobScheduler restarts.