Zschimmer GmbH Impressum und Kontakt

Job Scheduler     Erste Seite

  XML     API     Register


logo

Konfiguration in XML

Beim Start des Scheduler geben Sie die Datei an, die die mit XML formulierte Konfiguration enthält.

Beispiel

Eine einfache Konfigurationsdatei mit einem Shell Job:

<?xml version="1.0"?>
<spooler>
    <config>
        <jobs>
            <job name="hallo_welt">
                <script language="shell"><![CDATA[
                    echo hallo welt
                ]]></script>

                <run_time repeat="10"/>
            </job>
        </jobs>
    </config>
</spooler>

Konfiguriert ist hier der Job hallo_welt, den der Scheduler alle 10 Sekunden wiederholen wird.

Wenn diese Konfiguration in der Datei hallo_welt.xml abgelegt ist, können Sie den Scheduler so starten (für Windows):

scheduler installation path…\bin\scheduler.exe -config=hallo_welt.xml

Ein gestarteter Scheduler kann mit Ctrl-C abgebrochen werden.

Alternativ können individuelle Konfigurationsdateien pro Job, Jobkette etc. gebildet werden, die nur die von diesem Objekt benötigten Elemente enthalten:

<?xml version="1.0">
<job>
    <script language="shell"><![CDATA[
        echo hallo welt
    ]]></script>

    <run_time repeat="10"/>
</job>

Wenn diese Konfiguration in der Datei scheduler installation path/config/live/hallo_welt.job.xml abgelegt ist, wird sie automatisch von einem laufenden Job Scheduler verwendet:

Codierung der XML-Konfiguration

<?xml encoding="UTF-8"?>  und
<?xml encoding="ISO-8859-1"?>  sind möglich.

Der Scheduler verarbeitet nur 8bit-Zeichen (ISO-8859-1).

Schema der Konfiguration

Der Scheduler prüft die XML-Konfiguration gegen das XML-Schema des Schedulers. Beim Aufruf des Schedulers über die Kommandozeile können Sie sich das Schema mit der Option -show-xml-schema ausgeben lassen:

installation path…\bin\scheduler.exe -show-xml-schema

Klicken Sie auf ein XML-Element, um dessen Beschreibung zu sehen.

<spooler>
    <config central_configuration_directory = "…"
            configuration_add_event    = "…"
            configuration_delete_event = "…"
            configuration_directory    = "…"
            configuration_update_event = "…"
            include_path         = "…"
            ip_address           = "…"
            java_class_path      = "…"
            java_options         = "…"    
            log_dir              = "…"
            mail_xslt_stylesheet = "…"
            param                = "…"
            port                 = "4444"
            priority_max         = "1000"
            spooler_id           = ""
            supervisor           = "hostname:4444"
            tcp_port             = "4444"
            udp_port             = "4444">
            
        <base file="…"/>

        <params>
            <param name="…" value="…"/>
        </params>
        
        <security>
            <allowed_host name="…" level="…"/>
            …
        </security>

        <cluster heart_beat_own_timeout  = "…" 
                 heart_beat_timeout      = "…"
                 heart_beat_warn_timeout = "…"/>

        <process_classes ignore  = "no">
            <process_class max_processes = "…"
                           name          = "…"
                           spooler_id    = "…"/>
            …
        </process_classes>

        <schedules>
            <schedule name = "…"
                substitute = "…"
                valid_from = "…"
                valid_to   = "…"/>
            …
        </schedules>

        <locks>
            <lock name= "…" …/>
            …
        </locks>

        <script com_class  = "…"
                filename   = "…" 
                java_class = "…"
                language   = "…" >
            <include file="…"/>
            <![CDATA[
                programm-code…
            ]]>
        </script>

        <http_server>
            <http.authentication scheme="basic">
                <http.users>
                    <http.user name="…" password_md5="…"/>
                    …
                </http.users>
            </http.authentication>
            
            <http_directory path="…" url_path="…"/>
            
            <web_service job_chain="…" url_path="…" …>
                <params>
                     <param name="…" value="…"/>
                     …
                </params>
            </web_service>
            …
        </http_server>

        <holidays>
            <holiday date="…"/>
            <include file="…"/>
            <weekdays date="…"/>
        </holidays>

        <jobs>
            <job
                force_idle_timeout = "yes|no"
                idle_timeout   = "…"
                ignore_signals = "…"
                java_options   = "…"
                min_tasks      = "…"
                name           = "…"
                order          = "no"
                priority       = "…"
                process_class  = "…"
                spooler_id     = "…"
                stop_on_error  = "yes"
                tasks          = "1"
                temporary      = "no"
                timeout        = "…"
                title          = "…"
                visible        = "yes"
            >

                <settings>
                    …
                </settings>
                
                <description> … </description>

                <lock.use lock="…" …/>
    
                <environment>
                    <variable name="…" value="…"/>
                    …
                </environment>

                <params>
                    <param name="…" value="…"/>
                    …
                </params>

                <script com_class  = "…"
                        filename   = "…" 
                        java_class = "…"
                        language   = "…" >
                    <include file="…"/>
                    <![CDATA[ programm-code… ]]>
                </script>
              oder
                <process file         = "…"
                         ignore_error = "no"
                         ignore_signal= "no" 
                         log_file     = ""
                         param        = ""  >
                </process>

                <monitor name         = "…"
                         ordering     = "…">
                   <script language="…" …>…<script/>
                </monitor>

                <start_when_directory_changed  directory="…"  regex="…" />

                <delay_after_error  delay="…"  error_count="…" />
                 
                <delay_order_after_setback  delay="…"  is_maximum="yes|no"  
                                            setback_count="…" />

                <run_time let_run="no">
                    <period begin        = "00:00"
                            end          = "24:00"
                            let_run      = "…"
                            repeat       = "…"     
                            single_start = "…"
                            when_holiday = "…"     />

                    <date date="yyyy-mm-dd"/>
                    …

                    <weekdays>
                        <day day="…">
                           <period …/>
                            …
                        </day>
                        …
                    </weekdays>

                    <monthdays>
                        <day day="…">
                            <period …/>
                            …
                        </day>
                        <weekday weekday="…" which="…">
                            <period …/>
                            …
                        </weekday>
                        …
                    </monthdays>

                    <ultimos>
                        <day day="…">
                            <period …/>
                            …
                        </day>
                        …
                    </ultimos>

                    <month month="…">
                        <period begin        = "00:00"
                                end          = "24:00"
                                let_run      = "…"
                                repeat       = "…"     
                                single_start = "…"     />
                        <weekdays>
                            <day day="…">
                               <period …/>
                                …
                            </day>
                            …
                        </weekdays>
                        <monthdays>
                            <day day="…">
                                <period …/>
                                …
                            </day>
                            <weekday weekday="…" which="…">
                                <period …/>
                                …
                            </weekday>
                            …
                        </monthdays>

                        <ultimos>
                            <day day="…">
                                <period …/>
                                …
                            </day>
                            …
                        </ultimos>
                        …
                    </month>

                    <holidays>
                        <holiday date="yyyy-mm-dd"/>
                        <include file="…"/>
                        …
                    </holidays>
                    
                    <at at="yyyy-mm-dd HH:MM:SS"/>
                </run_time>
                 
                <commands on_exit_code="…">
                    <start_job job="…" …>
                        <params>
                            <param name="…" value="…"/>
                            <copy_params from="task"/>
                            <copy_params from="order"/>
                            …
                        </params>
                    </start_job>    
                     
                    <add_order job_chain="…" …>
                        <params>
                            <param name="…" value="…"/>
                            <copy_params from="task"/>
                            <copy_params from="order"/>
                            …
                        </params>
                    </add_order>
                    …
                </commands>
            </job>
            …
        </jobs>

        <job_chains>
            <job_chain 
                    distributed       = "no"
                    name              = "…"
                    orders_recoverable= "yes"
                    title             = "…"
                    visible           = "yes"
                >
                <file_order_source 
                    delay_after_error = "…"
                    directory         = "…"  
                    max               = "…"  
                    next_state        = "…"
                    regex             = "…"  
                    repeat            = "…"  
                />
                …
                <job_chain_node
                    delay       = "…"  
                    error_state = "…"
                    job         = "…"  
                    next_state  = "…"  
                    on_error    = "suspend|resume"  
                    state       = "…"  
                />
                …
                <file_order_sink 
                    move_to     = "…"
                    remove      = "yes"
                    state       = "…"
                />
                …
            </job_chain>
            <job_chain name="…">
                <job_chain_node.job_chain
                    job_chain   = "…"  
                    error_state = "…"
                    next_state  = "…"  
                    state       = "…"  
                />
                …
                <job_chain_node.end 
                    state       = "…"
                />
                …
            </job_chain>
            …
        </job_chains>

        <commands>
            …
        </commands>

    </config>
</spooler>

Software- und Organisations-Service GmbH

Zuletzt geändert von Joacim Zschimmer, 2009-03-01