|
Publicité ' | |||||||||||||||||||||||
|
|
#1 |
|
Nouveau Membre du Club
![]() Inscription : juin 2006 Messages : 109 ![]() |
Bonjour,
Je viens de découvrir dans la dernière version java de talend le composant tPostgresqlRollback qui devrait bien me servir. Par contre je ne comprend pas comment il marche... Est ce que quelqu'un saurait ce qu'il vaut mettre dans la "component list" ? Est ce qu'on peut le mettre derrière un tPostgresqlOutput et le relier avec un "runiferror"? Merci |
|
|
00
|
|
|
#2 | |
|
Membre éclairé
![]() |
Bonjour
Citation:
Oui je pense qu'il peut être utilisé de la sorte. |
|
|
|
00
|
|
|
#3 |
|
Nouveau Membre du Club
![]() Inscription : juin 2006 Messages : 109 ![]() |
Bonjour,
et le tPostgresqlConnection il fait quoi? il vérifie juste la connection ou alors il vérifie qu'il y a eu une erreur lors de l'utilisation de cette connection par exemple dans une insertion? |
|
|
00
|
|
|
#4 |
|
Membre éclairé
![]() |
Le composant tPostgresqlConnection établit une connexion à une base de données. Il permet de "factoriser" la connexion. En effet si ce composant n'est pas utilisé, chaque tPostgresqlInput, tPostgresqlOutput ou encore tPostgresqlRow va établir à chaque fois une nouvelle connexion à la base.
|
|
|
00
|
|
|
#5 |
|
Nouveau Membre du Club
![]() Inscription : juin 2006 Messages : 109 ![]() |
C'est super bien comme composant!
car à chaque fois que je changeais de base de données il fallait que je le modifie dans mes 25 composant postgres! |
|
|
00
|
|
|
#6 |
|
Membre Expert
![]() Benoit DurandConsultant en Business Intelligence Freelance Inscription : mars 2005 Messages : 817 ![]() |
En effet ces composants on l'air sympa.
Ils sont présents dans la version 2.2.0M1 ? car ils ne sont pas dans la 2.1.2 que je viens de télécharger @Lolotte : Je te conseil de mettre tes données de connexions dans un fichier texte, puis de charger ce fichier au début de ton job et de mettre ces données dans un contexte. Dans tes composants de BD tu remplies les champs avec tes variables de contexte. Comme ça si tu changes de paramètres de connexion tu n'as qu'à modifier un fichier texte. |
|
|
00
|
|
|
#7 |
|
Membre éclairé
![]() |
|
|
|
00
|
|
|
#8 |
|
Nouveau Membre du Club
![]() Inscription : juin 2006 Messages : 109 ![]() |
J'ai fait un context de connexion pour mes bases oracle, mais pas pour mes bases postgres c'est vrai.
En même temps c'est tellement long de mettre : ((String)context.getProperty("host")) pour le host, le database, le serveur.... Alors que là avec le composant connexion je coche et c'est fini.... sinon je pourrai simplement faire un context m'en servir dans mon tPostgresqlConnection et dans les autres composants input et output cocher l'utilisaton de mon tPostgresqlConnection. Je crois que je vais faire ça. |
|
|
00
|
|
|
#9 |
|
Nouveau Membre du Club
![]() Inscription : juin 2006 Messages : 109 ![]() |
En fait, là j'ai 9 input et 10 output et 8 Row (dans lesquels je fais des update des index dans une table de référence, où il y a la prochaine valeur de l'index à utiliser) pour postgres.
Je voudrai commiter uniquement lorsque le dernier row s'est normalement executé. Car sinon en cas de problème lors des insertions, j'ai des données partielle ou qui ne sont présente que dans certaine table. En plus, puisque je ne mets les index à jour qu'à la fin dans la table de référence, si le programme plante avant la MAJ, au moment d'une nouvelle insertion il essaye d'attribué un index déjà utilisé. et ça fait pleins d'erreur! Alors j'ai mis tPostgresqlConnection suivi de mon premier input où dois je mettre mes commit et rollback pour qu'il annule tout en cas d'erreur et qu'il commit tout si pas d'erreur? Je pensais derrière le dernier row, mais je me dis que s'il n'est pas arrivé jusque là ça ne sert à rien.... |
|
|
00
|
|
|
#10 |
|
Membre éclairé
![]() |
Pour le Commit il faudrait le placer après le dernier Row, quant au Rollback je pense que chaque Input, Output et Row devraient y être reliés par un Run if error.
|
|
|
00
|
|
|
#11 |
|
Nouveau Membre du Club
![]() Inscription : juin 2006 Messages : 109 ![]() |
ça fonctionne super bien!
alors j'ai mis mon tPostgresqlConnection --> tPostgresqlinput -->tmap --> tPostgresqlOutput1->if error-->tPostgresqlRollback -->tPostgresqlOutput2->if error-->tPostgresqlRollback -->tPostgresqlOutput3->if error-->tPostgresqlRollback -->tPostgresqlOutput4->if error-->tPostgresqlRollback ->if ok -->tPostgresqlCommit Par contre j'ai mis 1 seul composant tPostgresqlRollback relié par plein de run if error, ça ne te choque pas? ou alors tu aurais mis 1 rollback par liaison? |
|
|
00
|
|
|
#12 |
|
Membre éclairé
![]() |
Cela ne me choque pas, c'est même la meilleure façon de faire selon moi : cela évite de générer n fois le même code.
|
|
|
00
|
|
|
#13 |
|
Nouveau Membre du Club
![]() Inscription : juin 2006 Messages : 109 ![]() |
merci pour tout bouvda et Hebus_Beer
|
|
|
00
|
Copyright © 2000-2012 - www.developpez.com