IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Spring Java Discussion :

Problème avec commit-interval [Batch]


Sujet :

Spring Java

  1. #1
    Membre à l'essai
    Inscrit en
    Janvier 2008
    Messages
    22
    Détails du profil
    Informations forums :
    Inscription : Janvier 2008
    Messages : 22
    Points : 21
    Points
    21
    Par défaut Problème avec commit-interval
    Bonjour,

    J'utilise Spring Batch pour lire à partir d'un fichier, puis pour écrire dans une base de données.

    Voici un exemple de structure de fichier (non réel):
    98165165132161JeanDupont065400015151
    01565466516597JackLor 874854984984
    cccccc293000000000000000000000000000
    Les deux premières lignes sont des lignes de données, et la dernière est pour le contrôle.
    cccccc signifie ligne de commande
    2 le nombre de lignes dans le fichier
    93, la somme des valeurs après le nom (indice 24): 06 87

    Après avoir lu toutes les lignes du fichier, on doit lire la ligne de contrôle et faire la vérification. Si OK, on commit sinon on arrête (BATCH FAIL).

    Le problème est que si j'ai un commit-interval de 100 et j'ai 1000 ligne dans le fichier. Le job va d'abord lire les 100 premières lignes et il ne trouvera pas la ligne de contrôle. Donc, le job va s'arrêter.
    Si je garde la vérification à la fin, le job va faire un commit toutes les 100 lignes, si le contrôle n'est pas OK, on ne peut pas faire de roll back.

    J'utilise :
    ItemReader: org.springframework.batch.item.file.FlatFileItemReader
    lineMapper: org.springframework.batch.item.file.mapping.DefaultLineMapper
    lineTokenizer: org.springframework.batch.item.file.transform.FixedLengthTokenizer
    itemWriter: org.springframework.batch.item.database.JdbcBatchItemWriter
    Config:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    <batch:step id="step1"> 
    <batch:tasklet transaction-manager="transactionManager" > 
    <batch:chunk reader="myItemReader" processor="myProcessor" 
    writer="myItemWriter" commit-interval="100"> 
    </batch:chunk> 
    </batch:tasklet> 
    </batch:step>
    Est-il possible de désactiver le commit-interval (pas bon), ou bien de lire par bloc, mais commiter à la fin (si OK) ?

    Je vous remercie à l'avance.

  2. #2
    Membre à l'essai
    Inscrit en
    Janvier 2008
    Messages
    22
    Détails du profil
    Informations forums :
    Inscription : Janvier 2008
    Messages : 22
    Points : 21
    Points
    21
    Par défaut
    La solution c'est d'utiliser la chunk-completion-policy au lieu de commit-interval.

    <bean id="completionPolicy" class="org.springframework.batch.repeat.policy.DefaultResultCompletionPolicy"/>

    <batch:chunk reader="myItemReader" processor="receptionChequeProcessor"
    writer="myItemWriter" chunk-completion-policy="completionPolicy">

  3. #3
    Membre habitué
    Inscrit en
    Janvier 2005
    Messages
    460
    Détails du profil
    Informations personnelles :
    Âge : 38

    Informations forums :
    Inscription : Janvier 2005
    Messages : 460
    Points : 145
    Points
    145
    Par défaut
    J'en profite pour remonter le topic.

    Comment faire svp si on travaille avec un "MultiResourceItemReader" pour commiter à chaque fichier et non pas quand tout est traité ?

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. problème avec le commit en jdo de castor
    Par y_chafaqi dans le forum Général Java
    Réponses: 0
    Dernier message: 17/08/2009, 16h21
  2. Problème de COMMIT avec MARS connections activés (ODBC)
    Par Yan302 dans le forum Développement
    Réponses: 0
    Dernier message: 27/03/2009, 10h50
  3. problème avec commit
    Par alex2205 dans le forum Hibernate
    Réponses: 1
    Dernier message: 05/02/2009, 13h30
  4. Réponses: 4
    Dernier message: 08/01/2007, 13h06
  5. [MySQL] Problème avec DATE SUB et INTERVAL
    Par psychoBob dans le forum PHP & Base de données
    Réponses: 4
    Dernier message: 25/01/2006, 00h36

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo