vendredi 28 décembre 2007

Bonne Année 2008 à tous ....

je vous souhaite à tous une excellente année 2008 !!







jeudi 27 décembre 2007

Sensor Edge Server (SES) et eflow pour appeler un Web Service

Ce mémo vous explique trés simplement comment relier un SES avec un Web Service présent par exemple sur le bus ESB Oracle, ou vers un autre webservice de votre choix.

Dans SES, vous avez par défaut la possibilité d'utiliser EFLOW (event flow), afin de propager vos données du RFID vers le monde informatique.

il suffit de placer un fichier eflow.xml dans le répertoire de votre SES ce qui correspond à :

ORACLE_HOME\j2ee\home\applications\edge\edge\config

ce fichier explique ce que fera le SES dans le cas où votre événement RFID (lecture de tag par exemple) correspond à vos critères. Pour le cas de ce mémo, il va propager l'information dans une interface ESB Oracle. Cette interface n'est autre qu'un Web Service dont la structure comporte les paramètres suivants :


Ensuite vous devez stopper le SES, placer le fichier Eflow.xml dans le répertoire que nous avons décrit ci-dessus. Dans ce fichier vous pouvez librement rajouter des actions, suite à un événement RFID.


Oracle vous propose un fichier eflo.xml contenant beaucoup de commentaires. Je vous propose une version plus simple à télécharger sur ce lien : http://hugues.simonnet.free.fr/logiciels/blog/eflow.xml


Noter que dans ce fichier vous devez spécifier :

- le WSDL de réception

- la méthode à appeler

- le namespace xmlns de votre Web Service

Lors du démarrage du SES vous devez avoir ce type de ligne dans les log de l'application edge :

ORACLE_HOME\j2ee\home\applications\edge\edge\log\edgeX.log
(où X est le numéro du fichier)

Thu Dec 27 16:59:15 CET 2007(8): ThreadFactory: New thread Name=SES.TF.EventFlow Runnable=oracle.edge.tools.eflow.EventFlow@86f847
Thu Dec 27 16:59:15 CET 2007(8): Valid dispatcher preloaded, using it


PS:
Noter également que EFLOW est trés ouvert, vous pouvez implémenter votre propre classe java de propagation de l'information RFID, en déclarant une classe java dans le fichier eflow.xml:

comme cela est fait pour l'appel d'un web service:

component name="callWs" class="oracle.edge.tools.eflow.impl.WsState"

exemple:
component name="callHugu" class="com.hugu.tools.MaClasseBlog"

Cette classe peut ainsi faire appel à ce que vous voulez ....

mercredi 26 décembre 2007

ESB Oracle - problèmes de connexion

Un petit mémo sur l'ESB:

En cas de problème de connexion à votre ESB Oracle, soit pour un déploiement vérfier ces informations dans le schéma ORAESB. Ces informations doivent être présente dans la table esb_parameter de votre base de donnée :


insert into esb_parameter values ('PROP_NAME_MONITOR_TOPIC_JNDI','OracleASjms/ESBMonitorTopic');
insert into esb_parameter values ('PROP_NAME_ERROR_XATCF_JNDI','OracleASjms/MyXATCF');
insert into esb_parameter values ('PROP_NAME_ERROR_RETRY_JNDI','OracleASjms/ESBErrorRetryTopic');
insert into esb_parameter values ('DT_OC4J_HTTP_PORT','<>');
insert into esb_parameter values ('PROP_NAME_CONTROL_TCF_JNDI','OracleASjms/MyXATCF');
insert into esb_parameter values ('PROP_NAME_MONITOR_TCF_JNDI','OracleASjms/MyTCF');
insert into esb_parameter values ('PROP_NAME_ERROR_TOPIC_JNDI','OracleASjms/ESBErrorTopic');
insert into esb_parameter values ('PROP_NAME_ERROR_TCF_JNDI','OracleASjms/MyTCF');
insert into esb_parameter values ('PROP_NAME_CONTROL_TOPIC_JNDI','OracleASjms/ESBControlTopic');
insert into esb_parameter values ('PROP_NAME_DEFERRED_TCF_JNDI','OracleASjms/MyTCF');
insert into esb_parameter values ('DT_OC4J_HOST','<>');
insert into esb_parameter values ('PROP_NAME_DEFERRED_XATCF_JNDI','OracleASjms/MyXATCF');
insert into esb_parameter values ('PROP_NAME_ERROR_RETRY_TCF_JNDI','OracleASjms/MyXATCF');

vendredi 21 décembre 2007

Utilisation de AQ (Advanced Queueing) avec SOA

