You can use external files to store job or order parameters.
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.
External files are specfied in the JobnScheduler Object Editor JOE using the "Parameter Includes" Tab. The following screen shot shows the parameters being specified for a job but the approach for an order is identical:
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/cache/params
when using<include live_file="/params/my_parameter_file.xml" node=""/>
(from Hot Folder flag in JOE is on) and you use a How to implement Central Configuration with a Supervisor JobScheduler - 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)
See http://www.sos-berlin.com/doc/en/scheduler.doc/xml/include.xml for more information.
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 either:
- 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.
- changes to the parameters will be taken over by the JobScheduler when external parameter files are located below the
- or below the corresponding
remote
subfolder of the Master JobScheduler when you have a How to implement Central Configuration with a Supervisor JobScheduler 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 How to implement Central Configuration with a Supervisor JobScheduler.
- changes to the parameters will be taken over by the Slave JobScheduler when external parameter files are located below the
Changes to external parameter files located outside the Hot Folder (./config/live
or ./config/cache
resp.) will not be taken over by JobScheduler unless the job or order is changed or JobScheduler restarted.