Vous trouverez sur mon blog des infos sur différents sujets techniques. Ils proviennent de mes expériences chez BEA, Versata ... et actuellement ORACLE
vendredi 28 décembre 2007
jeudi 27 décembre 2007
Sensor Edge Server (SES) et eflow pour appeler un Web Service
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
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
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
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
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)
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)
où 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
http://www28.cplan.com/cc176/catalog.jsp
(utilisateur = cboracle / mot de passe = oraclec6)
thk à Mr pinto
Retrouver votre mot de passe XP
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)
lundi 12 novembre 2007
Bpel - XSL - Sequence 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
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 :
- 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
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)
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
vendredi 26 octobre 2007
Oracle Cics Adapter - License.txt
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
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
- Configurer votre Bpel Server via la console d'administration:
(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.)
mardi 23 octobre 2007
RFID - Show 2007 - Paris la défense (CNIT)
lundi 22 octobre 2007
RFID : Extension des documents EPCIS
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 ....
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
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
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
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')
où $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
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
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 :
DataSource associé :
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"
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
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
http://www.xmlme.com/XpathTool.aspx
Bon tests ;)
mardi 28 août 2007
Outil de charge
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
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
mercredi 11 juillet 2007
Jdev v11
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
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
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
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
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
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
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