IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

JOnAS Java Discussion :

Problème session SGBD oracle pool jonas


Sujet :

JOnAS Java

  1. #1
    Nouveau membre du Club
    Inscrit en
    Août 2009
    Messages
    49
    Détails du profil
    Informations forums :
    Inscription : Août 2009
    Messages : 49
    Points : 37
    Points
    37
    Par défaut Problème session SGBD oracle pool jonas
    Voilà. Je suis confronté actuellement à un petit soucis que je vais vous exposer.

    J'utilise en environnement de production un serveur JONAS 4.10.4. Dans ce serveur JONAS j'ai déployer une datasource XA comme indiquer dans le tutorial JONAS qui pointe sur la rar JonasXA.
    Cette datasource se connecte à une base de donnée oracle 10G R2 via le driver ojdbc14.
    Mon pool de connexion est taillé en pool max à 20 avec un maxage à 2 (Minute)
    et minpool à 0. Je m'aperçois au court de la journée que mon pool est bien taillé et qu'il redescend de manière normale à 2 connexions actives (Vu avec la console admin jonas). Toutefois si je regarde dans le SGBDR j'ai une vingtaine de connexions (Session) de mon serveur qui sont encore présente et déclaré inactive. Comme si la connexion libérée par le serveur n'était pas rendu au SGBD.
    Du coup bien sur le DBA m'est tombé dessus .
    La gestion de mes acces Bdd est confié à hibernate via JPA et utilise les EJB 2.1.

    Par contre je n'ai aucune idée de ce qui peut se passer.
    Est-ce un fonctionnement normal ?
    Hibernate est-il en cause ?
    Est-ce le SGBD ?
    Est-ce du à la datasource XA ?
    Est-ce du au gestionnaire de transaction JOTM de jonas ?

    Bref je ne sais pas dans quelle direction Cherchée.
    Si vous avez besoin d'information complémentaire dites le moi.

  2. #2
    Membre VIP Avatar de kalysto
    Profil pro
    Développeur
    Inscrit en
    Mars 2003
    Messages
    442
    Détails du profil
    Informations personnelles :
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur

    Informations forums :
    Inscription : Mars 2003
    Messages : 442
    Points : 568
    Points
    568
    Par défaut
    J'avais deja vu un truc qui aurait pu ressembler, mais ct plutot le pool de JOnAS qui explosait.
    La base etait tres lente sur certains acces, resultat le DBA tuait la connexion depuis toad et resultat, la connexion restait dans le pool JOnAS...
    Ca a ete fixé dans les versions supérieures de JOnAS.

    Tu pourrais essayer avec la derniere 4.10 histoire de voir ce que ca donne ?

    Avec ces dernieres versions, tu as aussi des operations supplémentaires sur les MBeans des Datasources qui te donnent des informations sur les vrais connexions physiques a la base.
    Tu pourrais voir a partir de la si JOnAS garde qq part des connexions inactives.

    Faut se connecter avec JConsole (en utilisant le jmx service URL qui est donné au démarrage de JOnAS).
    Le MBean en question ca doit etre JCAConnectionFactory je pense.

  3. #3
    Nouveau membre du Club
    Inscrit en
    Août 2009
    Messages
    49
    Détails du profil
    Informations forums :
    Inscription : Août 2009
    Messages : 49
    Points : 37
    Points
    37
    Par défaut
    Je vais essayer de le faire sur un poste en local car je ne peux pas le faire en production.
    En fait ce qui est étrange c'est que coté JONAS tous semble allée correctement.

    Dernier essai en date. J'enlève les droits Delete sur mon utilisateur de la datasource. Ensuite je déclenche un select sur une table un update suivi d'un delete (Du coup erreur JDBC insuficient privilege). Je lance une EJBException dans ma transaction du coup ma transaction est bien rollback (JOTM). Lorsque je regarde dans la base ma session est présente avec le statut inactif. C'est incompréhensible.
    Du coup me vient l'idée de planter mon traitement a chaque itération de la transaction. Du coup je me retrouve avec tout en rollback et en fait il me semble que le rollback de la transaction ne libere pas oracle. Ma datasource est pourtant bien de type xa. Le pire ce que je me retrouve au bout de 2 min avec un pool de taille 0 alors que j'ai encore mes 8 sessions inactives dans ORACLE. Donc la fermeture d'une connection du pool ne libère pas la connection ORACLE (Incompréhensible).
    Paramettre de ma DATASOURCE XA au cas ou le problème viendrait de là.
    <?xml version="1.0" encoding="UTF-8"?>
    <jonas-connector xmlns="http://www.objectweb.org/jonas/ns"
    xmlnssi="http://www.w3.org/2001/XMLSchema-instance"
    xsi:schemaLocation="http://www.objectweb.org/jonas/ns http://www.objectweb.org/jonas/ns/jonas-connector_4_4.xsd">
    <jndi-name>jdbc/xa10g</jndi-name>
    <rarlink/>
    <native-lib/>
    <log-enabled>true</log-enabled>
    <log-topic />
    <pool-params>
    <pool-init>0</pool-init>
    <pool-min>0</pool-min>
    <pool-max>10</pool-max>
    <pool-max-age-minutes>2</pool-max-age-minutes>
    <pstmt-max>120</pstmt-max>
    <pool-max-opentime>0</pool-max-opentime>
    <pool-max-waiters>100</pool-max-waiters>
    <pool-max-waittime>10</pool-max-waittime>
    <pool-sampling-period>30</pool-sampling-period>
    </pool-params>
    <jdbc-conn-params>
    <jdbc-check-level>0</jdbc-check-level>
    <jdbc-test-statement>select * from dual</jdbc-test-statement>
    </jdbc-conn-params>
    <jonas-config-property>
    <jonas-config-property-name>dsClass</jonas-config-property-name>
    <jonas-config-property-value>oracle.jdbc.xa.client.OracleXADataSource</jonas-config-property-value>
    </jonas-config-property>
    <jonas-config-property>
    <jonas-config-property-name>databaseName</jonas-config-property-name>
    <jonas-config-property-value>XXX</jonas-config-property-value>
    </jonas-config-property>
    <jonas-config-property>
    <jonas-config-property-name>portNumber</jonas-config-property-name>
    <jonas-config-property-value>1234</jonas-config-property-value>
    </jonas-config-property>
    <jonas-config-property>
    <jonas-config-property-name>serverName</jonas-config-property-name>
    <jonas-config-property-value>XXX.XXX.XXX.XXX</jonas-config-property-value>
    </jonas-config-property>
    <jonas-config-property>
    <jonas-config-property-name>user</jonas-config-property-name>
    <jonas-config-property-value>XXXX</jonas-config-property-value>
    </jonas-config-property>
    <jonas-config-property>
    <jonas-config-property-name>password</jonas-config-property-name>
    <jonas-config-property-value>XXXX</jonas-config-property-value>
    </jonas-config-property>
    <jonas-config-property>
    <jonas-config-property-name>URL</jonas-config-property-name>
    <jonas-config-property-value>U R L</jonas-config-property-value>
    </jonas-config-property>
    <jonas-config-property>
    <jonas-config-property-name>dbSpecificMethods</jonas-config-property-name>
    <jonas-config-property-value>:#setDriverType=thin##String</jonas-config-property-value>
    </jonas-config-property>
    </jonas-connector>

  4. #4
    Membre VIP Avatar de kalysto
    Profil pro
    Développeur
    Inscrit en
    Mars 2003
    Messages
    442
    Détails du profil
    Informations personnelles :
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur

    Informations forums :
    Inscription : Mars 2003
    Messages : 442
    Points : 568
    Points
    568
    Par défaut
    Et tu as essayé avec une version plus récente de JOnAS ?

  5. #5
    Nouveau membre du Club
    Inscrit en
    Août 2009
    Messages
    49
    Détails du profil
    Informations forums :
    Inscription : Août 2009
    Messages : 49
    Points : 37
    Points
    37
    Par défaut
    Essayé ce matin avec une version 4.10.7 et même phénomène. Je me demande si le fait d'avoir implémenté un couche JPA qui est plus proche des EJB3 ne peut pas en être la cause. Effectivement derrière les entity je suis en EJB2. Peut être que ça ne convient au gestionnaire de transaction. Je continue de chercher .
    Le pool lui semble correcte mais peut être que la couche Hibernate JPA pose problème.

  6. #6
    Nouveau membre du Club
    Inscrit en
    Août 2009
    Messages
    49
    Détails du profil
    Informations forums :
    Inscription : Août 2009
    Messages : 49
    Points : 37
    Points
    37
    Par défaut
    Bon alors il semble (vu sur le JIRA de jonas) qu'il y ai beaucoup de bug en cour de correction sur l'utilisation des pool XA et libération correct de ressource avec ORACLE (Notamment une en cour pour la 4.10.8). Donc peut être que mon problème vient de là. A voir

  7. #7
    Membre VIP Avatar de kalysto
    Profil pro
    Développeur
    Inscrit en
    Mars 2003
    Messages
    442
    Détails du profil
    Informations personnelles :
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur

    Informations forums :
    Inscription : Mars 2003
    Messages : 442
    Points : 568
    Points
    568
    Par défaut
    Peut etre ...
    N'hésites pas à en parler sur la liste jonas-fr -at- ow2.org or jonas -at- ow2.org (pour les anglophones, plus large audience...).

    Une autre option (pour ceux qui n'ont pas froid aux yeux ) c'est de compiler soi meme la branche 4.10 de JOnAS pour verifier le comportement des toutes dernieres versions...

Discussions similaires

  1. Problème ADO et oracle en VC++
    Par cedric31 dans le forum MFC
    Réponses: 3
    Dernier message: 04/03/2005, 09h04
  2. Problème session
    Par pete007 dans le forum ASP
    Réponses: 8
    Dernier message: 11/03/2004, 16h55
  3. Connexion SGBD Oracle-SQL langage C/C++
    Par K2004 dans le forum Interfaces de programmation
    Réponses: 4
    Dernier message: 10/02/2004, 19h01
  4. [tomcat 4.1] [oracle] Pool de connexion
    Par Franco dans le forum Tomcat et TomEE
    Réponses: 6
    Dernier message: 23/09/2003, 00h42
  5. Problème d'installation oracle 8.1.7 sous NT
    Par Anonymous dans le forum Installation
    Réponses: 7
    Dernier message: 02/08/2002, 14h18

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo