jeudi 12 février 2009

Calculer un temps passé dans une classe java

Voici un petit mémo java ...
Si vous avez besoins de logger un temps passé dans votre classe java vous pouvez utiliser cela:

// Get current time
long start = System.currentTimeMillis();
// Votre code java ici ...
// Get elapsed time in milliseconds
long elapsedTimeMillis = System.currentTimeMillis()-start;

// Get elapsed time in seconds
float elapsedTimeSec = elapsedTimeMillis/1000F;
// Get elapsed time in minutes
float elapsedTimeMin = elapsedTimeMillis/(60*1000F);
// Get elapsed time in hours
float elapsedTimeHour = elapsedTimeMillis/(60*60*1000F);
// Get elapsed time in days
float elapsedTimeDay = elapsedTimeMillis/(24*60*60*1000F);

lundi 2 février 2009

Oracle BAM V11 - interfaces WebServices

Si vous utilisez Oracle BAM version 11 (BETA), vous pouvez pousser une données ou plusieurs à son référentiel via les interfaces WebServices:

URL (for iCommand interface): http://hostname:port/OracleBAMWS/WebServices/ICommand

Web service namespace: http://xmlns.oracle.com/bamOther

URLs:

http://hostname:port/OracleBAMWS/WebServices/ManualRuleFire?wsdl

http://hostname:port/OracleBAMWS/WebServices/DataObjectDefinition?wsdl


http://hostname:port/OracleBAMWS/WebServices/DataObjectOperationsByID?wsdl

http://hostname:port/OracleBAMWS/WebServices/DataObjectOperationsByName?wsdl

http://hostname:port/OracleBAMWS/WebServices/MultiUserReportMailer?wsdl


Voici mon exemple d'appel via SoapUI:



ou encore:

OWSM - gateway introuvable

Si comme moi vous tentez de rajouter une nouvelle gateway à votre outil Web Service Manager, il se peut q'un message du genre apparaisse:


Oracle Web Services Manager Gateway C0003001: Cannot find WSDL for service ....


dans ce cas, il faut modifier le fichier suivant:


ORACLE_HOME\owsm\config\gateway\gateway-config-installer.properties


et bien valider que la propriété :

gateway.component.id=C0003004


contient l'ID de votre gateway.


ensuite en ligne de commande exécuter :

wsmadmin.bat deploy gateway


en se placant dans le répertoire :

D:\productORACLE\10.1.3.1\SOA\owsm\bin


relancer votre test depuis la console OWSM



Ensuite vous pouvez rajouter des notions de sécurité à vos webService en suivant par exemple ce tutorial ... (ICI)

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/