Exécution Bloquée sur une Passerelle Parallèle en BPMN (Camunda) – Causes et Solutions

 

Introduction

Lors de la conception de workflows BPMN avec des moteurs comme Camunda, un problème fréquent est que l'exécution du processus reste bloquée au niveau d'une passerelle parallèle (Parallel Gateway).

Le modèle BPMN peut sembler correct, mais l’instance du processus n’avance plus.

La raison principale est la gestion des jetons (tokens) dans les passerelles parallèles.

Une passerelle parallèle (AND Gateway) divise le processus en plusieurs chemins exécutés en parallèle et attend ensuite que tous les jetons arrivent avant de continuer.

Si un seul jeton manque, l’exécution reste bloquée indéfiniment.


Fonctionnement d'une Passerelle Parallèle

4

Une passerelle parallèle fonctionne de deux manières:

1️⃣ Division (Fork)

Un jeton entrant est divisé en plusieurs jetons exécutés en parallèle.

Exemple :

Tâche A
|
Passerelle Parallèle
/ \
Tâche B Tâche C

Les tâches B et C s'exécutent en même temps.


2️⃣ Synchronisation (Join)

La passerelle attend tous les jetons entrants avant de continuer.

Tâche B
\
Passerelle Parallèle
/
Tâche C

Le processus continue seulement lorsque les deux tâches sont terminées.


Pourquoi l’Exécution Peut-elle se Bloquer ?

1️⃣ Jeton Manquant (Deadlock)

Si une branche ne produit jamais de jeton, la passerelle attend indéfiniment.

Exemple :

Passerelle Parallèle
/ \
Tâche B Tâche C
|
Erreur

Si Tâche C échoue ou ne s’exécute pas, la synchronisation ne se produit jamais.


2️⃣ Mauvaise Modélisation BPMN

Les erreurs fréquentes incluent :

  • passerelle de division sans passerelle de synchronisation

  • flux de séquence manquant

  • boucle incorrecte

Exemple d’erreur :

Division Parallèle
/ \
Tâche B Tâche C

Synchronisation
^
|
Tâche B seulement

La synchronisation attend deux jetons mais n’en reçoit qu’un.


3️⃣ Événements d’Exception

Des événements comme :

  • événement d’erreur

  • événement de minuterie

  • événement d’annulation

peuvent interrompre un chemin parallèle avant qu’il atteigne la passerelle.


4️⃣ Jobs Asynchrones Non Exécutés

Dans Camunda, une tâche peut être configurée avec :

camunda:asyncBefore="true"

Dans ce cas :

  1. Un job est créé

  2. Il est stocké en base de données

  3. Le Job Executor doit l’exécuter

Si le Job Executor est arrêté, l’exécution semble bloquée.


Exemple de Cas Réel

Start
|
Passerelle Parallèle
/ \
Approve Notify
| |
Passerelle Join
|
End

Si la tâche Notify ne s’exécute jamais, la passerelle attendra indéfiniment.


Bonnes Pratiques pour Éviter les Blocages

✔ Toujours associer une passerelle de division avec une passerelle de synchronisation.

✔ Éviter la logique conditionnelle dans les chemins parallèles.

✔ Surveiller les jetons avec :

  • Camunda Cockpit

  • outils de monitoring BPM

✔ Gérer correctement les erreurs avec des événements de bordure.

✔ Utiliser d'autres passerelles lorsque nécessaire :

PasserelleUtilisation
Exclusive Gatewayun seul chemin
Inclusive Gatewayun ou plusieurs chemins
Event Gatewayattente d'événements

Conseils de Débogage

Si votre processus est bloqué :

  1. Ouvrir Camunda Cockpit

  2. Vérifier les tokens actifs

  3. Inspecter les chemins entrants de la passerelle

  4. Vérifier les jobs et incidents

  5. Examiner les logs du moteur BPM

Dans la majorité des cas, le problème est un jeton manquant.


Articles Recommandés

Consultez également d’autres articles sur :

👉 https://shikhanirankari.blogspot.com/

Suggestions :


Conclusion

Une exécution bloquée sur une passerelle parallèle est généralement due à :

  • un jeton manquant

  • une mauvaise modélisation BPMN

  • un job asynchrone non exécuté

Comprendre la gestion des jetons permet de concevoir des workflows fiables et robustes.


💼 Support professionnel disponible

Si vous rencontrez des problèmes sur des projets réels liés au développement backend d’entreprise ou à l’automatisation des workflows, je propose des services de conseil payants, de débogage en production, de support projet et de formations ciblées.

Les technologies couvertes incluent Java, Spring Boot, PL/SQL, Azure, CMS, ainsi que l’automatisation des workflows (jBPM, Camunda BPM, RHPAM, Flowable), DMN/Drools.

📧 Contact: ishikhanirankari@gmail.com | info@realtechnologiesindia.com

🌐 Website: IT Trainings | Digital lectern | Digital rostrum | Digital metal podium     



Comments

Popular posts from this blog

OOPs Concepts in Java | English | Object Oriented Programming Explained

Scopes of Signal in jBPM

jBPM Installation Guide: Step by Step Setup