lundi 21 juin 2010

BPMN 11g - intercept process - intercepter un processus

Voici un article sur BPMN 11g qui est proposé avec la SOA Suite 11G PS2.


J'ai créé un processus qui comporte une étape de "timer" et lorsque celui-ci compte le temps restant, j'ai souhaité le stopper avec l'arrivée d'un nouvel élément sur le même processus.






Pour cela on utilise la normalisation WS-Adressing de façon à retomber sur la même instance qui à précédemment et qui a démarré mon compteur.

Pour plus de détail sur le WS-Adressing dans la Soa Suite je vous propose cet article: ICI


Pour indiquer à BPMN 11G que l'évèment du sous processus doit interomptre le processus maitre, il suffit d'indiquer dans le start2 du processus (interrupting event):

Ensuite vous déployer le processus BPMN 2.0 vers Soa Suite, et depuis un SoapUi par exemple vous appeler la première opération d'accès au processus (opération dans mon exemple) avec un WS-adressing spécifique. Puis quelques secondes après on utilise le même Web Service d'interface du SCA mais cette fois ci avec la méthode opération1 (dans mon exemple) tout en indiquant le même id WS-adressing.




Nous avons alors 2 instances de composite SCA avec le même conversation ID:


En zoomant sur le processus BPMN, celui-ci a bien été stoppé par un autre message sur la même instance, et le sous-processus à achevé le processus par d'autres étapes:




Sachez également que des actions d'interruption de processus peuvent être également réalisée sur une étape comme ci-dessous sur la tâche humaine:

Je vous propose mon projet jdev11 sur ce lien en téléchargement: ICI

lundi 14 juin 2010

Arvato Services - référence SOA 11G


Voici une référence SOA Suite 11G : Arvato Service

Le DSI vous explique son projet SOA sur les technologies Oracle dans cet extrait de la vidéo:



jeudi 3 juin 2010

Error Hospital 11G PS2


Dans cet article je vous propose de tester et d'implémenter la gestion des erreurs (Error Hospital) dans Soa Suite 11G PS2 (applicable également sur BPMN11G).

Avant tout il faut savoir qu'il n'y a rien à développer pour gérer vos erreurs et d'en définir l'algorythme de traitement.


Oracle dans Soa Suite propose cette fonction. Elle provient notamment de la version 10G et a été améliorée et totalement intégrée à Enterprise Manager 11G.


La première étape consiste à spécifier sur votre composite SCA votre traitement d'erreurs. Pour cela on utilise 2 fichiers de configuration:


- Fault-Policies.xml contient les conditions et actions à prendre en compte pour traiter les erreurs.


- fault-bindings.xml permet de faire le lien entre les composites et actions.


Ces 2 fichiers sont déployés dans le composite:

Il suffit de les rajouter au même niveau que le fichier composite.xml.

Puis en fonction des actions souhaitées, le composite en cas d'erreur sera automatiquement ou manuellement traité. Vous pouvez également définir votre propre classe java de traitement. Vous pouvez aussi associer plusieurs actions et tests sur les codes erreurs par exemple.


Pour plus de détails sur les actions reportez vous à la documentation: ICI


Une fois le composite déployé on peut donc le relancer en cas d'erreur (mon exemple est disponible en téléchargment plus bas). Depuis la console Enterprise Manager, en cas d'erreur vous pourrez alors relancer manuellement (dans mon exemple):




Afin d'optenir à la fin de l'execution un composite qui à rencontrer une erreur qui a été résolue:




Projet 11G contenant mon composite + traitement d'erreur (fichiers xml): ICI