Zschimmer GmbH Impressum und Kontakt

Scheduler     Erste Seite   –   Konfiguration in XML

  XML     API     Register


logo

XML-Element  <lock.use>    (Konfiguration)

<lock.use
exclusive  = "yes|no" Exklusive oder nicht-exklusive Belegung ist möglich
lock  = "name" Name der Sperre
/>

 

Siehe auch <locks> und <lock>.

Beispiel  

<locks>
    <lock name="my_file"/>
</lock>    
        
<job name="my_file_reader" tasks="3">
    <lock.use lock="my_file" exclusive="no"/>
    …
</job>    

<job name="my_other_file_reader">
    <lock.use lock="my_file" exclusive="no"/>
    …
</job>    

<job name="my_file_writer">
    <lock.use lock="my_file"/>
    …
</job>

Die Jobs my_file_reader und my_other_file_reads belegen die Sperre nicht-exklusiv und können gleichzeitig mit mehreren Tasks laufen.

Der Job my_file_writer setzt die Sperre exklusiv und startet nur, wenn kein anderer Job läuft. Der Job kann einen Datenbestand ändern und sich darauf verlassen, dass währenddessen keiner der beiden anderen Jobs den Datenbestand liest.

Siehe auch spooler_task.try_hold_lock().

Verhalten mit <base>

Ergänzt ein Element <lock.use> an der entsprechenden Stelle aus der Basiskonfiguration. In <lock.use> angegebene Attribute überschreiben die aus der Basiskonfiguration.

Eltern-Elemente

<job>  

  – Definition eines Jobs

Attribute

lock="name"   Name der Sperre

Die Sperre muss mit <lock> deklariert worden sein.

exclusive="yes|no"   (Initialwert: yes)     Exklusive oder nicht-exklusive Belegung ist möglich

exclusive="yes" ist voreingestellt. Damit wird die Sperre exklusiv gesetzt und nur eine Task wird gestartet. Alle anderen Jobs, die dieselbe Sperre angegeben, werden in eine Warteschlange eingereiht. Jobs mit exclusive="yes" werden vor Jobs mit exclusive="no" gestartet.

exclusive="no" sperrt nur gegen exklusive Verwendung (exclusive="yes"). Task mit exclusive="no" schließen nur Tasks mit exclusive="yes" aus. Die Zahl von mit exclusive="no" insgesamt laufender Tasks kann mit <lock max_non_exclusive="…"> begrenzt werden.

Meldungen

[ERROR] SCHEDULER-161 There is no objecttype(1) '(2)
[ERROR] SCHEDULER-407 Attribute (1) is empty 
[ERROR] SCHEDULER-408 <(1) (2)=...> cannot be changed 
[info] SCHEDULER-855 Task is now holding Lock(1) exclusively/non-exclusively(2) 
[info] SCHEDULER-856 Lock(1) has been released 
[info] SCHEDULER-857 Lock(1) has been released, (2) non-exclusive holders remaining 
[info] SCHEDULER-858 Not longer waiting for lock locknames(1) 
[info] SCHEDULER-860 Waiting for 'lock(1)', exclusive(2), on place (3) (current holders(4)

Software- und Organisations-Service GmbH

Zuletzt geändert von Joacim Zschimmer, 2007-02-19