Précédent   Forum des professionnels en informatique > Logiciels > Solutions d'entreprise > Business Intelligence > ETL > Talend
Talend Forum d'entraide sur Talend (Talend Open Studio, ...). Avant de poster --> FAQ Talend, Tutoriels Talend
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 08/07/2011, 22h22   #1
Invité de passage
 
Fathi Elmarzouki
Inscription : janvier 2010
Messages : 9
Détails du profil
Informations personnelles :
Nom : Fathi Elmarzouki

Informations forums :
Inscription : janvier 2010
Messages : 9
Points : 2
Points : 2
Par défaut Exécuter Job en boucle

Slt tt le monde;
J'ai un job de transfert des données entre deux bases PostgreSQL,(Clients ==> Serveur).
Mon Job prend en entréé l'adresse IP de la machine Client.
Les @IP des clients sont stockées dans une table iptables sur le Serveur.
Je suis arrivé a créer mon job qui permet de récupérer les IP des clients et effectuer le transfert(en itération: client après l'autre) a partir des clients .
Mon problème c si la machine client ne répond pas (erreur de connexion réseau), normalement le job doit passer a @IP suivante mais se bloque et mettre fin du job.
Je voudrais faire quelque chose comme: On Error Resume Next.
fbmhm est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 08/07/2011, 23h30   #2
Rédacteur/Modérateur
 
Avatar de CyberChouan
 
Homme Benoît Courtine
Directeur technique
Inscription : janvier 2007
Messages : 2 744
Détails du profil
Informations personnelles :
Nom : Homme Benoît Courtine
Âge : 29
Localisation : France, Paris (Île de France)

Informations professionnelles :
Activité : Directeur technique
Secteur : High Tech - Produits et services télécom et Internet

Informations forums :
Inscription : janvier 2007
Messages : 2 744
Points : 4 202
Points : 4 202
Envoyer un message via MSN à CyberChouan
Il faudrait que tu trouves un moyen d'intercepter et d'ignorer l'exception.

Voici une idée :

Tu mets la liste de tes adresse IP dans un flux dans un composant d'entrée.

Tu places en suite un tJavaFlex configuré comme cela :

Begin
Main
End
Code :
1
2
3
} catch (Exception e) {
    // Adresse injoignable : passage à la suivante
}
Enfin, le tRunJob qui effectueras le traitement pour l'adresse IP en question, (obtenue à partir du contexte transmis).

Pour résumer :

Liste des IP --> tJavaFlex --> tRunJob

La composition des éléments Talend fera en sorte que le code global du traitement sera le suivant (en pseudo-code), correspondant à ton besoin :

Code :
1
2
3
4
5
6
7
8
FOR (adresseIP) {
    try {
        context.ip = adresseIP;
        executeSousJob(context);
    } catch (Exception e) {
        // Erreur pour adresseIP : passage à la suivante
    }
}
__________________
Avant de poster, pensez à regarder la FAQ, les tutoriaux, la Javadoc (de la JRE que vous utilisez) et à faire une recherche
Je ne réponds pas aux questions techniques par MP: les forums sont faits pour ça
Mes articles et tutoriaux & Mon blog informatique
CyberChouan est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 09/07/2011, 11h55   #3
Invité de passage
 
Fathi Elmarzouki
Inscription : janvier 2010
Messages : 9
Détails du profil
Informations personnelles :
Nom : Fathi Elmarzouki

Informations forums :
Inscription : janvier 2010
Messages : 9
Points : 2
Points : 2
[quote=fbmhm;6113277]Slt tt le monde;
J'ai un job de transfert des données entre deux bases PostgreSQL,(Clients ==> Serveur).
Mon Job prend en entréé l'adresse IP de la machine Client.
Les @IP des clients sont stockées dans une table iptables sur le Serveur.
Je suis arrivé a créer mon job qui permet de récupérer les IP des clients et effectuer le transfert(en itération: client après l'autre) a partir des clients .
Mon problème c si la machine client ne répond pas (erreur de connexion réseau), normalement le job doit passer a @IP suivante mais se bloque et mettre fin du job.
Je voudrais faire quelque chose comme: On Error Resume Next.
Images attachées
Type de fichier : png transfert_eduserv_0.1.png (28,6 Ko, 17 affichages)
fbmhm est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 12/07/2011, 16h15   #4
Membre régulier
 
Etienne Menuet
Inscription : mai 2010
Messages : 71
Détails du profil
Informations personnelles :
Nom : Etienne Menuet
Localisation : France, Paris (Île de France)

Informations forums :
Inscription : mai 2010
Messages : 71
Points : 98
Points : 98
Bonjour,

Tu peux créer un job qui fait ton mapping, avec un context pour paramétrer l'IP

Dans ton job master ( celui en piece jointe ) tu fait une iteration sur le tRunjob en passant l'IP comme paramètre ( le tableau paramètre de contexte ) et tu décoches "arret en cas d'erreur du fils"

Ainsi, si ton sous-job plante pour une adresse IP, le traitement continu pour l'IP suivante.
emenuet est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 13/07/2011, 17h51   #5
Membre expérimenté
 
Avatar de NicoL__
 
Homme Nicolas
Inscription : janvier 2011
Messages : 378
Détails du profil
Informations personnelles :
Nom : Homme Nicolas
Localisation : France

Informations forums :
Inscription : janvier 2011
Messages : 378
Points : 528
Points : 528
Peut-être qu'avec des tServerAlive cela évitera d'avoir à gérer une erreur ?
NicoL__ est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 04h17.


 
 
 
 
Partenaires

Hébergement Web