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 :

Erreur lancement JOB MySQLInput


Sujet :

Développement de jobs

  1. #1
    Membre du Club
    Erreur lancement JOB MySQLInput
    Bonjour,

    Je suis en train de reprendre un job assez simple, dans ce job je lis un fichier XML, et je requête dans 2 bases de données différentes, sauf que j'ai un problème. J'explique



    Pour la deuxième requête dans le MySQLInput_2, la table que je vais attaquer dépend d'une variable et je définie cette variable dans le tJavaRow_2 (en fonction de certains critères).

    Sauf que quand je lance le job j'ai cette erreur.

    Exception in component tMysqlInput_2
    com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException: Table 'mabase.null' doesn't exist
    	at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
    	at sun.reflect.NativeConstructorAccessorImpl.newInstance(Unknown Source)
    	at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(Unknown Source)

    Ce que je trouve étrange c'est qu'il me mette cette erreur au tout début du lancement du job, même avant qu'il lise le XML, c'est donc normal qu'il ne trouve pas le nom de la table car elle est défini dans le tJavaRow_2.

    De ce que je crois voir, le job execute d'abord le MYSQLInput_2 avant de commencer le job, ce qui n'est pas logique.

    Avez vous une idée ?

  2. #2
    Membre éclairé
    Bonjour,

    Talend initialise les lookup avant le main, d'où le problème.

    Passer par un tFlowtoIterate à partir du moment où les informations nécessaires aux requête en base soient connues devrait résoudre le problème.

  3. #3
    Membre expérimenté
    Par défaut, MythOnirie à raison.

    Par contre dans le tMap il y a une configuration du lookUp
    Qui te propose :
    _ Charger une fois
    _ A chaque ligne

    Vu que tu modifies le job, je t'invite à regarder comment c'est fait sur le premier tMap.
    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

  4. #4
    Membre du Club
    Salut les gars,

    Merci pour votre aide, la solution de MythOnirie m'a bien aidé hier, je ne savais pas que par défaut les lookup étaient executés avant le main, donc j'ai pu me dépatouiller.

    Mais je viens de modifier de nouveau avec l'indication de supergeoffrey, et j'ai modifié, c'est + propre, j'ai juste coché l'option "recharger à chaque ligne" et ça a résolu mon souci + proprement. Je mets le point en résolu.