WebSphere Extended Deployment, Version 6.0.x     Betriebssysteme: AIX, HP-UX, Linux, Solaris, Windows, z/OS

xJCL-Elemente

Jobs werden mit dem XML-Dialekt (Extensible Markup Language) xJCL (XML Job Control Language) definiert. xJCL verfügt über Anweisungen, um alle erforderlichen Informationen für rechenintensive und Stapeljobs zu formulieren, obwohl einige Elemente von xJCL nur auf rechenintensive oder Stapeljobs anwendbar sind. Nähere Informationen zu xJCL können Sie der mit den Beispielanwendungen bereitgestellten xJCL, der xJCL-Tabelle und dem Schemadokument für xJCL XSD entnehmen. Beachten Sie bitte, dass die xJCL-Definition eines Jobs nicht Teil der Anwendung mit langer Laufzeit ist. Sie wird gesondert erstellt und zur Ausführung an den Scheduler für lange Laufzeit übergeben. Der Scheduler für lange Laufzeit verwendet die Informationen in der xJCL, um festzustellen, wo und wann der Job ausgeführt werden soll.

Die folgende Tabelle enthält eine Zusammenfassung der xJCL-Elemente:

Table 1. xJCL-Elemente
Element Rechenintensiv Stapelbetrieb Unterelement Attribute Beschreibung
Job J J     Definiert die Beschreibung eines Stapeljobs.
  J J   Name Name des Jobs. Dieser Name muss mit dem Namen der Anwendung mit langer Laufzeit übereinstimmen.
  J J jndi-name   Der JNDI-Name, der der Stateless-Session-Bean des Job-Controller zugeordnet wird, wenn die Anwendung mit langer Laufzeit im WebSphere Application Server implementiert wird.
  J J step-scheduling-criteria Siehe Element step-scheduling-criteria.  
  N J checkpoint-algorithm Siehe Element checkpoint-algorithm.  
  J J job-step Siehe Element job-step.  
job-step          
  J* J   Name Name des Abschnitts. Diese Information wird bei Betriebsbefehlen zurückgegeben.
  N J step-scheduling Siehe Element step-scheduling. Ermöglicht eine bedingte, auf Rückkehrcodes von Abschnitten basierende Logik, die bestimmt, ob der Stapelabschnitt aufgerufen werden soll.
  N J checkpoint-algorithm-ref Siehe Element checkpoint-algorithm-ref. Gibt den Prüfpunktalgorithmus an, der für den Abschnitt des Stapeljobs verwendet werden soll.
  J N classname   Vollständig qualifizierter Name einer Klasse, die den rechenintensiven Job implementiert.
  N J JNDI-name   Der logische JNDI-Name des Home-Interface für die Entity-Bean (Stapelabschnitt-Bean), mit der die Ausführungsumgebung des Stapels den Abschnitt des Jobstapels lädt.
      props Siehe Element props. Name/Wert-Merkmale zur Übergabe des Schritts.
  N J batch-data-streams Siehe Element batch-data-streams. Das Element A ist eine Folge von bds-Elementen. Jedes bds-Element ist die Konfigurationsinformation, die zum Erstellen eines Batch-Datenstroms erforderlich ist.
prop J J     Eine einzelne Instanz eines Name/Wert-Paares, die als Merkmal verwendet wird.
        Name Der Name des Merkmals.
        Wert Der Wert des Merkmals.
props J J     Eine Folge von prop-Elementen, mit denen Name/Wert-Paare als Merkmale an Abschnitte, bds-Elemente, Prüfpunktalgorithmen und Ergebnisalgorithmen übergeben werden.
      prop Siehe Element prop.  
bds N J     Ein bds-Element stellt eine einzelne Instanz einer Batch-Datenstromimplementierung dar, die dem Stapeljob zur Verfügung gestellt wird.
      logical-name   Das Element logical-name enthält eine Zeichenfolge, die in den Stapelabschnitt integriert wird und die der Stapelabschnitt verwendet, um eine bestimmte Batch-Datenstrominstanz von der Ausführungsumgebung des Stapels anzufordern.
      impl-class   Vollständig qualifizierter Klassenname der Implementierungsklasse für den Batch-Datenstrom.
      props Siehe props-Elemente. Eine Liste mit Merkmalen, die an die Implementierungsklasse des Batch-Datenstroms übergeben wird.
