mardi 27 janvier 2009

Retour sur l'évènement Oracle Fusion Middleware du 20/01/2009

Si vous souhaitez récupérer les présentations et revoir les vidéos de ce magnifique évènement je vous propose ce lien:


http://www.oracle.com/global/de/events/2008/roadshows/fusion_middleware_forum/france/downloadpage.html


Bonne lecture
;)

jeudi 22 janvier 2009

SB transport - entre BPEL PM et OSB

Après avoir détaillé le transport BPEL-10g (ICI), je me devais de préciser le transport SB.


Le but de cet article est de pousser un message depuis BPEL en utilisant la préconisation de la doc (ICI)

pour effectuer le lien suivant:

Avant tout il faut créer dans OSB un Business Service. Dans mon cas j'ai utilisé un BS qui pousse un message JMS dans une queue de OSB.



Ensuite en utilisant un WSDL que vous créer avec Eclipse WorkShop ou depuis Jdev vous configurer l'interface de consommation à savoir le PROXY service.

Notre proxy va se baser sur notre WSDL (exemple : ICI). Il faut importer ce WSDL en tant que ressources et construire comme suit le proxy:



Une fois ces opérations réalisées, nous allons dans Bpel PM pour faire un processus qui va faire du polling sur une table et envoyer à OSB via SB transport le contenu des nouvelles lignes ajoutées:


où l'interface "bdPooling" utilise le DB adapter pour scruter une table et en fonction de la présence de ligne déclenche le processus. Celui-ci effectue un Assign pour initialiser les variable du "partner link" qui est notre proxy service avec le protocole SB transport.

Pour insérer le WSDL de ce proxy de type SB transport, il suffit de l'exporter depuis le bus en utilisant depuis la console OSB l'icone de notre proxy suivant:



Le jar exporté contient alors le WSDL et si besoins les XSD mon exemple: (ICI).


Note: Pour les XSD n'oublier pas de les importer dans votre processus BPEL sinon il ne va pas compiler.



Ensuite on configure dans Bpel PM un partner link qui utilise notre WSDL basé sur le proxy service de type SB Transport:




Deployer ensuite le processus vers votre serveur BPEL PM pour le tester. Pour mon exemple, je rajoute une ligne dans ma table et automatiquement le proxy service par le transport SB pousse le message au BS de type JMS.

Pour être certain, je peux même visualiser le message dans la queue JMS de WebLogic. Cela se fait depuis la console du serveur d'application WebLogic.

Et voilou ... ;)

vendredi 16 janvier 2009

Soa Suite 10.1.3.4 nouveau MLR4# (nouveau patch)

Afin d'avoir la dernière release de la Soa suite, vous pourvez télécharger sur http://metalink.oracle.com
le patch suivant:
TRACKING BUG FOR CUMULATIVE MLR#4 ON TOP OF 10.1.3.4.0
N° de patch : 7586067

mardi 13 janvier 2009

Transport BPEL-10g OSB BPEL

Depuis la version 10.1.3.4 de Soa Suite et avec Oracle Service Bus (Ex: ALSB de BEA) 10gR3 vous pouvez appeler nativement un processus BPEL depuis OSB .

Celui-ci peut être synchrone, asynchrone et/ou utiliser les callBack (retour asynchrones).

Il faut donc importer dans un premier temps le WDSL de votre processus BPEL en tant que ressources dans Eclipse WorkShop:


Ensuite, vous devez créer un Business Service dans OSB en utilisant ce WSDL et lors du paramétrage du Business Service (BS) vous devez spécifier le transport BPEL-10G comme suit:



où le protocole utilisé entre OSB et Bpel PM est OPMN. Pour connaitre sans erreur le port de OPMN, il suffit de lancer la ligne de commande :

d:\productORACLE\10.1.3.1\SOA\opmn\bin>opmnctl status -port

HSIMONNE-fr:6003

L'url pour contacter votre processus doit être similaire à cet exemple:

opmn://HSIMONNE-fr:6003/oc4j_soa/default/Stock/1.0

oc4j_soa correspond au nom de votre instance BPEL

default correspond au nom du domaine bpel

Stock correspond au nom du processus

1.0 correspond à la version du processus (c'est optionnel)

Si vous utiliser un cluster BPEL PM pensez bien a mettre une URL équivalente à :

protocol://host1:port1,host2:port2

Pour plus de détail aller sur :

http://download-llnw.oracle.com/docs/cd/E13159_01/osb/docs10gr3/bpelpmtransport/


samedi 10 janvier 2009

Erreur Opatch pour appliquer un patch sur SOA suite

Si comme moi, vous souhaitez appliquer le MLR#3 de la 10.1.3.4 (disponible avec le N° de patch 7586063) et que la commande Optach ne fonctionne pas et vous retourne ce message d'erreur:

OPatch detects your platform as 207 while this patch 7586063 supports platforms

je vous conseille de passer par un workAround pour appliquer un patch:

mettre la variable d'environnement de Windows suivante:
set OPATCH_PLATFORM_ID=0

puis relancer Opatch apply pour avoir:

OPatch succeeded.OPatch returns with error code = 0

dimanche 4 janvier 2009

Utilisation du format : MFL avec format builder

Cet article trés simplement comment utiliser l'outil Format Builder qui permet de définir la structure de lecture d'un fichier. MFL signifie Message Format Language, ce format existe depuis de nombreuses années dans les produits BEA notamment le plus historique WLI.

Aujourd'hui on retrouve ce format dans OSB (Oracle Service Bus). Il permet de définir un proxy service (interface de consommation) ou un business service (interface de production de service) qui traite un fihcier (lecture ou ecriture).

Le MFL permet donc de définir la structure du fichier et de le rendre lisible pour OSB, WLI ...

Il devient alors par ce biais une simple requête XML.

L'exemple suivant explique comment utiliser MFL format Builder accèssible depuis l'environnement WorkShop Eclipse.




Voici mon fichier type CSV à traiter avec Format Builder

1;test1;test1;test1;test1

2;test2;test2;test2;test2

3;test3;test3;test3;test3

4;test4;test4;test4;test4

Pour cela nous devons avant tout créer dans Format Builder un namespace qui sera interprété par OSB:



Ensuite pour traiter l'ensemble des lignes de ce fichier Csv, nous utiliserons un Group n'ayant pas de limite de parsing:




Ensuite pour chacunes des champs du fichier csv on doit définir un nom de champ et spécifier le séparateur, voir certaines informations supplémentaires comme des valeurs par défaut.





Ainsi de suite sur l'ensemble des champs. Le dernier champ est différent car il doit tenir compte du retour chariot et de passer à la ligne suivante (;\n\r\n\r):







Ensuite votre MFL peut être testé avec le débugger intégré:


Attention dans le testeur n'oubliez pas de faire un retour chariot à la fin de la dernière ligne, sinon une erreur de parsing apparait ....