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

Développement de jobs Discussion :

[Talend TOS 3.1.3] transaction oracle et commit général pour tous les jobs


Sujet :

Développement de jobs

  1. #1
    atb
    atb est déconnecté
    Membre éprouvé

    Homme Profil pro
    Inscrit en
    Novembre 2004
    Messages
    639
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : Autre

    Informations forums :
    Inscription : Novembre 2004
    Messages : 639
    Points : 929
    Points
    929
    Par défaut [Talend TOS 3.1.3] transaction oracle et commit général pour tous les jobs
    Bonjours à tous,

    Je voudrais savoir s'il est possible de créer une transaction et faire un commit à la fin de tous les jobs. Je veux le scénario suivant:

    1- Ouvrir une connexion vers une base oracle
    2- Lancer job 1 (mise à jour d'une dizaine de table)
    2- Lancer job 2 (mise à jour de quelques tables)
    3- Lancer job 3 (lancer les procédures de vérification de la cohérence des données "des select, updates,...)
    4- Si pas d'erreur commit général sinon un rollback général.


    Merci d'avance.

  2. #2
    Membre actif
    Profil pro
    Inscrit en
    Janvier 2008
    Messages
    247
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2008
    Messages : 247
    Points : 277
    Points
    277
    Par défaut
    Bonjour,

    Malheureusement non tu ne peux pas ouvrir de connexion, puis orchestrer tes jobs, et fermer la connexion dans un job Sequencer...

    Dans la société pour laquelle je travaille, nous avons remonté ce besoin à Talend, qui a émis la possibilité de mettre à disposition cette fonctionnalité dans une version ultérieure, mais rien de précis pour le moment...

  3. #3
    atb
    atb est déconnecté
    Membre éprouvé

    Homme Profil pro
    Inscrit en
    Novembre 2004
    Messages
    639
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : Autre

    Informations forums :
    Inscription : Novembre 2004
    Messages : 639
    Points : 929
    Points
    929
    Par défaut
    Merci TeamArkadia pour ta réponse, mais j'ai trouvé une solution sur Talend 3.1.3

    Il faut :
    Dans le job père ajouter un composant TOracleConnection, fournir toutes les informations pour se connecter et cochée la case « Use Shared connection » en fournissant un nom entouré avec des quottes.
    A la fin du traitement rajouter un tOracleCommit et tOracleRollback si erreur.

    Dans le job fils rajouter un composant TOracleConnection, cocher seulement l’option shared connection et donner le même nom avec des quottes toujours et surtout ne pas oublier de d'utiliser la connexion existante !

    Voici deux capture d'écran, la premiére pour le job père et la seconde pour le fils.


    Bonne continuation à tous

  4. #4
    Membre actif
    Profil pro
    Inscrit en
    Janvier 2008
    Messages
    247
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2008
    Messages : 247
    Points : 277
    Points
    277
    Par défaut
    Merci à toi atb !
    Je vais regarder de mon côté pour voir si ça correspond à mon besoin, parce que ça pourrait me simplifier la vie dans certains cas !

    A+

  5. #5
    Membre actif
    Profil pro
    Inscrit en
    Janvier 2008
    Messages
    247
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2008
    Messages : 247
    Points : 277
    Points
    277
    Par défaut
    J'ai fait le test de mon côté, c'est exactement ce que je voulais faire !
    Merci atb, ça va simplifier par mal de mes DEVs ce petit truc !

  6. #6
    atb
    atb est déconnecté
    Membre éprouvé

    Homme Profil pro
    Inscrit en
    Novembre 2004
    Messages
    639
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : Autre

    Informations forums :
    Inscription : Novembre 2004
    Messages : 639
    Points : 929
    Points
    929
    Par défaut
    Oué

    Sauf que je suis entrain de testé sur mon projet et là : -->

    Il faut mettre le composant tOracleConnexion en premier ensuite les autres composants Input et Output sinon il me sort une erreur java null pointer.

    Et là, j'ai un souci avec les composants output oracle -> erreur table ou vue inexistante.

    Donc prudence, car à mon avis c’est pas encore stable …

    Bon courage.

  7. #7
    Membre actif
    Profil pro
    Inscrit en
    Janvier 2008
    Messages
    247
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2008
    Messages : 247
    Points : 277
    Points
    277
    Par défaut
    Ah... Pour le moment, je n'ai personnellement rencontré aucun problème sur tous les tests que j'ai fait.
    Je n'ai pas encore tout à fait fini, mais je vais quand même faire attention à ce que tu viens de me remonter.

  8. #8
    atb
    atb est déconnecté
    Membre éprouvé

    Homme Profil pro
    Inscrit en
    Novembre 2004
    Messages
    639
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : Autre

    Informations forums :
    Inscription : Novembre 2004
    Messages : 639
    Points : 929
    Points
    929
    Par défaut
    Bon, je ne sais pas si c’est mon cerveau qui a planté mais :

    J’avais un problème avec les tOracleOutput en utilisant les tOracleConnection. En gros :

    Job fils
    tOracleconnection -> tOracleInput -> tOracleOutput

    Job Pére tOracleConnection -> Job fils -> tOracleCommit si pas d’erreur.
    Sauf que le tOracleOutput rejetait toutes les lignes et j’avais l’erreur oracle « table ou vue inexistante », ce qui me ramène sur la piste du tOracleconnection du job fils.
    Je mets le type de propriété de ce dernier en [référentiel] ensuite sur [intégré] je décoche l’option [use shared connection] et je la re-coche. Et là aucun souci, j’arrive à insérer mes données correctement au niveau de la base.

    Au passage,
    Je tiens à signaler que l’événement OnSubjobError ne remonte pas d’erreur si un tOracleOutput rejette des lignes parce que la table n’existe pas, données trop grandes,…

    Deux solutions, soit :
    Gérer les lignes rejetées et les stockées dans des fichiers textes par exemple. (attention à la gestion du commit et rollback)
    Cocher [Die on error] du composant ce qui va être remonté jusqu’à l’événement SubJobError du père.


    Tout commentaire est le bienvenu

  9. #9
    Rédacteur
    Avatar de jsd03
    Homme Profil pro
    Conseil - Consultant en systèmes d'information
    Inscrit en
    Août 2008
    Messages
    1 221
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Indre et Loire (Centre)

    Informations professionnelles :
    Activité : Conseil - Consultant en systèmes d'information

    Informations forums :
    Inscription : Août 2008
    Messages : 1 221
    Points : 6 506
    Points
    6 506
    Par défaut
    J'ai une question par rapport à tes tests. Comment es-tu sûr à 100% que les connexion des jobs fils utilisent bien la connexion du job père? Tu as regarder les processus Oracle qui tournaient à ce moment ?

    Parce que cette méthode, bien pensée au passage (en prenant le même nom de connexion), me semble artisanale et mérite des explications techniques
    Google est ton ami mais ton voisin aussi

    Modérateur BI - Responsable Talend
    Mes tutoriels - FAQ Talend - FAQ SQL*Plus

    Avant toute chose : lire le mode d'emploi du forum et ses règles.
    Suivez @Developpez sur twitter !

  10. #10
    atb
    atb est déconnecté
    Membre éprouvé

    Homme Profil pro
    Inscrit en
    Novembre 2004
    Messages
    639
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : Autre

    Informations forums :
    Inscription : Novembre 2004
    Messages : 639
    Points : 929
    Points
    929
    Par défaut
    Regarder les processus oracle non (j'ai pas les droits admin ).

    Mais dans un job fils je supprime les données d'une table X et je fais un commit au niveau du père, je test sur un autre poste -> la table est bien vide.
    Je refais la même chose mais avec un rollback au lieu du commit, le job s'exécute --> mais à la fin aucun changement n'est apporté au niveau de la table.

    Aurais-je loupé quelque chose

  11. #11
    Membre actif
    Profil pro
    Inscrit en
    Janvier 2008
    Messages
    247
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2008
    Messages : 247
    Points : 277
    Points
    277
    Par défaut
    Pour ma part, je pense qu'il s'agit effectivement de la même connexion, car dans le job fils, tu n'as pas besoin de renseigner les infos de connexion dans le composant de connexion, mais juste d'y faire figurer le même nom de transaction (cf. capture d'écran).



    Pour autant, je ne peux pas le certifier n'ayant pas non plus les droits d'admin...

    Si quelqu'un a la possibilité et le temps de faire un petit test, ça pourrait nous conforter sur cette voie.

  12. #12
    Rédacteur
    Avatar de jsd03
    Homme Profil pro
    Conseil - Consultant en systèmes d'information
    Inscrit en
    Août 2008
    Messages
    1 221
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Indre et Loire (Centre)

    Informations professionnelles :
    Activité : Conseil - Consultant en systèmes d'information

    Informations forums :
    Inscription : Août 2008
    Messages : 1 221
    Points : 6 506
    Points
    6 506
    Par défaut
    J'essaierai de tester si j'ai 5 minutes histoire d'être vraiment sûr mais d'après vos 2 remarques ça me semble pas mal du tout !
    Google est ton ami mais ton voisin aussi

    Modérateur BI - Responsable Talend
    Mes tutoriels - FAQ Talend - FAQ SQL*Plus

    Avant toute chose : lire le mode d'emploi du forum et ses règles.
    Suivez @Developpez sur twitter !

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

Discussions similaires

  1. Bonnes pratiques pour optimiser les jobs Talend.
    Par amallek dans le forum Développement de jobs
    Réponses: 2
    Dernier message: 22/11/2014, 17h35
  2. Transposer une matrice (Excel) vers une table (Oracle) - Talend TOS 4.0.2
    Par Snimo dans le forum Développement de jobs
    Réponses: 6
    Dernier message: 11/03/2011, 14h06
  3. Réponses: 9
    Dernier message: 11/04/2007, 10h56
  4. transaction Oracle -> Postgresql
    Par krimson dans le forum PostgreSQL
    Réponses: 7
    Dernier message: 03/08/2005, 13h25
  5. Fonctionnement simplifié d'une transaction Oracle
    Par jack554 dans le forum Oracle
    Réponses: 7
    Dernier message: 21/04/2005, 10h25

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