salto.batch.appender
Class JdbcAppender

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

public class JdbcAppender
extends java.lang.Object
implements IJdbcAppender, java.lang.Cloneable

Implementation of a IBatchAppender that logs executions in a Database using JDBC.
This class enables restart after incident.

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

Field Summary
 
Fields inherited from interface salto.batch.appender.IJdbcAppender
EXCEPTION_MESSAGE_LENGTH, EXCEPTION_STACK_TRACE_LENGTH
 
Constructor Summary
JdbcAppender()
          création d'un appender prenant la connection jndi par défaut (jdbc/hsqlDb) Ce constructeur est nécessaire lors de la restauration de cet objet par XmlSvg
JdbcAppender(java.lang.String jndiConnection)
           
 
Method Summary
 void batchEnded(java.lang.String batchName, java.util.Date endDate, int nbLinesRead, int nbErrors, java.lang.Throwable t)
          fin d'un 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 batchId)
          La restauration peut se faire de deux manières Pour chaque donnée, le lanceur demande si le traitement correspondant à ces données a déjà été exécuté ou le lanceur demande les données sauvegardées : lors des gros batchs, cette méthode ne convient pas car cela engendrerait une remontée très importante des données TODO Il faudrait plutot que de ramener le tableau de données, faire un itérateur, ça permettrait de ramener les données par bloc
 java.lang.Long batchStarted(java.lang.String batchName, java.util.Date startDate)
          Au démarrage du batch, on crée un connexion
 java.lang.Object clone()
          Les appenders doivent etre thread-safe.
 IBatchAppender copy()
           
 java.lang.String getJndiConnection()
          Returns the jndiConnection.
 void setJndiConnection(java.lang.String jndiConnection)
          Sets the jndiConnection.
 void trtAdded(java.lang.Object data, java.lang.Object ids)
          Ajout d'un traitement unitaire dans la file des traitements
 void trtEnded(long numJob, java.lang.Object data, java.lang.Object ids, long endDate, java.lang.Throwable fail)
          Fin d'un traitement unitaire
 void trtStarted(long numJob, java.lang.Object data, java.lang.Object ids, long startDate)
          Demarage d'un traitement unitaire
 void validate()
           
 
Methods inherited from class java.lang.Object
equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

JdbcAppender

public JdbcAppender()
création d'un appender prenant la connection jndi par défaut (jdbc/hsqlDb) Ce constructeur est nécessaire lors de la restauration de cet objet par XmlSvg


JdbcAppender

public JdbcAppender(java.lang.String jndiConnection)
Parameters:
jndiConnection - nom datasource
Method Detail

batchStarted

public java.lang.Long batchStarted(java.lang.String batchName,
                                   java.util.Date startDate)
Au démarrage du batch, on crée un connexion

Specified by:
batchStarted in interface IBatchAppender
Parameters:
batchName - nom unique du batch (suit la nomenclature RMI)
startDate - date de debut du batch
Returns:
Long
See Also:
salto.batch.lanceur.BatchAppender#batchStarted(String, Date)

batchEnded

public void batchEnded(java.lang.String batchName,
                       java.util.Date endDate,
                       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:
IBatchAppender.batchEnded(java.lang.String, java.util.Date, int, int, java.lang.Throwable)

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)

trtAdded

public void trtAdded(java.lang.Object data,
                     java.lang.Object ids)
Description copied from interface: IBatchAppender
Ajout d'un traitement unitaire dans la file des traitements

Specified by:
trtAdded in interface IBatchAppender
Parameters:
data - Object donnees permettant d'assurer l'unicite du traitement
ids - Object IDs
See Also:
salto.batch.lanceur.BatchAppender#trtAdded(Object)

trtStarted

public void trtStarted(long numJob,
                       java.lang.Object data,
                       java.lang.Object ids,
                       long startDate)
Description copied from interface: IBatchAppender
Demarage d'un traitement unitaire

Specified by:
trtStarted in interface IBatchAppender
Parameters:
numJob - long Job id
data - donnees permettant d'assurer l'unicite du traitement
ids - Object
startDate - date de depart (em ms.)
See Also:
IBatchAppender.trtStarted(long, java.lang.Object, java.lang.Object, long)

trtEnded

public void trtEnded(long numJob,
                     java.lang.Object data,
                     java.lang.Object ids,
                     long endDate,
                     java.lang.Throwable fail)
Description copied from interface: IBatchAppender
Fin d'un traitement unitaire

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)
See Also:
IBatchAppender.trtEnded(long, java.lang.Object, java.lang.Object, long, java.lang.Throwable)

batchResumed

public DoBatchTrt[] batchResumed(java.lang.String batchName,
                                 long batchId)
                          throws BatchException
La restauration peut se faire de deux manières Pour chaque donnée, le lanceur demande si le traitement correspondant à ces données a déjà été exécuté ou le lanceur demande les données sauvegardées : lors des gros batchs, cette méthode ne convient pas car cela engendrerait une remontée très importante des données TODO Il faudrait plutot que de ramener le tableau de données, faire un itérateur, ça permettrait de ramener les données par bloc

Specified by:
batchResumed in interface IBatchAppender
Parameters:
batchName - String Full batch name
batchId - long Batch ID
Returns:
DoBatchTrt[]
Throws:
BatchException

clone

public java.lang.Object clone()
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
Specified by:
clone in interface IJdbcAppender
Overrides:
clone in class java.lang.Object
Throws:
java.lang.CloneNotSupportedException
See Also:
Object.clone()

getJndiConnection

public java.lang.String getJndiConnection()
Returns the jndiConnection.

Specified by:
getJndiConnection in interface IJdbcAppender
Returns:
String

setJndiConnection

public void setJndiConnection(java.lang.String jndiConnection)
Sets the jndiConnection.

Specified by:
setJndiConnection in interface IJdbcAppender
Parameters:
jndiConnection - The jndiConnection to set

copy

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

validate

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


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