salto.batch.appender
Class MemoryAppender

java.lang.Object
  extended by salto.batch.appender.MemoryAppender
All Implemented Interfaces:
java.io.Serializable, IBatchAppender

public class MemoryAppender
extends java.lang.Object
implements IBatchAppender

Implementation of IBatchAppender that stored batch executions in memory.
Do not use this implementation in Production if you need batch history in database.

Author:
Etienne Loiez, Philippe Mouawad
See Also:
Serialized Form

Field Summary
static int TRT_ADDED
          traitement ajouté
static int TRT_ENDED
          traitement fini
static int TRT_STARTED
          traitement démarré
 
Constructor Summary
MemoryAppender()
          Constructeur
 
Method Summary
 void batchEnded(java.lang.String batchName, java.util.Date endDate, int nbLinesRead, int nbErrors, java.lang.Throwable t)
          Fin du batch
Appelé par une seule Thread Log en mode INFO de la fin du batch.
 void batchEnded(java.lang.String batchName, java.util.Date endDate, LanceurExecutionStatusEnum executionStatusEnum, int nbLinesRead, int nbErrors, java.lang.Throwable t)
          fin d'un batch
 DoBatchTrt[] batchResumed(java.lang.String batchName, long idBatch)
          Cet appender permet la reprise sur incident lorsque l'erreur ne provient pas de la machine virtelle (exemple : coupure réseau, ...)
 java.lang.Long batchStarted(java.lang.String batchName, java.util.Date startDate)
          Démarrage d'un batch
Appelé par une seule Thread Log en mode INFO de la fin du batch.
 java.lang.Object clone()
          Les appenders doivent etre thread-safe.
 IBatchAppender copy()
           
 java.lang.String getResume()
           
 void trtAdded(java.lang.Object data, java.lang.Object ids)
          Appelé par plusieurs Thread traitement ajouté.
 void trtEnded(long numJob, java.lang.Object data, java.lang.Object ids, long endDate, java.lang.Throwable fail)
          Fin d'un traitement.
 void trtStarted(long numJob, java.lang.Object data, java.lang.Object ids, long startDate)
          Appelé par plusieurs Thread Début d'un traitement.
 void validate()
           
 
Methods inherited from class java.lang.Object
equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

TRT_ADDED

public static final int TRT_ADDED
traitement ajouté

See Also:
Constant Field Values

TRT_STARTED

public static final int TRT_STARTED
traitement démarré

See Also:
Constant Field Values

TRT_ENDED

public static final int TRT_ENDED
traitement fini

See Also:
Constant Field Values
Constructor Detail

MemoryAppender

public MemoryAppender()
Constructeur

Method Detail

batchEnded

public void batchEnded(java.lang.String batchName,
                       java.util.Date endDate,
                       int nbLinesRead,
                       int nbErrors,
                       java.lang.Throwable t)
Fin du batch
Appelé par une seule Thread Log en mode INFO de la fin du batch. Le nom du logger (voir log4j) est batch.NomBatch.

Specified by:
batchEnded in interface IBatchAppender
Parameters:
batchName - Nom du batch
endDate - date de fin
nbLinesRead - Nombre de lignes lues
nbErrors - Nombre d'erreurs
t - Throwable si traitement throw

batchStarted

public java.lang.Long batchStarted(java.lang.String batchName,
                                   java.util.Date startDate)
Démarrage d'un batch
Appelé par une seule Thread Log en mode INFO de la fin du batch. Le nom du logger (voir log4j) est batch.NomBatch.

Specified by:
batchStarted in interface IBatchAppender
Parameters:
batchName - Nom du batch
startDate - date de début
Returns:
Long batch Id

trtAdded

public void trtAdded(java.lang.Object data,
                     java.lang.Object ids)
Appelé par plusieurs Thread traitement ajouté. Cette fonction n'a aucun effet.

Specified by:
trtAdded in interface IBatchAppender
Parameters:
data - Object donnees permettant d'assurer l'unicite du traitement
ids - Object IDs

trtEnded

public void trtEnded(long numJob,
                     java.lang.Object data,
                     java.lang.Object ids,
                     long endDate,
                     java.lang.Throwable fail)
Fin d'un traitement. Appelé par plusieurs Thread On place son statut à fini.

Specified by:
trtEnded in interface IBatchAppender
Parameters:
numJob - Job ID
data - donnees permettant d'assurer l'unicite du traitement
ids - Object ID
endDate - date & heure de fin du traitement (em ms.)
fail - boolean permettant de connaitre le resultat de fin du batch (false = fin OK, true : KO)

trtStarted

public void trtStarted(long numJob,
                       java.lang.Object data,
                       java.lang.Object ids,
                       long startDate)
Appelé par plusieurs Thread Début d'un traitement. On l'ajoute dans la table avec son identifiant unique.
L'identifiant unique est obtenu par l'appel à la méthode hashCode. En native, cette méthode retourne l'adresse du pointeur de l'objet. Ceci assure l'unicité pour une exécution de JVM. Si la méthode hashCode est surchargée alors l'objet MemoryAppender ne fonctionne plus.

Specified by:
trtStarted in interface IBatchAppender
Parameters:
batchName - nom du batch (identifiant unique pour le batch)
data - données passées au traitement
startDate - date de début du traitement

batchResumed

public DoBatchTrt[] batchResumed(java.lang.String batchName,
                                 long idBatch)
Cet appender permet la reprise sur incident lorsque l'erreur ne provient pas de la machine virtelle (exemple : coupure réseau, ...)

Specified by:
batchResumed in interface IBatchAppender
Parameters:
batchName - String Full batch name
idBatch - long Batch ID
Returns:
DoBatchTrt[]
See Also:
salto.batch.lanceur.BatchAppender#restoreTrt(String, long)

clone

public java.lang.Object clone()
                       throws java.lang.CloneNotSupportedException
Description copied from interface: IBatchAppender
Les appenders doivent etre thread-safe. Dans le cas des appenders utilisant des API non thread-safe, cas des drivers JDBC, il faut pouvoir cloner les appenders afin d'eviter les problemes lies aux acces concurrents.

Specified by:
clone in interface IBatchAppender
Overrides:
clone in class java.lang.Object
Throws:
java.lang.CloneNotSupportedException
See Also:
Object.clone()

getResume

public java.lang.String getResume()
Returns:
String

copy

public IBatchAppender copy()
Specified by:
copy in interface IBatchAppender
Returns:
IBatchAppender
See Also:
IBatchAppender.copy()

batchEnded

public void batchEnded(java.lang.String batchName,
                       java.util.Date endDate,
                       LanceurExecutionStatusEnum executionStatusEnum,
                       int nbLinesRead,
                       int nbErrors,
                       java.lang.Throwable t)
Description copied from interface: IBatchAppender
fin d'un batch

Specified by:
batchEnded in interface IBatchAppender
Parameters:
batchName - nom unique du batch (suit la nomenclature RMI)
endDate - date & heure de fin du batch
nbLinesRead - Number of lines read
nbErrors - Number of errors
t - Throwable
See Also:
salto.batch.appender.IBatchAppender#batchEnded(java.lang.String, java.util.Date, salto.batch.lanceur.LanceurExecutionStatusEnum, int, int, java.lang.Throwable)

validate

public void validate()
Specified by:
validate in interface IBatchAppender
See Also:
IBatchAppender.validate()


Copyright © 2005-2008 Ubik-Ingenierie. All Rights Reserved.