batch-data-streams N J     Eine Folge von bds-Elementen.
      bds Siehe bds-Element.  
step-scheduling N J     Das Element step-scheduling kann auf job-step-Elemente angewendet werden, um basierend auf bedingten Abläufen für einen Stapeljob Rückkehrcodes zu erstellen. Das Element step-scheduling kann die Werte von Rückkehrcodes, die für den Stapeljob definiert sind, vergleichen, um zu entscheiden, ob ein Abschnitt während der Verarbeitung eines Stapeljobs aufgerufen werden soll oder nicht. Die Werte der Rückkehrcodes werden mit dem Element returncode-expression verglichen.
      Ausdruck für Rückkehrcode Siehe returncode-expression. Der auszuwertende Ausdruck für den Rückkehrcode.
        Bedingung Wenn das step-scheduling-Element mehrere returncode-expression-Elemente enthält, können bedingte Operatoren auf diese Elemente angewendet werden. Folgende bedingte Operatoren werden unterstützt: AND, OR.
returncode-expression N J     Das Element returncode-expression wird in step-scheduling-Elementen verwendet, um basierend auf den Rückkehrcodes anderer Jobabschnitte zu entscheiden, ob ein bestimmter Abschnitt eines Stapeljobs ausgeführt werden soll.
        Abschnitt Der Name des Abschnitts, dessen Rückkehrcode in diesem Ausdruck verglichen werden soll.
        Operator Der Operator, der für den Ausdruck des Rückkehrcodes verwendet werden soll. Folgende Operatoren werden unterstützt: eq (equals = gleich), lt (less than = kleiner als), gt (greater than = größer als), le (less than or equal to = kleiner-gleich), ge (greater than or equal to = größer-gleich).
        Wert Der Wert, mit dem der Rückkehrcode verglichen werden soll.
step-scheduling-criteria N J     Beschreibt die Folge, in der die Jobabschnitte verarbeitet werden. Derzeit wird nur die sequenzielle Planung unterstützt, d. h. die Abschnitte werden in der Reihenfolge aufgerufen, in der sie in der xJCL erscheinen.
      scheduling-mode   Die Reihenfolge, in der Abschnitte aufgerufen werden. Z. Zt. ist nur der Wert sequential (Sequenziell) möglich.
checkpoint-algorithm N J     Deklariert einen Prüfpunktalgorithmus, der für einen Stapeljobabschnitt verwendet werden kann.
        Name Der Name des Algorithmus.
      classname   Die Klasse, die diesen Algorithmus implementiert.
      props Siehe Element props. Eine Folge von prop-Elementen für den Prüfpunktalgorithmus.
checkpoint-algorithm-ref N J     Eine Referenz auf ein checkpoint-algorithm-Element.
        Name Der Name des Prüfpunktalgorithmus, auf den verwiesen wird.
      props Siehe Element props. Eine Folge von prop-Elementen für den Prüfpunktalgorithmus.

* Es werden nur rechenintensive Jobs mit einem Abschnitt unterstützt.

XML-Schema für xJCL

<?xml version="1.0" encoding="UTF-8"?>
<xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema">

<xsd:element name="classname" type="xsd:string" />
<xsd:element name="impl-class" type="xsd:string" />
<xsd:element name="jndi-name" type="xsd:string" />
<xsd:element name="logical-name" type="xsd:string" />
<xsd:element name="scheduling-mode" type="xsd:string" />

<xsd:element name="batch-data-streams">
<xsd:complexType>
<xsd:sequence>
		 <xsd:element maxOccurs="unbounded" minOccurs="1" ref="bds"/>
		</xsd:sequence>
</xsd:complexType> 
 </xsd:element>

 <xsd:element name="bds">
   <xsd:complexType>
 <xsd:sequence>
 	  <xsd:element ref="logical-name" minOccurs="1" maxOccurs="1"/ >
	  <xsd:element ref="impl-class" minOccurs="1" maxOccurs="1"/ >
	  <xsd:element ref="props" minOccurs="0" maxOccurs="1"/ >
	</xsd:sequence>
   </xsd:complexType> 
 </xsd:element>
 
