mardi 31 mars 2009

AIA 2.3 installation - SOA Suite 10.1.3.4 MLR4#




Si comme moi vous avez installé AIA 2.3 il se peut que certains soucis apparaissent ...






Regardez bien le fichier de log associé à l'installation présent dans le répertoire AIA_HOME\Infrastructure\install\logs






ou AIA_HOME correspond sur mon PC à D:\productORACLE\10.1.3.1\AIA23

et non pas à ORACLE_HOME de ma SOA Suite !

Conseil : Eviter de choisir un répertoire déjà référencé dans votre inventory Oracle, il est important d'en créer un nouveau au début de l'installeur:

Comme l'indique la documention AIA2.3 installation:

Select a Product to Install Screen
On this screen you set the home directory for installation and select the products to install
(Foundation Pack and PIPs).
The Destination part of the screen, which helps you set home directory, has two fields:
Field Description
Name This is the name of Foundation Pack home directory.

Example:
AIAHOME.

What will you call your Foundation Pack directory?
Foundation Pack home directory name is____AIA23_
Path This is the full file path where the AIA Installer installs the
Foundation Pack product files.

What is the full path of the location where you will install the
Foundation Pack product files?
The full path of the location is _____d:\produitsOracle\AIA23________________


Note. Do not use existing home directories if you want to reinstall Foundation Pack and PIPs.


Conseil:
Dans ma log d'installation j'ai eu:

[exec] 31 mars 2009 16:48:40 oracle.j2ee.jndi.JndiMessages warningInvalidResourceReference [exec] ATTENTION: Référence de ressource jdbc/AIADataSource introuvable. La création de J2EEContext a quand même été autorisée à continuer. [exec] 31 mars 2009 16:48:40 oracle.j2ee.jndi.JndiMessages warningNoTypeFoundAtLocation [exec] ATTENTION: Aucune entrée javax.sql.DataSource trouvée dans null [exec] 31 mars 2009 16:48:40 oracle.j2ee.rmi.RMIMessages EXCEPTION_ORIGINATES_FROM_THE_REMOTE_SERVER

il suffit alors de créer dans weblogic ou EM de oc4j le pool vers AIA (votre base de données avec user= aia et mot de passe=aia) ensuite il faudra rajouter le DataSource avec le nom JNDI suivant:
jdbc/AIADataSource

Enfin à la fin on doit avoir:



Encore un conseil pour terminer :

Il est également possible que l'application Web AIA dont l'url suite à l'installation est:

réponde avec un magnifique 404, il suffit alors de la re déployée soit depuis la console Weblogic soit depuis Enterprise Manager de OC4J.



Ensuite tout fonctionne :




AIA et OSB

C'est actuellement possible d'utiliser OSB au lieu de OESB pour AIA (application intégration architecture)


http://www.oracle.com/applications/aia-foundation-pack-on-service-bus-white-paper.pdf


Bonne lecture ...

jeudi 26 mars 2009

AIA v2.3 - foundation pack

La version 2.3 de AIA est disponible en téléchargement et elle permet de relier vos applications Oracle et non Oracle avec un TCO plus faible qu'un dev classique SOA:




Voici la liste des EBO (enterprise business object - objets communs) disponible dans Oracle Application Integration Architecture:



La liste complète en Excel ICI


Je rappelle également que AIA permet nativement via l'utilisation de PIP (Processus pré intégré) afin de faciliter encore plus vos intégrations entre application Oracle et non Oracle:




mardi 24 mars 2009

AIA blog

Tout sur les nouveautés de AIA sur:

http://blogs.oracle.com/aia/

Bonne lecture ...

jeudi 19 mars 2009

OBR - performances - Oracle Business Rules - BPEL

Afin de valider les performances de OBR en mode fichier ou webdav (voir articles plus anciens), j'ai effectué certains tests.

Pour effectuer le test j'utilise BPEL Console et le Stress Test tools inclus.


sur un process trés simple, c'est à dire qu'il ne comprend qu'une action : "DECIDE" afin d'appeler OBR en mode fichier ou mode webdav.



La règle de OBR appelée est simple :


Premier constat sur le petit bench effecuté, en mode fichier il n'y a pas de soucis les temps de réponses sont corrects, mais en mode WebDav j'ai beaucoup d'attentes dans le serveur Bpel:

Les requêtes s'empilent parce que OHS/OBR ne répondent pas assez vide et frizz ....


J'ai donc décidé de chercher pourquoi. Il s'avère que BPEL appelle l'action DECIDE en utilisant un partner link qui n'est autre qu'une WebApp contenant une servlet qui elle appelle OBR via ses API java. L'appel au référentiel de règles en API java en mode fichier ne provoque pas d'engorgement, par contre en mode WebDav comme l'illustre la console ci-dessus ca va pas fort fort ...

Après plusieurs recherches notamment sur oradav (module webDav proposé par Oracle), j'ai compris que le problème venait tout simplement de OHS dont les paramètres de tuning ne sont pas bon pour WebDav.

