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

Operazioni dei processi batch

Le signole attività di un'applicazione batch possono essere divise in operazioni batch. Le operazioni batch sono implementate come EJB (Enterprise JavaBeans)gestiti dal contenitore locale che specificano com.ibm.websphere.batch.BatchJobStepLocalInterface come interfaccia aziendale.

I metodi di richiamata in BatchJobStepLocalInterface consentono a LREE (long-running execution environment) di eseguire operazioni batch quando eseguono un processo batch.

Un EJB di un'operazione batch contiene la logica di business che può essere divisa in batch per eseguire solo una parte del processo. Di solito, un'operazione batch contiene il codice necessario per leggere un record da un flusso di dati batch, per eseguire la logica di business associata a tale record e continuare a leggere il record successivo. Il metodo processJobStep si un EJB di un'operazione batch è richiamato dal LREE in un loop batch. Questo metodo deve contenere tutta la logica che può essere divisa in batched da eseguire sui dati.

LREE richiama i metodi dell'EJB dell'operazione batch con una transazione globale. Tale transazione globale è gestita da LREE. Le caratteristiche della transazione, come ad esempio il timeout della transazione o l'intervallo di commit, sono controllate dall'algoritmo del punto di controllo associato a un processo batch a cui appartiene l'operazione.

Di seguito sono riportati i metodi di richiamata LREE su BatchJobStepLocalInterface che vengono richiamati da LREE nell'ordine riportato:

Il metodo getProperties() su BatchJobStepLocalInterface non viene richiamato da LREE. Esso è incluso nell'interfaccia per la simmetria e per un possibile uso futuro.

Risoluzione dei problemi relativi allo sviluppo batch

  • Il descrittore di distribuzione del bean del controller batch deve essere dichiarato nel descrittore di distribuzione EJB di un'applicazione batch e deve avere i riferimenti EJB locali agli EJB dell'operazione utilizzati in un'applicazione batch. È possibile definire soltanto un bean di controller per applicazione batch.
  • Gli attributi delle transazioni di tutti i metodi delle operazioni batch devono essere impostato su richiesto.
  • Lo sviluppatore dell'applicazione batch deve verificare che il lavoro transazionale eseguito all'interno dei metodi di richiamata dell'operazione batch ereditino la transazione globale avviata da LREE. Ciò assicura che il lavoro eseguito in un'operazione batch venga commesso a ogni punto di controllo e ne venga eseguito il rollback nel caso in cui l'operazione rilevi una condizione di errore.
  • Se l'operazione batch utilizza un flusso di dati batch (batch data stream, BDS) i cui dati sono locale al file system del server delle applicazioni su cui è distribuita l'applicazione batch, allora è importante effettuare determinate operazioni per supportare gli scenari di riavvio dei processi. Se una applicazione batch del genere viene distribuita sul server delle applicazioni che vengono eseguite su più macchine, ad esempio quando viene distribuita su un cluster dinamico presente in un gruppo di nodi che ha più membri, e un processo batch eseguito rispetto a tale applicazione viene annullato e quindi riavviato, allora non esiste alcuna garanzia che la richiesta originale arrivi alla macchina su cui era stato eseguito originariamente il processo batch. Se una applicazione batch del genere viene distribuita su un cluster dinamico presente in un gruppo di nodi che ha più membri, e un processo batch eseguito rispetto a tale applicazione viene annullato e quindi riavviato, allora non esiste alcuna garanzia che la richiesta originale arrivi alla stessa macchina. In questo scenario, la gestione a lunga durata potrebbe inviare la richiesta di riavvio a un server delle applicazioni che viene eseguito su una macchina differente. Pertanto, nei casi in cui è richiesta l'affinità basata su file, le seguenti soluzioni possono essere applicate per supportare lo scenario di riavvio del processo:
    • Verificare che i dati siano ugualmente disponibili su ogni macchina su cui l'applicazione batch può essere avviata. Ad esempio, mediante un file system di rete (ciò potrebbe infatti ridurre le prestazioni dell'applicazione).
    • Distribuire l'applicazione sui server delle applicazioni che sono attivi solo sulla macchina su cui sono presenti i dati locali. Ciò è possibile distribuendo l'applicazione su un cluster dinamico che esiste nel gruppo di nodi che ha solo un nodo del membro.



Related concepts
Modello di programmazione batch

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/cxdbatchstp.html

© Copyright IBM 2004, 2006. Tutti i diritti riservati.
Questo centro informazioni utilizza la tecnologia Eclipse. (http://www.eclipse.org)