<xsd:element name="checkpoint-algorithm">
   <xsd:complexType>
     <xsd:sequence>
	  <xsd:element ref="classname" minOccurs="1" maxOccurs="1"/>	
	  <xsd:element ref="props" minOccurs="0" maxOccurs="unbounded"/>
     	</xsd:sequence>
	<xsd:attribute name="name" type="xsd:string" use="required" />
  </xsd:complexType> 
</xsd:element>
 
<xsd:element name="checkpoint-algorithm-ref">
<xsd:complexType>
		<xsd:attribute name="name" type="xsd:string" use="required"/>
</xsd:complexType> 
 </xsd:element>
 
 <xsd:element name="results-algorithm">
<xsd:complexType>
<xsd:sequence>
			<xsd:element ref="classname" minOccurs="1" maxOccurs="1"/>
			<xsd:element ref="props" minOccurs="0" maxOccurs="1"/>
		</xsd:sequence>
</xsd:complexType> 
 </xsd:element>

 <xsd:element name="results-algorithms">
   <xsd:complexType>
<xsd:sequence>
	  <xsd:element maxOccurs="unbounded" minOccurs="1" ref="results- 
         algorithm" />
	</xsd:sequence>
  </xsd:complexType> 
 </xsd:element>

 <xsd:element name="results-ref">
<xsd:complexType>
	   <xsd:attribute name="name" type="xsd:string" use="required"/>
</xsd:complexType> 
 </xsd:element>
 
 
 <xsd:element name="job">
   <xsd:complexType>
    <xsd:sequence>
	<xsd:element ref="jndi-name" minOccurs="1" maxOccurs="1"/>
	<xsd:element ref="step-scheduling-criteria" minOccurs="1" 
        maxOccurs="1"/>
	<xsd:element ref="checkpoint-algorithm" maxOccurs="unbounded"
        <minOccurs="1"/>
	<xsd:element ref="results-algorithms" maxOccurs="1"  minOccurs="0"/>
	<xsd:element ref="job-step" maxOccurs="unbounded" minOccurs="1" />
    	</xsd:sequence>
    			<xsd:attribute name="name" type="xsd:string" use="required" />
   </xsd:complexType> 
 </xsd:element>

 <xsd:element name="job-step">
   <xsd:complexType>
  <xsd:sequence>
 	  <xsd:choice>
 		<!-- jndi-name for batch jobs -->
 	 		<xsd:element ref="jndi-name" minOccurs="1" maxOccurs="1"/>
		<!-- classname for compute intensive jobs -->
 	 		<xsd:element ref="classname" minOccurs="1" maxOccurs="1"/>
 	  </xsd:choice>
	  <xsd:element ref="step-scheduling" minOccurs="0" maxOccurs="1"/>
	  <xsd:element ref="checkpoint-algorithm-ref" minOccurs="0" 
         maxOccurs="1"/>
	  <xsd:element ref="batch-data-streams" minOccurs="0" maxOccurs="1"/>
	  <xsd:element ref="props" minOccurs="0" maxOccurs="1"/>
        		  <xsd:element ref="results-ref" minOccurs="0" maxOccurs="unbounded"/>		  
	</xsd:sequence>
	    <xsd:attribute name="name" type="xsd:string" use="optional" />
   </xsd:complexType> 
</xsd:element>


 <xsd:element name="prop">
<xsd:complexType>
		<xsd:attribute name="name" type="xsd:string" use="required" />
		<xsd:attribute name="value" type="xsd:string" use="required" />
</xsd:complexType> 
 </xsd:element>

 <xsd:element name="props">
 <xsd:complexType>
   <xsd:sequence>
		<xsd:element ref="prop" maxOccurs="unbounded" minOccurs="1"/>
	</xsd:sequence>
</xsd:complexType> 
 /xsd:element

 <xsd:element name="returncode-expression">
<xsd:complexType>
	   <xsd:attribute name="step" type="xsd:string" use="required" />
	   <xsd:attribute name="operator" type="xsd:string" use="required" />
	   <xsd:attribute name="value" type="xsd:string" use="required" />