En effet, le stresseur Bpel utilise OHS qui déclenche une request OHS pour chacunes des instances BPEL qui appelle chacune à nouveau OHS pour le partnerLink suite à l'action DECIDE qui dans la servlet appelle encore OHS pour récupérer la règle et le référentiel .. Bref, cela fait beaucoup de request/response HTTP pour OHS.
Pour constater cela il suffit de regarder la page OHS http://monserver:monport/server-status
si ce lien n'est pas activé par défaut regarder votre configuration Apache sur ce lien:
Il faut donc modifier les paramètre dans ORACLE_HOME/APACHE/APACHE/conf/httpd.conf et augmenter les paramètres classique APACHE:

- ThreadsPerChild
- MinSpareServers
- MaxSpareServers

je vous propose mon httpd.conf sur ce lien ICI
Ensuite comme moi, vous pourrez constater que le mode fichier ou WebDav pour accèder à OBR est quasi aussi performant dans les 2 cas. Ci-dessous pour Webdav:



et pour le mode fichier:



voilou ...

jeudi 12 mars 2009

BPEL PM avec SQLSERVER en base de déshydratation



BPEL PM utilise généralement Oracle Database, parce que on ne change pas une équipe qui gagne côté performances et facilités d'administration .... ;)


Ceci dit il peut arriver que certains SI (système d'information) utilise SQLSERVER. BPEL PM supporte SQLSERVER.


Il faut donc installer BPEL et la SOA Suite avec Oracle XE dans un premier temps et ensuite modifier les pools pour les re diriger vers SQLSERVER.


Il faudra également télécharger les scripts adaptés à SQLSERVER depuis MetaLink (base de support d'oracle) http://metalink.oracle.com/

Chercher la référence de patch : 6729033


Pour plus d'informations en english :


mercredi 4 mars 2009

UDDI avec BPEL PM 10.1.3.4 - OSR - Oracle Service Registry

Voici un article qui propose de relier BPEL PM à OSR (Oracle service registry).

OSR est un annuaire UDDI qui permet de référencer vos services. Osr propose donc plus de souplesse dans la gestion de vos services: référencement, descriptions, spécifications techniques ....

OSR peut s'installer sur Oracle Application Server ou Oracle Weblogic Server. Cet annuaire UDDI V2 & V3 utilise une base de données pour y stocker l'ensemble des informations de vos services.

Pour mon exemple, j'ai positionné un WebService qui renvoit le chiffre que vous lui pousser ... et je l'ai inscrit dans OSR via l'interface web:








Avec dans un premier temps une référence pointant vers mon service Stock v1.0

ensuite dans BPEL, j'ai créé un processus qui utilise le service Stock v1.0 :
pour rajouter le partner link j'ai effectué un browse depuis Jdev suite à un paramétrage de mon annuaire UDDI:


Ensuite pour que le "endpoint" soit dynamique en fonction de l'information stockée dans OSR, il suffit de positionner sur le partnerLink la propriété registryServiceKey comme suit:






la clé spécifiée est celle du service dans OSR (selection en orange) qui sera différente en fonction de votre OSR. Elle constitue un identifiant unique :


Ensuite dans la console BPEL il faut paramétrer votre lien entre le serveur BPEL et OSR comme suit:




uddiLocation = http://votreserveur:votreport/registry/uddi/inquiry

uddiPassword = urn:unknown (si vous acceder à votre annuaire sans https)

uddiUsername= urn:unknown (si vous acceder à votre annuaire sans https)



Redémarrez votre SOA suite pour que ces paramètres soient pris en compte.

Ensuite lors de l'éxécution du processus BPEL vous aurez ce type de liste d'instance si on spécifie le endpoint du service Stock dans OSR à http://hsimonne-fr/orabpel/default/Stock/1.0 puis à http://hsimonne-fr/orabpel/default/Stock/2.0


On constate que sur le premier appel, Bpel PM contacte OSR pour récupérer le endpoint dynamiquement (qui sera stocké dans le cache wsdl) pour joindre le service Stock.

Ensuite lors du changement et redéploiement du service Stock (processus BPEL) en version 2.0, la seconde éxecution du processus UDDItesthugu_BPELProcess1 (v. 1.0) utilise encore la version 1.0 car je n'ai pas changé le endpoint dans OSR.

La dernière execution du processus UDDItesthugu_BPELProcess1 (v. 1.0) utilise la version 2.0 de Stock car je viens de la modifier dans OSR.

Cela démontre la gestion dynamique des endpoints avec BPEL.

Je vous ferai peut être un article associé à OSB & OSR mais le principe reste le même ...

pour plus d'informations sur OSR: http://www.oracle.com/technology/tech/soa/uddi/index.html

un document de type tutorial en anglais que j'ai utilisé: http://hugues.simonnet.free.fr/logiciels/blog/OSRBPELPM1013IntegrationLab.pdf