Des boucles sans fin peuvent se produire dans le code JavaScript qui s'exécute au sein des applications IBM Business Process Manager. Vous pouvez configurer des paramètres de détection de boucle JavaScript dans le fichier 100Custom.xml pour détecter les boucles sans fin et éventuellement les interrompre.
L'apparition de boucles sans fin dans le code JavaScript qui s'exécute au sein des applications IBM BPM a une incidence sur les autres ressources. Par exemple, les unités d'exécution de Process Center ou Process Server sont perdues jusqu'à l'arrêt du serveur et cela a une incidence sur la disponibilité du serveur. Toutefois, il peut être difficile d'identifier l'activité JavaScript qui fonctionne en boucle.
IBM BPM surveille le nombre d'instructions JavaScript exécutées dans chaque activité de script. L'exécution JavaScript notifie le moteur IBM BPM lorsque le compteur d'instructions atteint la limite que le moteur a définie. Lorsque le seuil du compteur d'instructions est atteint, le moteur IBM BPM vérifie depuis combien de temps l'activité de script s'exécute.
Si la valeur indiquée par le paramètre loop-detection-duration est dépassée, on suppose que l'activité se trouve dans une boucle sans fin. La durée par défaut correspond à 20 secondes mais vous pouvez configurer votre propre valeur (voir l'exemple ci-dessous).
Par défaut, lorsqu'une boucle sans fin est détectée, le moteur IBM BPM consigne un avertissement dans le fichier SystemOut.log mais l'activité de script continue. Si vous souhaitez configurer le moteur IBM BPM pour arrêter les activités de scripts qui s'exécutent dans une boucle sans fin, associez le paramètre loop-detection-exception à la valeur true.
<common merge="mergeChildren">
<javascript-engine>
<loop-detection-duration>90</loop-detection-duration>
<loop-detection-exception>true</loop-detection-exception>
</javascript-engine>
</common>