</xsd:complexType> 
 </xsd:element>


 <xsd:element name="step-scheduling">
<xsd:complexType>
<xsd:sequence>
	    <xsd:element ref="returncode-expression" minOccurs="1" 
           maxOccurs="unbounded"/>
        	</xsd:sequence>
	  <xsd:attribute name="condition" type="xsd:string" use="required" />
</xsd:complexType> 
 </xsd:element>
 
 <xsd:element name="step-scheduling-criteria">
    <xsd:complexType>
<xsd:sequence>
		<xsd:element ref="scheduling-mode" minOccurs="1" maxOccurs="1"/>
	</xsd:sequence>
    </xsd:complexType> 
 </xsd:element>

</xsd:schema>

 

xJCL-Beispiel für einen Stapeljob

<?xml version="1.0" encoding="UTF-8"?>

<job name="SampleEar" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">

   <jndi-name>ejb/com/ibm/websphere/samples/PostingsJob</jndi-name>
     <step-scheduling-criteria>
         <scheduling-mode>sequential</scheduling-mode>
     </step-scheduling-criteria>

<checkpoint-algorithm name="timebased">
   <classname>com.ibm.wsspi.batch.checkpointalgorithms.timebased</classname>
      <props>
             <prop name="interval" value="15" />
      </props>
</checkpoint-algorithm>

<results-algorithms>
   <results-algorithm name="jobsum">
     <classname>com.ibm.wsspi.batch.resultsalgorithms.jobsum</classname>
   </results-algorithm>
</results-algorithms> 

<job-step name="Step1">
   <jndi-name>ejb/DataCreationBean</jndi-name>
   <checkpoint-algorithm-ref name="timebased" />
<results-ref name="jobsum"/>

<batch-data-streams>
   <bds>
      <logical-name>myoutput</logical-name>
      <impl-class>com.ibm.websphere.samples.PostingOutputStream</impl-class>
      <props>
         <prop name="FILENAME" value="somefile”/> 
      </props>
  </bds>
</batch-data-streams>	        

<props>
   <prop name="wsbatch.count" value="5000" />
 </props>

</job-step>

<job-step name="Step2">

   <step-scheduling condition="OR">
      <returncode-expression step="Step1" operator="eq" value="0" />
      <returncode-expression step="Step1" operator="eq" value="1" />
</step-scheduling>

<jndi-name>ejb/PostingAccountData</jndi-name>
<checkpoint-algorithm-ref name="timebased" /	>
<results-ref name="jobsum"/>

<batch-data-streams>
   <bds>
       <logical-name>myinput</logical-name>
       <impl-class>com.ibm.websphere.samples.PostingStream</impl-class>               
       <props>
            <prop name="FILENAME" value="somefile" />
       </props>
   </bds>
  </batch-data-streams>	        

 </job-step>
</job>

xJCL-Beispiel für einen rechenintensiven Job

* Gegenwärtig werden nur rechenintensive Jobs mit einem Abschnitt unterstützt.
<?xml version="1.0" encoding="UTF-8"?>

<job name="SimpleCIEar" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">

     <jndi-name>ejb/com/ibm/ws/ci/SimpleCIEJB</jndi-name>
     <job-step name="Step1">
          <classname>com.ibm.websphere.ci.samples.SimpleCIWork</classname>
          <props>
               <prop name="calculationTimeInSecs" value="30" />
               <prop name="outputFileName" value="SimpleCI_output_file" />
         </props>
    </job-step>
</job>



Related concepts
XML-Schema für xJCL

Konzeptartikel    

Nutzungsbedingungen | Feedback Letzte Aktualisierung: Mar 23, 2006 9:54:23 AM EST
http://publib.boulder.ibm.com/infocenter/wxdinfo/v6r0/index.jsp?topic=?topic=/com.ibm.websphere.xd.doc/info/scheduler/cxdbatchjcl.html

© Copyright IBM 2005, 2006. Alle Rechte vorbehalten.
Dieses Information Center beruht auf der Eclipse-Technologie. (http://www.eclipse.org)