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

Elementi xJCL

I processi vengono espressi mediante una istruzione Extensible Markup Language (XML) detto xJCL (XML Job Control Language). xJCL ha costrutti per l'espressione di tutte le informazioni necessarie sia per i processi a elaborazione intensiva che per i processi batch, nonostante alcuni elementi di xJCL siano applicabili solo ai processi a elaborazione intensiva o ai processi batch. Per ulteriori informazioni su xJCL, fare riferimento all'xJCL fornito con le applicazioni di esempio, alla tabella xJCL e al documento dello schema xJCL. Tenere presente che la definizione xJCL di un processo non fa parte dell'applicazione a lunga durata. Essa è costruita differentemente e viene inoltrata allo scheduler a lunga durata per l'esecuzione. Lo scheduler a lunga durata utilizza le informazioni nel xJCL per determinare dove e quando il processo deve essere eseguito.

Nella seguente tabella sono riportati gli elementi xJCL:

Table 1. Elementi xJCL
Elemento Elaborazione intensiva Batch Elemento secondario Attributi Descrizione
processo A A     Ambito della descrizione di un processo batch
  A A   name Il nome del processo. Questo nome deve corrispondere al nome dell'applicazione a lunga durata
  A A jndi-name   Il nome JNDI assegnato al bean di sessione stateless del controller di processi quando l'applicazione a lunga durata viene distribuita in WebSphere Application Server.
  A A step-scheduling-criteria Fare riferimento all'elemento step-scheduling-criteria  
  N A checkpoint-algorithm Fare riferimento all'elemento checkpoint-algorithm  
  A A job-step Fare riferimento all'elemento job-step  
job-step          
  S* A   name Il nome del passo. Queste informazioni vengon orestituite con i comandi operativi.
  N A step-scheduling Fare riferimento all'elemento step-scheduling Consente la logica condizionale basata sui codici di ritorno delle operazioni che determina se l'operazione batch deve essere richiamata o meno
  N A checkpoint-algorithm-ref Fare riferimento all'elemento checkpoint-algorithm-ref Specifica l'algoritmo del punto di controllo da utilizzare per l'operazione del processo batch.
  A N classname   Il nome completo della classe che implementa il processo a elaborazione intensiva.
  N A JNDI-name   Il nome logico JNDI della directory principale per il bean di entità (bean dell'operazione batch) che l'ambiente di esecuzione batch utilizzerà per caricare l'operazione del processo batch.
      props Fare riferimento all'elemento props Le proprietà nome-valore da inviare all'operazione
  N A batch-data-streams Fare riferimento all'elemento batch-data-streams Una sequenza di elementi bds. Ogni bds è dato dalle informazioni di configurazione necessarie per creare un flusso di dati batch.
prop A A     Un'unica istanza di una coppia nome-valore che funziona da proprietà.
        name Il nome della proprietà.
        valore Il valore della proprietà.
props A A     Una serie di elementi prop utilizzati per inviare le proprietà delle coppie nome-valore alle operazioni, ai bds, agli algoritmi dei punti di controllo e agli algoritmi dei risultati.
      prop Fare riferimento all'elemento prop  
bds N A     Un'unica istanza di una implementazione di un flusso di dati batch resi disponibili per l'utilizzo da parte del processo batch.
      logical-name   Il nome logico è una stringa integrata in un'operazione batch che l'operazione batch utilizza per richiedere all'ambiente di esecuzione batch una determinata istanza del flusso di dati.
      impl-class   Il nome classe completo della classe di implementazione del flusso di dati batch.
      props Fare riferimento all'elemento props Un elenco di proprietà che vengono inviate alla classe di implementazione del flusso di dati batch.
batch-data-streams N A     Una serie di elementi bds
      bds Fare riferimento all'elemento batch-data-streams bds  
step-scheduling N A     Può essere applicato a job-steps per creare i flussi condizionali basati sui codici di ritorno per un processo batch. L'elemento può confrontare i valori dei codici di ritorno definiti per questo processo batch per prendere decisioni su qualsiasi operazione che deve essere richiamata o meno durante l'elaborazione di un processo batch. I valori dei codici di ritorno vengono confrontati utilizzando l'elemento returncode-expression.
      returncode- expression Vedere returncode-expression L'espressione returncode- da valutare.
        condition Se esiste più di un elemento returncode-expression nell'elemento step-scheduling, è possibile applicare degli operatori condizionali. Gli operatori supportati sono AND, OR.
returncode-expression N A     Vengono utilizzati con gli elementi step-scheduling per decidere se un processo batch deve essere eseguito in base ai codici di ritorno delle altre operazioni del processo.
        step Il nome dell'operazione il cui codice di ritorno va confrontato in questa espressione.
        operator L'operatore da utilizzare per l'espressione del codice di ritorno; gli operatori supportati sono: eq (uguale), lt (minore di), gt (maggiore di), le (minore o uguale a), ge (maggiore o uguale a).
        valore Il valore con cui confrontare il codice di ritorno.
step-scheduling-criteria N A     Descrive la sequenza in cui verranno elaborate le operazioni del processo. Al momento, è supportata la pianificazione sequenziale, ad esempio le operazioni vengono richiamate nell'ordine con cui appaiono nell'xJCL.
      scheduling-mode   La sequenza secondo la quale richiamare le operazioni; l'unico possibile valore al momento è sequential.
checkpoint-algorithm N A     Dichiara un algoritmo del punto di controllo che può essere utilizzato per un'operazione del processo batch.
        name Il nome dell'algoritmo.
      classname   La classe che implementa questo algoritmo.
      props Fare riferimento all'elemento props Una sequenza di elementi prop per l'algoritmo del punto di controllo.
checkpoint-algorithm-ref N A     Un riferimento a un elemento dell'algoritmo del punto di controllo.
        name Il nome dell'algoritmo del punto di controllo a cui si fa riferimento.
      props Fare riferimento all'elemento props Una sequenza di elementi prop per l'algoritmo del punto di controllo.

* Al momento sono supportati solo i processi a elaborazione intensiva con un un'unica operazione.

Schema XML per 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>

 

Esempio xJCL per un processo batch

<?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>

Esempio xJCL per un processo a elaborazione intensiva

Al momento sono supportati solo i processi a elaborazione intensiva con un un'unica operazione.
<?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
Schema XML per xJCL

Argomento Concetti    

Termini di utilizzo | Commenti Ultimo aggiornamento: Mar 20, 2006 1:07:14 PM 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. Tutti i diritti riservati.
Questo centro informazioni utilizza la tecnologia Eclipse. (http://www.eclipse.org)