mardi 26 février 2008

Démarrer un processus Bpel depuis l'arrivée d'un Email


Bpel Manager d'Oracle peut déclencher un processus métier à partir de l'arrivée d'un email dans une boîte spécifique.

Pour réussir cette recette il faut :


- un serveur email (je vous propose en gratuit : http://www.argosoft.com/ (Mail Server Freeware suffit)

- Soa Suite (du moins Bpel suffira)
- un client email pour pousser l'email qui va instancier votre processus



Paramètrage de Bpel Manager:

- Créer un répertoire : ORACLE_HOME\bpel\domains\default\metadata

- Créer un second répertoire : ORACLE_HOME\bpel\domains\default\metadata\MailService
Ajouter le fichier XML (BpelMailAccount.xml) suivant : ICI dans ce répertoire.

Ensuite, il suffit de créer un Processus Bpel asynchrone qui utilise comme Schéma XSD le fichier présent dans le répertoire en input : ORACLE_HOME\bpel\system\xmllib\Mail.xsd

Ajouter le schéma au projet Jdev (par un Add Schéma dans la vue structure Bpel) utilisé par Mail.xsd (sinon vous aurez des erreurs de compilation) :
ORACLE_HOME\bpel\system\xmllib\common.xsd


Valider la compilation ... Si c'est ok passer à l'étape suivante:

- Configurer l'agent qui va s'activer pour scruter les emails de boîte décrite dans BpelMailAccount.xml.

Il faut éditer le fichier bpel.xml de votre projet et rajouter des lignes pour que le partnerLink scrute les emails:




Ensuite vous déployer et balancer un email dans la boîte en question, et le processus se déclenche .....

Attention, si vous modifier le processus Bpel, le fichier bpel.xml est reinitialisé, pensez à rajouter les lignes pour le fonctionnement de l'agent.

PS: J'ai validé cela sur la version 10.1.3.3 et 10.1.3.1 ... en attendant la V11 SOA

Un grand merci à ce blog :

lundi 25 février 2008

Oracle Business Rules en mode WebDav

Afin de rendre vos règles dynamiques entre l'éxecution du processus Bpel et le changement de paramètrage de vos règles, il faut utiliser Oracle Business Rules avec un serveur Webdav.

On peut d'ailleurs l'activer trés simplement avec OHS (Oracle Http Server). Je l'explique dans un autre article.

Il faut ensuite créer une connexion à votre serveur WebDav dans mon cas OHS:


puis un connexion à votre moteur de règles Oracle Business Rules :


Ensuite dans Jdev 10.1.3x, vous créer un projet Bpel qui utilise une action DECIDE.

Puis cliquer sur le bouton "create decision service" pour avoir l'écran suivant :



Ce qui donne :

Ps: Dans un futur article je vous expliquerai comment on travaille avec RuleAuthor : c'est l'interface web de Oracle Business Rules ....










WebDav avec OHS - Oracle Http Server

Par défaut OHS vous propose d'activer WEBDAV (Protocole d'échange et de partage de documents).
Ce module est pré configuré, il suffit de l'activer dans le fichier de configuration de Apache. Ce dernier ce trouve dans votre répertoire ORACLE_HOME\Apache\oradav\conf\moddav.conf

il suffit de le paramétrer comme suit :




Ensuite il faut créer un nouveau répertoire (correspondant à votre url webdav) dans le home de Apache, c'est à dire dans :
ORACLE_HOME\Apache\Apache\htdocs\rule_repository

NE COPIER PAS de fichier dans ce répertoire, car l'arborescence WebDav serait alors détériorée. Il faut ensuite via un client WebDav (comme ruleauthor) créer ses fichiers.

Il faut alors ré initialiser votre HTTP_SERVER, soit pas un violent Shutdown de SOA soit par la ligne de commande opmn :

ORACLE_HOME\opmn\bin>opmnctl stopproc process-type=HTTP_Server

puis

ORACLE_HOME\opmn\bin>opmnctl startproc process-type=HTTP_Server

et voilou !

Bpel paramètres - runtime & wsdl

Afin de faciliter l'accès à des variables d'environnement, comme par exemple le "hostname" lors de l'execution d'un processus vous pouvez utiliser dans une propritété comme wsdlruntimeLocation ces variables :

http://${hostname}:${http_port}/rules/${domain_id}/${process_id}/${process_revision}/Monservice

The parameters for this syntax are defined as follows:
Parameter
${hostname}
Description
The name of the host that on which the application server is installed

${http_port}
The HTTP port of the application server

${domain_id}
The BPEL domain

${process_id}
The BPEL process name

${process_revision}
The BPEL process version

Ainsi dans la propriété cela permet d'assouplir les déploiements ....

mardi 5 février 2008

AD4J - instrospection de vos Webapp


AD4J permet d'introspecter vos application web J2EE sur n'importe quel serveur d'applications.

Cette offre est proposée sous la forme de Pack dans le produit OEM (Oracle Enterprise Manager).

Datasheet "Diagnostic Pack for Oracle Application Server"
Datasheet "Diagnostic Pack for Non Oracle Middleware"

AD4J est trés simple à mettre en oeuvre, il a un agent qui écoute vos jvm (de vos serveurs d'applications : weblogic, websphere, Oc4j, Sap ... Cet agent est une simple WebApp à déployer.

On peut ainsi réaliser un diagnostique trés rapidement, et bien plus facilement que sur un outil trés complexe comme Willy ou Jprobe ou Mercury ou Precise ...

L'installation est trés simple et le résultat immédiat.

Cela ressemble beaucoup à TRACKER (outil interne BEA France Consulting) sauf que le résultat est plus simple à exploiter. Ce produit est intégré à OEM (grid control).

On visualise en moins de 2 min l'état d'une jvm et les points bloquants de vos webapp. On peut faire un diagnostique rapidement jusqu'à la base de données.


On peut aussi faire des états de type "snapshot" sur un tir de charge et visualiser les méthodes les plus couteuses. Un graphe de l'appel de vos méthodes java est également généré.


D'autres écrans :