vendredi 2 mai 2008

Scheduler pour déclencher un Processus Bpel


Afin de déclencher un processus Bpel / ESB / Classe Java , etc ... la suite SOA d'Oracle propose en standard l'utilisation des API Quartz.


Ces API permettent dans l'exemple que nous allons utiliser de déclencher un processus Bpel toutes les minutes.

La fréquence d'execution du processus est un simple paramètre présent dans le fichier web.xml de la webapplication qui est le "scheduleur".

Ce paramètre de fréquence suit la normalisation Quartz (framework de déclenchement de programme) :




Dans le projet Jdev que je propose à titre d'exemple ci-dessous, il y a 2 classes importantes :
* BPELScheuleServlet : servlet initialisant les classes Quartz et qui prépare un job d'execution

* BPELHelloWorldJob : classe java qui déclenche un processus Bpel via les API Bpel (l'utilisation d'un proxy webservice en java aurait pu être utilisé également)



Il y a également 2 fichiers de paramètrage:


* context.properties : paramètres pour l'accès jndi à votre serveur SOA (notamment l'application parente orabpel)


* bpel_quartz.properties : qui définit les paramètre du moteur quartz déclenché par la servlet


remarque : la méthode executeTest() sans paramètre n'est utilisé que pour du test unitaire via la méthode Main()


Pour télécharger le projet jdev 10.1.3x c'est ici


Il faut préciser le jar orabpel_common.jar au dépliement de l'application web comme suit :





Remarque: une autre solution pour effectuer du scheduling c'est d'utiliser la base de donnée Oracle (plus de détail sur ce pdf : ici)

Aucun commentaire: