Accéder au contenu principal

Empêcher les erreurs provoquées par la limite de 65535 octets dans la génération de code

Dans le Studio Talend, certains Jobs peuvent échouer lors de la compilation de code avec une erreur liée à la limite de 65535 octets. Cet article explique la cause de cette erreur et offre des idées et solutions de dépannage.

Par exemple, si un sous-Job contient de trop nombreux composants ou s'il y a trop de colonnes dans le schéma, la compilation du Job Talend peut échouer, produisant cette exception :

Exception in thread "main" java.lang.Error: Unresolved compilation problem:
The code of method tFileInputDelimited_1Process(Map) is exceeding the 65535 bytes limit

Cela se produit parce que le Studio Talend est un générateur de code et crée du code Java pour chaque Job Talend. Chaque sous-Job est une méthode dans la classe de Job. Si un sous-Job est trop lourd, la taille finale du code généré dépasse les 65536 octets. Selon les spécifications Java, la somme de code pour cette méthode non native et non abstraite est limitée à une taille de 65536 octets, pour que le code généré d'un sous-Job ne dépasse pas cette limite.

Vous pouvez tenter d'empêcher cette erreur en ajoutant le paramètre suivant dans le fichier config.ini situé dans le dossier configuration du répertoire d'installation du Studio Talend :

deactivate_extended_component_log=true

Une fois cette option configurée, les dépendances de vos Jobs sont mises à jour. Si vous utilisez l'Intégration Continue, il est recommandé de générer à nouveau tous les POM du projet. Pour ce faire, allez dans Project Settings (Paramètres du projet), développez les nœuds Build > Maven et cliquez sur Force full re-synchronize poms (Forcer la resynchronisation complète des POM).

Si le problème n'est pas résolu par l'ajout du paramètre ci-dessus, utilisez une solution de contournement et essayez d'optimiser le Job en réduisant sa taille, pour réduire la taille du code final généré d'un sous-Job :

  • Minimisez le nombre de composants dans le sous-Job, notamment en évitant les composants de débogage comme le tLogRow.
  • Divisez le sous-Job en plusieurs sous-Jobs.

Vous pouvez également tenter d'empêcher cette erreur en désactivant les enregistreurs Log4j dans le Studio Talend. Pour plus d'informations, consultez Activer et configurer Log4j.

Cette page vous a-t-elle aidé ?

Si vous rencontrez des problèmes sur cette page ou dans son contenu – une faute de frappe, une étape manquante ou une erreur technique – faites-le-nous savoir.