Interpréter le log
En cas de message d'erreur ou de sortie inattendue, vous pouvez analyser le traitement pour trouver quelle erreur a été introduite dans la définition du flux de travail. La fenêtre de log est l'endroit le plus important pour rechercher des informations lorsqu'un traitement ne se termine pas comme prévu.
Vérifier les alertes
Si vous avez fermé la fenêtre du log pendant le traitement, vous ne verrez pas les messages d'avertissement qui ont pu passer. La première chose à faire est de vérifier la présence du commentaire suivant :
Translation was SUCCESSFUL with X warning(s)
Puis (si X > 0
), utiliser l'option de recherche pour trouver le mot WARN.
Séquence
Parce que FME traite les données entité par entité au lieu de Transformer par Transformer, le fichier de log ne montre pas chaque Transformer en séquence. Cela ne peut se produire que si le Transformer est basé sur un groupe et traite effectivement toutes les entités simultanément.
Output
Si les Writers du traitement ont été redirigés vers une sortie autre qu'un jeu de données destination, cela est signalé tout en bas du log. Soyez attentif à de tels messages.
Horodatage
Le temps de traitement FME est le temps passé par FME pour mener à bien le projet.
Les heures absolues de début et de fin diffèrent souvent du temps de traitement FME parce que les processus non FME, comme une requête de base de données, ajoutent au temps absolu pris sans ajouter au temps de traitement FME. Le log peut donc fournir une indication de l'efficacité des processus externes (par exemple, la lecture de la base de données). Une lecture lente de la base de données implique que l'indexation de la base de données doit être améliorée.
Entrée inattendue (Unexpected input)
Une entrée inattendue est signalée par un message au bas du log. Toutefois, ce message ne signifie pas qu'il y a un problème précis. FME le signalera comme un avertissement même si vous n'avez pas délibérément ajouté des types d'entités sources indésirables au traitement.
Anomalie de configuration des données sources ou destination
Il arrive parfois que FME détecte un problème de configuration dans un Reader ou un Writer lorsque vous ouvrez un traitement. Afin de s'assurer que le traitement ne produit pas de résultats inattendus, FME tente de réparer ces problèmes.
Des problèmes de configuration peuvent survenir lorsque des Readers ou des Writers d'un autre traitement sont copiés dans un traitement qui contient déjà un Reader ou un Writer similaire. Cette action peut entraîner des conflits entre les noms des paramètres du jeu de données et les paramètres publiés existants.
Avant que FME ne tente de réparer le traitement, une copie du traitement est sauvegardée dans le même répertoire que le traitement existant. Si FME est incapable de créer une sauvegarde, il tente quand même de réparer le traitement original. Dans ce cas, le traitement original doit être sauvegardé à un autre endroit où l'utilisateur a le droit d'écrire.
Rejet de données en entrée (Filtering Rejected Input)
Il arrive qu'un Transformer ou un Reader rejette certaines entités parce qu'elles ne correspondent pas à la fonctionnalité ou aux paramètres de cet objet. Par exemple, si vous envoyez un mélange d'entités de points et de lignes dans le Transformer AreaBuilder, le log indiquera que les entités de points ont été rejetées.
Le journal sera moins verbeux - et pourra même améliorer les performances - si vous pouvez supprimer ces entités avant qu'elles ne deviennent un problème. Par exemple, un GeometryFilter suffirait à filtrer les points avant même qu'ils n'atteignent l'AreaBuilder.
Interprétation du nombre d'entités
Quand un fichier de log affiche un traitement en erreur, ou quand le nombre d'entités en sortie ne correspond pas à ce que vous souhaitiez, alors les valeurs des nombres d'entités traitées dans chaque connexion peuvent vous aider à diagnostiquer d'où provient l'erreur.
Cependant différentes interprétations peuvent avoir le même nombre d'entités.
Dans cet exemple, le traitement échoue :
D'où l'erreur provient-elle ?
Deux interprétations sont possibles :
- 1858 entités sont entrées dans le StatisticsCalculator, mais une seule en est sortie. Par conséquent, le StatisticsCalculator doit être en faute.
- La première entité a causé la défaillance du Joiner. C'est donc le Joiner qui est en faute.
Il n'est pas évident de comprendre d'où vient exactement le problème mais vous pouvez être sûr qu'il ne provient pas de AreaCalculator.
Transformers utiles pour analyser un traitement
Certains Transformers sont particulièrement utiles pour analyser un traitement :
Inspector
Un Inspector prend les entités du projet et les envoie dans FME Data Inspector, qui vous permet de visualiser ces dernières en cours de projet.
Logger
Un Transformer Logger prend les entités du flux de travail et écrit les informations les concernant dans la fenêtre de log ou dans le fichier de log. Il est possible de limiter le nombre d'entités à enregistrer dans leur intégralité.
Le Transformer Logger possède un paramètre appelé Log Message : lorsqu'une entité est enregistrée, ce message apparaît avec elle. La définition d'un message unique vous aide à localiser les entités enregistrées lorsque vous utilisez la fonction de recherche du log pour trouver le message.
Astuce : Pour supprimer des Loggers rapidement depuis un Traitement, utiliser le menu Outils > Supprimer > Inspectors.
Améliorer les performances d'un Traitement
Les sujets suivants contiennent des informations utiles si vous souhaitez réduire les temps de traitement :
- Comment FME logue les temps de traitement
- Comment FME traite les entités
- Comment FME améliore les performances en traitement par lots
- Ecrire dans des fichiers temporaires
- Comment FME utilise l'espace disque temporaire
- Comment FME logue les informations des données source
- Comment FME logue les informations de bases de données