Le Job Executor de Camunda 7 ne traite pas les jobs – Causes racines et solutions
Dans Camunda 7, le Job Executor est responsable de l’exécution des tâches en arrière-plan comme les timers, les continuations asynchrones, les retries et les batch jobs.
Un problème fréquent en production est le suivant :
❌ Les jobs sont bien créés en base de données, mais le Job Executor ne les exécute pas.
Cet article explique les causes racines, les méthodes de diagnostic et les solutions concrètes utilisées en environnement réel.
1️⃣ Qu’est-ce que le Job Executor dans Camunda 7 ?
Le Job Executor est un pool de threads qui :
Acquiert les jobs depuis la base de données
Verrouille les jobs
Les exécute de manière asynchrone
Il gère notamment :
Les événements temporisés (timers)
Les continuations asynchrones (
asyncBefore,asyncAfter)Les retries après échec
Les batch jobs (cleanup historique, migration, etc.)
Lorsqu’il ne fonctionne pas, les processus restent bloqués.
2️⃣ Causes racines les plus courantes
🔴 1. Job Executor désactivé
Le Job Executor peut être désactivé par configuration.
Vérifier la configuration :
Engine XML
Camunda BPM Run (application.yml)
📌 Solution : activer le Job Executor et redémarrer l’application.
🔴 2. Verrous de jobs bloqués en base
Après un crash ou un arrêt brutal, certains jobs restent verrouillés.
Tables concernées :
ACT_RU_JOBColonnes
LOCK_OWNER,LOCK_EXP_TIME
Si LOCK_EXP_TIME est encore valide, le job ne sera pas repris.
📌 Solution :
Attendre l’expiration du verrou
Ou nettoyer les verrous (avec validation DBA)
🔴 3. Pool de threads saturé
Si tous les threads sont occupés ou bloqués, aucun nouveau job n’est exécuté.
📌 Solution : augmenter la taille du pool.
🔴 4. Échec silencieux de l’acquisition des jobs
Problèmes fréquents :
Connexion base de données instable
Deadlocks
Latence réseau
Logs à surveiller :
📌 Solution :
Vérifier la connexion DB
Ajuster le pool de connexions
Surveiller les verrous DB
🔴 5. Jobs sans retries
Un job avec RETRIES = 0 ne sera plus exécuté.
📌 Solution :
Réinitialiser les retries via Cockpit
Corriger l’exception initiale
🔴 6. Problèmes en environnement cluster
Dans un cluster :
Tous les nœuds doivent partager la même base
Une dérive d’horloge peut bloquer l’exécution
📌 Solution :
Synchronisation NTP
Configuration moteur identique sur tous les nœuds
🔴 7. Code personnalisé bloquant
Les Java Delegates ou Listeners peuvent :
Bloquer des threads
Créer des boucles infinies
Geler les transactions
📌 Solution :
Éviter la logique lourde dans les delegates
Utiliser des workers externes
Ajouter des timeouts et logs
3️⃣ Checklist de diagnostic rapide
✔ Cockpit → Jobs
✔ Logs DEBUG :
✔ Vérification des verrous DB
✔ Thread dump
✔ Historique des incidents
4️⃣ Bonnes pratiques en production
✅ Activer explicitement le Job Executor
✅ Ajuster le pool de threads selon la charge
✅ Surveiller ACT_RU_JOB
✅ Utiliser les async boundaries avec précaution
✅ Externaliser les traitements lourds
5️⃣ Besoin d’aide experte ?
Si vos jobs :
s’arrêtent aléatoirement en production
génèrent des incidents répétés
posent problème après montée en charge
Un accompagnement professionnel est recommandé.
💼 Support professionnel disponible
Si vous rencontrez des problèmes sur des projets réels liés à Camunda en production, au Job Executor ou aux performances, je propose des services de conseil payants, débogage en production, support projet et formations ciblées.
📧 Contact: ishikhanirankari@gmail.com | info@realtechnologiesindia.com
🌐 Website: IT Trainings | Digital lectern | Digital rostrum | Digital metal podium
Comments
Post a Comment