Cet article va vous expliquer comment utiliser AQ d'Oracle (MOM interne de la base de données) avec Bpel ou ESB. AQ peut être comparé à MQSerie de IBM.

Tous les messages sont stockés dans la base Oracle et vous assure de les retrouver quoiqu'il se passe, notamment en mettant en oeuvre l'option Oracle RAC (Cluster de la base de donnée).

La première étape consiste à créer une queue dans votre base de donnée (9i jusqu'à 11g). Pour ma part j'utilise 10g. On peut bien sure scripter la création d'une queue ou alors utiliser l'interface graphique d'administration de votre base de donnée.

Aller sur le "Database Control" qui est une webapp livrée avec votre base de donnée. Si elle ne démarre pas vérifier que le service Windows associé est bien démarré.
Pour ma part, il s'agit de l'URL : http://hsimonne-fr.fr.oracle.com:1158
(où hsimonne-fr.fr.oracle.com est le nom de mon serveur)

Connectez-vous en tant que SYSDBA puis cliquer sur l'onglet "maintenance". Dans cette rubrique, vous avez "Stream", cliquez sur "setup", puis "messaging". Vous devez arriver à ce type d'écran:




Cliquez ensuite sur "CREATE" puis sélectionner "Normal Queue, Fixed Datatype".

Saisir un nom pour votre "queue de message" et une table associé pour y stocker les informations.
Vous devez ensuite créer une table qui stockera l'ensemble de vos messages :

Le nom de table doit être précédé du schema comme "EDGE" .
Exemple :

Cliquez ensuite sur "Finish". Pour rendre actif votre queue AQ, il faut lui associer un "Subscriber". Cet objet va gérer la réception des messages et la consommation de ceux-ci.

Sélectionnez alors :

puis "GO" et dans l'écran suivant "CREATE" pour arriver sur cela :



Entrez un nom de "subcriber" et le nom de la queue précédemment créer avec son schéma devant comme dans l'image ci-dessus. Voila c'est terminée pour la partie DataBase.

Ensuite dans votre Jdev préféré, soit vous pousser un message depuis l'ESB ou depuis BPEL en utilisant l'adapteur proposé en standard pour AQ adapter:


puis suivre les étapes suivantes:

Attention ! Spécifier bien une connexion database avec l'utilisateur ayant accès au schéma dans lequel réside votre queue.


Spécifier comme ci-dessus si vous consommer ou envoyer un message, puis sélectionner ensuite votre queue depuis cet écran :


Spécifier ensuite si vous voulez corréler les messages, c'est à dire dépiler ou envoyer un message contenant un certain identifiant (sinon ne rien mettre):




Spécifier le format du message stocké, en utilisant par exemple un XSD:



Et voila c'est fini pour envoyer un message AQ !

Si vous souhaitez maintenant le consommer, il suffit de prendre le même adpateur AQ et de spécifier que vous consommer. Attention ! Dans ce cas il faut spécifier le "Subscriber" configuré dans la Base de donnée, exemple:




Ainsi, votre ESB Oracle ou Bpel Manager peut envoyer / consommer des messages avec AQ.

vendredi 14 décembre 2007

Interfaces Web Services - Oracle BAM

Depuis le super outil Oracle BAM 10.1.3.x, vous pouvez accèder aux interfaces Web Services proposés dans l'outil.

Vous pouvez ainsi pousser des données directement dans vos dataObjects de votre BAM, il suffit d'utiliser l'Url:

http://hsimonne-fr:8080/oraclebam/services/DataObject/DataObjectOperations.asmx


Pour récupérer, créer, supprimer des dataObjects :

http://hsimonne-fr:8080/oraclebam/services/DataObject/DataObjectDefinition.asmx


ainsi pour la méthode UpSert du premier lien "asmx", on peut envoyer la réquête exemple suivante (en utilisant par exemple SOAPUI ou l'interface .Net de Oracle BAM)


Détail du 3iem champ sur cette image ci-dessous:
via SOAPui :


j'attire votre attention sur la fenêtre en bas à gauche, il faut passer une authentification vers le web service OracleBam

mercredi 28 novembre 2007

Oracle Application Server - Opmn (adresse IP)

Un petit mémo sur le fichier opmn.xml présent dans votre HOME_ORACLE/opmn/conf.


Si votre machine possède plusieurs adresses IP disponibles, votre serveur OAS peut ne pas répondre à votre requêtes http si les paramètres suivants ne sont pas bien renseignés.

(cliquez sur l'image pour avoir le détail du XML)





ipaddr remote="ip" request="ip" permettent de spécifier votre ip pour les requêtes et un addresse exterieur avec le paramètre remote.

Si comme dans mon cas (sur mon portable) vous utiliser la carte loopBack de Microsoft pour simuler un réseau local même sans cable ni wifi, vous pouvez spécifier "ip" dans les 2 cas égales à par exemple : "10.10.0.1"

samedi 24 novembre 2007

Open World Oracle 2007

Comme chaque année, les présentations d'Oracle Open World sont disponibles en ligne :

http://www28.cplan.com/cc176/catalog.jsp

(utilisateur = cboracle / mot de passe = oraclec6)

thk à Mr pinto

Retrouver votre mot de passe XP

Si vous avez perdu votre mot de passe XP de n'importe quel compte utilisateur,
voici une solution testé par Hugu pour le ré initialiser :

Aller sur :

http://www.fullandfree.info/software/windows-key-enterprise-edition-v73-build-1643/


suivez les instructions et vos comptes auront alors un mot de passe = 12345

J'ai également testé une autre solution à base d'un CD linux bootable, toutes les infos sur http://home.eunet.no/~pnordahl/ntpasswd/



Ps: windows-key-enterprise existe aussi en version officielle : 45$ le bout tout de même

mercredi 21 novembre 2007

Oracle au RFID Show 2007 à Paris (cnit stand A3)


Un petit mémo depuis le salon RFID 2007 de Paris qui se déroule au CNIT (La défense), beaucoup de visiteurs avec de nombreux projets ...


Je vous propose sur mon blog en avant première ma présentation de ce jour 14H sur l'application des standards EPC global - GS1 avec les outils Oracle.


Bonne lecure si vous ne pouvez pas venir ;)


voici le lien vers mon PPT : ici


Et enfin pour voir un exemple d'utilisation de la norme EPC avec les Oracle il suffit de regarder la viewlet présente sur ce lien (attendre la fin de téléchargement du flash ;) ) : ici

lundi 12 novembre 2007

Bpel - XSL - Sequence Oracle

Un petit mémo sur le XSL mapper disponible dans Bpel Manager & l'Esb d'Oracle.

Afin de remplir un champ par le résultat d'une sequence DataBase, il suffit d'utiliser directement dans votre transformation XSL la fonction :

orcl:sequence-next-val("SEQ_PROVISOIRE","jdbc:oracle:thin:gips/gips@10.10.10.10:1521:db10g")

et l'on récupère ainsi la valeur de la séquence.
Ensuite, vous pouvez facilement insérer le résultat de votre transformation directement dans la base Oracle.

ps: Merci à pdelacou ;)

jeudi 8 novembre 2007

Appel d'une servlet depuis BPEL


Si un service de votre système d'information expose une servlet ou une URL en utilisant le protocole http, Bpel peut l'utiliser.

Ce mécanisme peut être trés pratique car il permet d'utiliser une technologie différente de JAVA, comme par exemple service IIS, PHP, ... directement dans BPEL.

L'exemple d'appel ci-dessous utilise une servlet java trés simple qui retourne un flux XML.
Le source java de cette magnifique servlet est disponible sur ce lien : ici

Maintenant le problème est d'appeler cette url directement via BPEL. Pour cela on utilisera un fichier WSDL customisé. C'est à dire que l'on va décrire dans ce WSDL la structure XSD d'envoi de paramètre et la structure de réception.

le WSDL complet est disponible sur ce lien : ici

il est important de bien comprendre ce WSDL:

  • l'appel de l'URL est positionné sur cette ligne :
http:address location="http://hsimonne-fr.fr.oracle.com/DemoSOA-ServletHttp-context-root"

  • Le nom de la servlet ou du service (php, asp, aspx ...) est présent sur la ligne :

http:operation location="/maservlet"

Ensuite il faut inclure ce WSDL dans votre projet BPEL et d'ajouter un partnerLink en sélectionnant ce WSDL.

Une tâche Invoke permet ensuite d'appeler votre partnerLink.

retrouvez l'ensemble du projet BPEL (à ajouter dans votre jdev) sur ce lien : ici

plus d'infos en anglais sur : http://technology.amis.nl/blog/?p=1273#comment-156033


mercredi 7 novembre 2007

ce soir 15 km/h de moyenne dans Paris

Dans ce mémo je vous fait part de mon compteur de voiture : Porte Maillot => Porte d'orléans soit 1H30 !!!!!
avec une moyenne de 15 km/h !

je commence à penser sérieusement au :

http://www.e-solex.fr/index.html


a+

vendredi 2 novembre 2007

XSD depuis une table (oracle ou une autre DB)

Comment créer un XSD correspondant à une table SQL ?
Trés simple : il suffit d'utiliser un outil ShareWare "XML Converter"
qui permet de se connecter à votre base de données et à partir de la table sélectionnée dans sortir le XSD associé, voici une copie d'écran du logiciel :

http://xml-converter-professional.rustemsoft.qarchive.org/_screenshot.html

Pour plus de détail et pour le downloader :

http://www.rustemsoft.com/

PS: Attention, cet outil utilise des tags XSD spécifique pour Microsoft, il est bon de faire le ménage sur le XSD avant de l'intégrer dans votre Bpel Process Manager

Bon XSD à tous ....

mardi 30 octobre 2007

BPEL & Excel


Voici un mémo sur des api java permettant de lire, créer, modifier ... une feuille excel.


Bpel peut ainsi soit directement en java (tâche javaexec), soit via un web service effectuant cette opération utiliser les api gratuites :



y a même un tutorial sur :



;)

vendredi 26 octobre 2007

Oracle Cics Adapter - License.txt

Comment insérer la licence suite à votre installation de l'adapteur Oracle sur votre Cics.


Il faut avant tout ouvrir votre Studio Oracle et disposer du CD d'installation ou du fichier téléchargé du site Oracle (en bref l'installation).


Vous devez renseigner la licence pour chacunes de vos machines MVS que vous avez configurées.

comment procéder ?

- Ouvrir le Studio "Oracle Studio for Legacy Adapters"
- Aller sur une de vos machines que vous avez spécifiée, faire un clic droit dessus et procéder ainsi :


puis sélectionner le fichier license.txt présent dans l'installation du produit : Mon_intall\adapters_10131_win32\Oracle_Connect\CICS_Legacy_Adapter\license.txt



puis confirmer ...
La license est maintenant connue pour le studio et pour les deamons de votre CICs

jeudi 25 octobre 2007

Oracle - CICs Adapter et Oracle studio for Legacy Adapters

Voici un petit mémo pour utiliser Oracle Studio for Legacy Adapters en mode off-line (non connecté à un CICs).

Pour effectuer cela j'ai télécharger un exemple de code Colob MicroFocus sur :

http://www.csis.ul.ie/COBOL/examples/default.htm#SimplePrograms



Multiplier.cbl



Ensuite il faut procéder ainsi :

- créer une connexion déconnecté vers votre CICs

- Ajouter votre fichier Cobol par le bouton Add ci-dessous




- modifier si besoin les paramètres de parsing de votre Cobol




- Paramètrer les variables d'entrées / sorties


La liste déroulante propose par défaut les entrées sorties de votre programme Cobol







- publier votre strucutre dans l'annuaire Meta Data, que vous pourrez appeler depuis Bpel Process Manager




Toute cette manipulation ci-dessus permet de valider un mapping Cobol / Adapter CICS


Dans le cas d'une intégration avec une machine CICs disponible il faut :


- Ajouter une machine dans le studio :




- Configurer votre Bpel Server via la console d'administration:

Les paramètres à modifier sont :

LegacyServer: The IP address of the server where Oracle Connect is installed.

LegacyPort: The port number of the server where Oracle Connect is installed. For a single port, the default is 2551.


(Repeat the previous step for each Oracle Connect server to be used by Oracle BPEL Process Manager. Use a comma as a separator between the different servers and ports.)


Sauvegarder le paramètrage et redémarrer votre SOA suite ;)


Ensuite depuis jdevelopper 10.1.3.1 vous pouvez sélectionner vos interfaces Web Services correspondant à vos transactions CICs


Note sur CICS:
La version V3R1 de CICS permet d'après la doc IBM de rendre accèssible tout programme CICs via des WebServices :


mardi 23 octobre 2007

RFID - Show 2007 - Paris la défense (CNIT)



Oracle sera bien évidemment présent sur le salon RFID-SHOW su 21/11/2007 au 22/11/2007.

L'inscription à ce salon est gratuite ! Il suffit de s'inscrire sur http://www.rfid-show.com/
Nous avons un stand de 18m^2 avec des présentations, des démonstrations, et des interlocuteurs pour vos réponses ... Oracle participera également à 2 ateliers :

- Rfid et le supply Chain



A bientôt au Cnit ...

lundi 22 octobre 2007

RFID : Extension des documents EPCIS

La solution Oracle SES (Sensord Edge Server) propose un pack
Oracle Sensor Data Manager : SDM permettant d'être en accord avec la norme EPCIS (Electronic Product Code Information Service) définie par EPC Globlal.

La connexion entre le monde HardWare et le monde logiciel de l'entreprise passe par un serveur dit EDGE (frontière). Le flux va être transformé sous forme de document XML normé (ALE : Application Level Event) définit par EPC Global.

Ensuite ces documents sont inscrits dans un annuaire des mouvements : EPCIS (Electronic Product Code Information Service).

Les interfaces de EPCIS sont normées (notamment sous forme de Web Services) et comprennent plusieurs méthodes : capture, pool ....

Chaque flux xml ALE, est proposé sous différents types de document (objectEvent, TransactionEvent, QuantityEvent ...). La structure de ces documents est validée par EPC Global et est totalement supportée par la solution Oracle.

La normalisation EPCIS offre la possibilité d'étendre les documents "Events" par des zones spécifiques. Ci-dessous la structure proposée en standard par EPC Global :

La solution Oracle supporte aussi l'extension de ce modèle relationnel.

Comment faire pour étendre le modèle dans la solution Oracle :

- Modifier le fichier ORACLE_HOME\j2ee\home\applications\edge\edge\config\isSimpleHandler.xml

- Aller dans sur la ligne correspondant au document que vous souhaitez modifier. Exemple ObjectEvent. On rajoute un champ appelé TRCUKNUM :

- Modifier la structure de la table de stockage correspondant au document ObjectEvent présent dans votre schema EDGE (table: is_object_events):

- Redemarrer votre SES Oracle.

- Pour tester, envoyer une requête vers la méthode Capture de l'EPCIS avec un champ supplémentaire 'TRUCKNUM'. La donnée est alors automatiquement insérée dans votre EPCIS et dans la table correspondant à votre document 'Event'.



- Pour les requêtes à faire via l'interface 'Pool' vous n'avez rien à changer. Vous pouvez utiliser la syntaxe EPC pour vos requêtes comme par exemple 'EQ_TRUCKNUM=12345' qui génére l'ordre SQL suivant vers la table du document : 'SELECT * From objectEvent where TRUCKNUM=12345'

Plus d'infos sur :
http://www.oracle.com/technology/products/sensor_edge_server/index.html

vendredi 12 octobre 2007

Achat en cours ....

Oracle propose 17$ pour BEA,

c'est bien pour moi qui suit chez Oracle depuis 1 an ....

Oracle Letter Proposes to Buy BEA Systems for $17.00 per Share in Cash

jeudi 11 octobre 2007

SMS depuis une classe JAVA vers un GSM en bluetooth

Un petit mémo sur un utilitaire maison.



Ce mémo explique comment envoyer depuis une classe java un SMS vers un destinataire de votre choix. Tout cela se déroule sans réseau IP et uniquement avec votre téléphone. Ce dernier est connécté à un port COM de votre machine Windows. On passe ensuite de commandes Hayes du type (ATI3).

Vous pouvez valider vos commandes AT en utilisant l'utilitaire hyperTerminal de windows :



pour bien connaitre les commandes hayes je vous conseil ce lien url: http://www.smssolutions.net/tutorials/gsm/sendsmsat/

Voici l'architecure :


Pour faire fonctionner le tout il vous faut :

- le package java communication API version Win32 (plus distribuée par SUN) dont voici le lien pour le download API

puis copier la DLL: win32com.dll dans c:\windows\system32

copier comm.jar dans le répertoire de votre jdk favori à cet endroit par exemple: D:\productORACLE\10.1.3.1\jdev10.1.3.3\jdk\lib


Créer dans le même répertoire un fichier nommé javax.comm.properties contenant une seule ligne :

Driver=com.sun.comm.Win32Driver

- paramétrer votre modem nokia dans Windows :






- Télécharger ma classe java (dont voici le source ICI)


- Executer le main de cette classe comme suit avec les paramètres :


  • port COM windows à utiliser
  • message texte du sms
  • numéro de votre correspondant

D:\>java -classpath D:\dev_hugu\DemoSOA\ATCommandes\classes;D:\productORACLE\10.1.3.1\jdev10.1.3.3\jdk\lib\comm.jar D:\dev_hugu\DemoSOA\ATCommandes\classes\atcommandes.Test COM4 "mon message SMS" 0606060606


- La classe peut être transformée en WebService afin d'être appeler de BPEL Process Manager


hé voilou !

ps: voici les liens que j'ai utilisé pour faire cela :

http://christophej.developpez.com/tutoriel/java/javacomm/

http://www.developpez.net/forums/archive/index.php/t-107192.html

http://java.sun.com/products/javacomm/reference/api/index.html

lundi 8 octobre 2007

RFID : Créer son ONS Local

Je vous propose dans ce mémo de vous expliquer comment on peut mettre en place un serveur ONS Local pour une solution RFID.

La norme EPCGlobal a clairement définit l'utilisation de l'ONS. Il existe d'ailleurs une normalisation présente sur le lien :
ONS

Son rôle est de diriger le flux de données EPC (electronic product code) vers le bon EPCIS (electronic product code information service). Ce dernier permet de stocker l'ensemble des évènements liés à ce code EPC présent dans une puce RFID.

Pour mieux comprendre le cheminement des informations RFID je vous propose le PPT associé : Comprendre_EPCIS_ONS

Mettre en place un ONS serveur est assez simple, il suffit de disposer d'un serveur DNS et de suivre la normalisation ONS de EPCGlobal.

On peut utiliser sur Windows SimpleDNS, ou Bind sous Linux pour faire ce type de réalisation :



Il reste alors à bâtir un requêteur java pour questionner votre ONS :

Exemple de code : ma_req.java

Pour être conforme à la norme ONS il faut également déclarer son serveur ONS Local auprès du serveur ONS Root (EPC network).

Ainsi, vos lecture de puce RFID pourront suivre la logique suivante pour déverser en fonction du code EPC l'information sur le bon EPCIS :



ONS resolver est une classe java permettant de passer de EPC code à un nom de domaine :

EPC code :
urn:epc:id:sgtin:0614141.000024.400

Nom de domaine à rechercher dans votre ONS:
000024.0614141.sgtin.id.onsepc.com

Ons resolver procède alors à la recherche via une classe sur les champs NAPTR : ma_req.java

et cela vous retourne le bon EPCIS correspondant à ce produit.

Certes c'est un peu compliquer mais ca marche comme ca chez EPC Global ;)

mercredi 12 septembre 2007

Outil SQL


Juste un petit mémo pour vous présenter mon outil favori pour mes requêtes SQL et autres, en utilisant uniquement les drivers JDBC de tout éditeurs.


Outil téléchargeable sur :





lundi 10 septembre 2007

XPATH count dans BPEL



une petite astuce :

afin de compter plusieurs éléments XML dont le N° de order égale à quelquechose, il suffit d'utiliser l'expression suivante :

ora:countNodes('Receive_1_Read_InputVariable','Root-ElementLignes','/ns2:Root-ElementLignes/ns2:Lignes[ns2:Order_num=$cde]/ns2:Sku')


$cde est une variable précédemment initialisée.

Cette ligne XPATH permet donc de compter toutes les lignes des commandes dont le n° d'entête de commande est égale à la variable "cde"






Journalisation de vos fichiers AS400

Voici un rapide mémo sur les commandes AS400 nécessaire à la mise en place de la journalisation ;)

Journalisation
CRTJRNRCV : créer un récepteur de journal (rattaché à un journal)
CRTJRN : créer un journal
STRJRNPF : démarrer la journalisation
ENDJRNPF : arrêter la journalisation
DLTJRN : supprimer un journal
DLTJRNRCN : supprimer un récepteur.
CHGJRN : modifier un journal
DSPJRN : afficher les entrées d’un journal
WRKJRNA : gérer les attributs d’un journal
ADDRMTJRN : ajouter un journal éloigné (journal source peut être un autre journal éloigné)
SNDJRNE : envoyer une entrée de journal
APYJRNCHG : appliquer les changements journalisés
CMPJRNIMG : comparer les images de journaux
RCVJRNE : recevoir une entrée de journal
RTVJRNE : récupérer une entrée de journal
RMVJRNCHG : supprimer des changements journalisés

BPEL - AS400

Afin de terminer notre tour sur l'AS400, je vais vous expliquer comment j'ai mis en relation Oracle BPEL manager et un AS400.


Avant tout il faut télécharger le driver JDBC JT400.jar permettant d'accèder à l'aS400 et notamment à la base par cette magnifique machine (DB2/400).
Ce driver se trouve dans le package JTOPEN, nous avons besoin que du fichier JT400.JAR.


Procédure d'installation et de paramétrage :

0 - Arrêter complètement votre SOA suite Oracle
1 - copier jt400.JAR dans le répertoire ORACLE_HOME\j2ee\oc4j_soa\applib
2 - Créer un pool de connexion vers votre AS400 & un dataSource associé. Exemple de mon fichier data-sources.xml :

connection-factory

factory-class="com.ibm.as400.access.AS400JDBCDriver"

user="utilisateur"

password="motdepasse"

url="jdbc:as400://192.168.3.50;naming=sql;errors=full"


DataSource associé :

managed-data-source connection-pool-name="AS400pool"

jndi-name="jdbc/MonAS400"

name="MonAS400"

tx-level="local"


3 - Editer le fichier de votre partnerlink (BPEL)
et modifier le wsdl:

///Commenter les lignes suivantes
jca:address location="eis/DB/AS400Clarins" UIConnectionName="AS400Clarins" ManagedConnectionFactory="oracle.tip.adapter.db.DBManagedConnectionFactory" mcf.DriverClassName="com.ibm.as400.access.AS400JDBCDriver" mcf.PlatformClassName="oracle.tip.adapter.db.toplinkext.DB2AS400Platform" mcf.ConnectionString="jdbc:as400://192.168.3.50;naming=sql;errors=full" mcf.UserName="utilisateur" mcf.Password="89F992D76049666E33ABE7C3A0A3E18C"

/// Rajouter la ligne suivante pour faire pointer votre dbadapter vers le pool de OC4J

jca:address location="eis/DB/AS400Clarins"

UIConnectionName="AS400Clarins"
ManagedConnectionFactory="oracle.tip.adapter.db.DBManagedConnectionFactory"



La compilation de votre BPEL générera des warning mais lors de l'exécution du partnerLink, les données sont persistées dans votre AS400.




Note importante :


Afin d'insérer des données dans des tables AS400 via BPEL, il est nécessaire de journaliser vos fichiers AS400 (tables db2/400). Cette opération se fera avec votre administrateur favori de l'AS400

vendredi 7 septembre 2007

Accèder à un programme AS400 depuis JAVA


En utilisant le package open source JTOPEN

vous pourrez facilement accèder aux fonctions offertes par un AS400.



Voici ci-dessous un exemple de classe java utilisant les JAR de JTOPEN pour déclencher un programme AS400 (fichier dans une lib avec l'extension PGM)

voici le source de ma petite classe:

package as400callprg;

import com.ibm.as400.access.AS400;
import com.ibm.as400.access.AS400Message;
import com.ibm.as400.access.AS400SecurityException;
import com.ibm.as400.access.ErrorCompletingRequestException;
import com.ibm.as400.access.MessageFile;
import com.ibm.as400.access.ObjectDoesNotExistException;
import com.ibm.as400.access.ProgramCall;
import com.ibm.as400.access.ProgramParameter;

import java.beans.PropertyVetoException;

import java.io.IOException;


public class CallPrgAs400 {
public CallPrgAs400() {
}

public static void main(String[] args) {
CallPrgAs400 callPrgAs400 = new CallPrgAs400();
callPrgAs400.call();
}


public void call ()
{

// Call programs.
AS400 as400 = new AS400("192.168.3.50", "Utilisateur", "password");

System.out.println("---");
ProgramCall programCall;
String programName = "/QSYS.LIB/GCTEST.LIB/ECPVA.PGM";
System.out.println("--- "+ programName);

ProgramParameter[] parameter;
parameter = new ProgramParameter[0];

programCall = new ProgramCall(as400, programName, parameter);
try{
System.out.println("---");
boolean bb = programCall.run();
System.out.println("--- retour = "+bb);
}
catch (Exception e)
{
e.printStackTrace();
}
}

}

mercredi 5 septembre 2007

Tester une expression XPATH

A partir de votre fichier XML brut, il est possible de tester votre formulation XPATH en allant sur le site :

http://www.xmlme.com/XpathTool.aspx

Bon tests ;)

mardi 28 août 2007

Outil de charge

Un petit article pour vous proposer un outil trés simple d'utilisation pour effectuer des tests de charge (sans casser votre tirelire !!) :

Cet Outil de test en charge d'applications webNeoLoad simule des centaines d'utilisateurs sur votre application web afin de tester sa performance et sa fiabilité en condition de stress.

Pourquoi Neotys?

Tout simplement parce que NeoLoad est l'outil de test en charge d'application web qui allie les fontionnalités et la simplicité à un prix accessible.

une démo sur ce lien

bonne visite sur http://www.neotys.fr/

mercredi 22 août 2007

Statistiques depuis le SQL de Bpel

Afin de connaitre rapidement les instances de processus les plus consommateurs, il suffit d'utiliser la base SQL de BPEL (base de déshydratation). Cela permet également de faire un tableau de bord personnalisé et différent de la console Bpel standard.

Toutes les données se trouvent dans le schema ORABPEL (créé lors de l'installation) et notamment dans la table cube_instance.

La requête suivante permet de connaitre les processus les plus consommateurs (en millisecond) à partir des instances de process qui ont débuté après '2007-8-22:8:00'

/////////////////////////////////////////////////////////////////////////////////////
select cikey, process_id, creation_date, modify_date, max(to_number(to_char(modify_date,'HH24MISSFF3')) - to_number(to_char(creation_date,'HH24MISSFF3')))
from cube_instance
where modify_date > to_date('2007-8-22:8:00','YYYY-MM-DD:HH24:MI')
group by cikey, process_id, creation_date, modify_date order by 5
/////////////////////////////////////////////////////////////////////////////////////

Si vous souhaitez comprendre ensuite pourquoi un processus est lent il suffit de copier la valeur du champ cikey pour la positionner dans la console standard Bpel et voir le détail de ce processus.


ps: pour utiliser un outil SQL trés simple et gratuit je vous propose Oracle SQL Developper

mardi 17 juillet 2007

MiddleWare - dernière analyse du Forrester

Vous trouverez la dernière analyse du cabinet Forrester sur :

Forrester-Q03-2007

Bonne lecture .....

mercredi 11 juillet 2007

Jdev v11

Toute la puissance de Jdev 11 permet dans le même outil d'effectuer des applications J2EE facilement (voit trés facilement par rapport aux autres outils). JDev est basé sur les standards comme JSF, EBJ 3 .....

regarder ce lien :

http://www.oracle.com/technology/products/jdev/11/index.html

et notamment toutes les vidéos qui permettent de bien visualiser l'évolution de Jdev. Pour rappel c'est Jdev qui permet en interne à Oracle de bâtir les applications orientées Fusion.

mardi 3 juillet 2007

SOA - SCA ... tout savoir

pour tout savoir sur SCA :

Service Component Architecture Specifications

il suffit de visiter le site http://www.osoa.org


un petit extrait ...

Service Component Architecture (SCA) provides a programming model for building applications
and solutions based on a Service Oriented Architecture. It is based on the idea that business
function is provided as a series of services, which are assembled together to create solutions that
serve a particular business need. These composite applications can contain both new services
created specifically for the application and also business function from existing systems and
applications, reused as part of the composition. SCA provides a model both for the composition
of services and for the creation of service components, including the reuse of existing application
function within SCA composites.

lundi 28 mai 2007

Analyse de trame TCP

Si vous souhaitez analyse les trames TCP ou HTTP entre 2 points (client et le serveur) il suffit d'utiliser un outil trés pratique :

http://www.ethereal.com/download.html

il permet en effet de visualiser même pour des non expert du réseau les échanges entre un navigateur et un serveur http.

jeudi 10 mai 2007

Trouver le bon port OPMN

Afin de connecter votre Jdeveloper favori sur un serveur Oracle Application Server (un des plus puissant du monde cf: spec.org)

il suffit de lancer la commande (unix ou Windows):

D:\productORACLE\10.1.3.1\OracleAS_1\opmn\bin>opmnctl.exe status -port
hsimonne-fr:6003


une fois que vous avez ce port vous pouvez déployer votre développement sur OC4J

lundi 7 mai 2007

iHat 10.1.3

IHAT est un outil de supervision globale qui vous permet d'avoir une représentation graphique de vos JVM, serveurs Apache, OC4J ... via OPMN (Oracle® Process Manager and Notification)

il suffit de télécharger cet outil sur :

OTN

de configurer votre script de démarrage IHAT comme celui-ci :

java -classpath d:\productORACLE\10.1.3.1\OracleAS_1\opmn\lib\optic.jar;ihat.jar;. oracle.ias.opmn.ihat.WebServer 81 hsimonne-fr.fr.oracle.com:6003

puis de lancer votre navigateur favori avec l'url : http://localhost:81

afin d'optenir la mire suivante :





Afin de visualiser plusieurs OPMN dans la même console Ihat, il vous suffit de modifier le fichier XML opmn.xml avec les paramètre suivants :

vendredi 4 mai 2007

Java options

Voici un lien trés simple pour bien connaître l'ensemble des paramètres de votre JVM.

certes c'est en anglais mais bon .....

java -Options

je vous propose aussi d'utiliser un outil graphique "CGviewer" disponible sur le lein ci-dessus afin de visualiser le comportement de votre JVM :

mardi 17 avril 2007

XSL transformation dans Jdev

voici un cas simple de tranformation xsl :

comment faire l'équivalent d'un "SELECT Group By" en XSL
pour passer de la source suivante :




vers la destination suivante:





il suffit d'utiliser la solution xsl suivante avec notamment:

xsl:for-each select="/ns0:VoyageProcessResponse/ns0:ListeValidation[not(ns0:NumeroVoyage = preceding-sibling::ns0:ListeValidation/ns0:NumeroVoyage)]"


cf. fichier xsl