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 :

Connexion Unique en MultiTreading


Sujet :

Développement de jobs

  1. #1
    Membre expert
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Juin 2007
    Messages
    2 938
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Juin 2007
    Messages : 2 938
    Points : 3 938
    Points
    3 938
    Par défaut Connexion Unique en MultiTreading
    Bonjour tout le monde,

    J'utilise TOS 5.5.1 DI. Je viens d'effectuer un test dont les caractéristiques sont les suivantes :

    -En début de mon Job je fais une connexion
    -Dans la suite je lance 3 tâches en simultanée, ces tâches sont simplement des lectures de tables qui utilisent toutes la connexion précédente.

    Et voici le constat du premier test, en fait Talend j'ai beau demandé une exécution en parallèle mais Talend lance une tâche qui met visiblement un verrou sur la connexion et quand cette première tâche est terminée, la suite peut récupérer la connexion, ce qui biaise la notion de lancement parallèle.
    Par contre si je dupplique mon composant de connexion pour chaque table, là on a vraiment une éxécution en simultané et mon Job est 3 fois plus rapide.
    En Pj vous aurez une capture de mon écran.
    Quelqu'un a t'il déjà fait ce constat ? Est ce normal ?

    Nom : testConnectionMultiThreading.png
Affichages : 135
Taille : 90,6 Ko
    Vous avez peut être hâte de réussir et il n'y a rien de mal à cela...
    mais la patience est aussi une vertu; l'échec vous l'enseignera certainement..."

  2. #2
    Membre expérimenté Avatar de supergeoffrey
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Octobre 2010
    Messages
    795
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Octobre 2010
    Messages : 795
    Points : 1 685
    Points
    1 685
    Par défaut
    La seule vraie façon de faire du multi-treading avec Talend est d'utiliser le composant tRunJob.
    Il va juste t'afficher tes marques, véhicules, et modèles dans l'ordre qu'il le souhaite.
    Pensez à marquer vos tickets comme résolus.
    Pensez aussi aux pour les réponses pertinantes

    Quand une discution est résolue depuis un moment pour revenir dessus, il est mieux d'en crée une nouvelle avec un lien vers l'autre car :
    • Elle sera en haut du forum, elle sera donc plus visible
    • Une discussion résolue, on ne passe pas dessus pour aider, on passe dessus si on a le même problème
    • Tu demandes surement à tes clients de faire le même

  3. #3
    Membre expert
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Juin 2007
    Messages
    2 938
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Juin 2007
    Messages : 2 938
    Points : 3 938
    Points
    3 938
    Par défaut
    Et comment l'utiliser dans mon cas?
    Je veux dire comment l'agencer ?
    Vous avez peut être hâte de réussir et il n'y a rien de mal à cela...
    mais la patience est aussi une vertu; l'échec vous l'enseignera certainement..."

  4. #4
    Membre expérimenté Avatar de supergeoffrey
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Octobre 2010
    Messages
    795
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Octobre 2010
    Messages : 795
    Points : 1 685
    Points
    1 685
    Par défaut
    Tu crées 3 job respectivement pour tes modèles véhicules et marques.
    Dans un quatrième job tu ajoute 3 tRunJob pour lancer chacun des 3 job précédents avec l'option "Utiliser un processus indépendant pour éxécuter le sous-job"
    Pensez à marquer vos tickets comme résolus.
    Pensez aussi aux pour les réponses pertinantes

    Quand une discution est résolue depuis un moment pour revenir dessus, il est mieux d'en crée une nouvelle avec un lien vers l'autre car :
    • Elle sera en haut du forum, elle sera donc plus visible
    • Une discussion résolue, on ne passe pas dessus pour aider, on passe dessus si on a le même problème
    • Tu demandes surement à tes clients de faire le même

  5. #5
    Membre éclairé
    Homme Profil pro
    Consultant informatique
    Inscrit en
    Mai 2010
    Messages
    343
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Consultant informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2010
    Messages : 343
    Points : 653
    Points
    653
    Par défaut
    Bonjour DevServlet,

    Ton job est correct pour faire du parallélisme avec du le studio open source.
    Le facteur limitant vient de la base de donnée qui ne lance pas en parallèle les requêtes dans une connexion.
    C'est le cas de Postgresql, Teradata, et certainement d'autre SGBD.

    Et donc effectivement il faut ouvrir plusieurs connections à la base de donnée pour pouvoir lancer autant de requêtes.


    la solution de supergeoffrey fonctionne car tu ouvriras 1 connexion par job mais n'est pas nécessaire : tu peux lancer des threads a partir d'un unique job.

  6. #6
    Membre expert
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Juin 2007
    Messages
    2 938
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Juin 2007
    Messages : 2 938
    Points : 3 938
    Points
    3 938
    Par défaut
    Citation Envoyé par emenuet Voir le message
    Bonjour DevServlet,

    Ton job est correct pour faire du parallélisme avec du le studio open source.
    Le facteur limitant vient de la base de donnée qui ne lance pas en parallèle les requêtes dans une connexion.
    C'est le cas de Postgresql, Teradata, et certainement d'autre SGBD.

    Et donc effectivement il faut ouvrir plusieurs connections à la base de donnée pour pouvoir lancer autant de requêtes.


    la solution de supergeoffrey fonctionne car tu ouvriras 1 connexion par job mais n'est pas nécessaire : tu peux lancer des threads a partir d'un unique job.
    Bonjour tout le monde,
    Je confirme ce diagnostic car ce que je n'avais pas dit c'est que j'avais testé sous Oracle et sous Mysql, sous Oracle j'ai fait ce constat alors que sous Mysql ça marchait très bien, le parallélisme était bien opérationnel.
    Une dernière question suite au dernier post, ne pensez vous pas que ce soit plus le composant tXXXConnexion de Talend qui interdise de créer plusieurs transactions par connexion? J'ai plus l'impression que le souci vienne de là plutôt que le SGBD qui refuse de répondre en parallèle à plusieurs requêtes d'une même connexion, qu'en pensez vous ?
    Vous avez peut être hâte de réussir et il n'y a rien de mal à cela...
    mais la patience est aussi une vertu; l'échec vous l'enseignera certainement..."

  7. #7
    Membre éclairé
    Homme Profil pro
    Consultant informatique
    Inscrit en
    Mai 2010
    Messages
    343
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Consultant informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2010
    Messages : 343
    Points : 653
    Points
    653
    Par défaut
    Une dernière question suite au dernier post, ne pensez vous pas que ce soit plus le composant tXXXConnexion de Talend qui interdise de créer plusieurs transactions par connexion? J'ai plus l'impression que le souci vienne de là plutôt que le SGBD qui refuse de répondre en parallèle à plusieurs requêtes d'une même connexion, qu'en pensez vous ?
    Le composant DB connexion n'ouvre qu'une seul connexion, il n'interdit rien, il fait juste la tache d'ouvrir une connexion. Si tu veux plusieurs ouverture de connexion, n'utilise pas le composant DB connexion et laisse chaque DBoutput ouvir sa propre connexion

  8. #8
    Membre expert
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Juin 2007
    Messages
    2 938
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Juin 2007
    Messages : 2 938
    Points : 3 938
    Points
    3 938
    Par défaut
    Citation Envoyé par emenuet Voir le message
    Le composant DB connexion n'ouvre qu'une seul connexion, il n'interdit rien, il fait juste la tache d'ouvrir une connexion. Si tu veux plusieurs ouverture de connexion, n'utilise pas le composant DB connexion et laisse chaque DBoutput ouvir sa propre connexion
    Bonjour,

    Mon besoin était en qu'en multi thread je puisse utiliser une seule connexion pour toutes les tables du même schéma dans le même Job. Le test a parfaitement marché sous Mysql , c'est sous Oracle que ça marchait pas.
    J'ai donc eu la réponse à mes questions.
    merci pour vos interventions
    Vous avez peut être hâte de réussir et il n'y a rien de mal à cela...
    mais la patience est aussi une vertu; l'échec vous l'enseignera certainement..."

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

Discussions similaires

  1. Compatibilité firefox et connexion unique
    Par henrietd dans le forum Administration-Migration
    Réponses: 0
    Dernier message: 16/11/2012, 11h12
  2. Réponses: 0
    Dernier message: 17/03/2011, 09h35
  3. Session et connexion unique
    Par ITCsoft54 dans le forum Servlets/JSP
    Réponses: 4
    Dernier message: 24/08/2008, 16h36
  4. Connexion unique à une base de données
    Par bouchette63 dans le forum DB2
    Réponses: 9
    Dernier message: 19/09/2006, 15h16
  5. Connexion unique à un site
    Par kooxinel dans le forum Langage
    Réponses: 15
    Dernier message: 09/07/2006, 13h04

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