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

Wildfly/JBoss Java Discussion :

connexion à 2 bases de données sous Jboss


Sujet :

Wildfly/JBoss Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Mai 2008
    Messages
    13
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2008
    Messages : 13
    Par défaut connexion à 2 bases de données sous Jboss
    Salut, je développe une application dans laquelle je dois interagir avec 2 bases de données(une dans le SGBD de jboss et une sous mysql). Au sein d'une méthode de mon bean session, j'essaie de faire des mises à jour dans les 2 bases de données.mais lors de la 2e mise à jour, j'ai l'erreur suivante:
    javax.ejb.EJBTransactionRolledbackException: org.hibernate.exception.GenericJDBCException: Cannot open connection

    org.jboss.resource.JBossResourceException: Could not enlist in transaction on entering meta-aware object!; - nested throwable: (javax.transaction.SystemException: java.lang.Throwable: Unabled to enlist resource, see the previous warnings. tx=TransactionImple < ac, BasicAction: -3f57ff38:1253:4846c410:3a status: ActionStatus.ABORT_ONLY >)

    voici mon fichier mysql-ds.xml

    <?xml version="1.0" encoding="UTF-8"?>

    <!-- $Id: mysql-ds.xml 63175 2007-05-21 16:26:06Z rrajesh $ -->
    <!-- Datasource config for MySQL using 3.0.9 available from:
    http://www.mysql.com/downloads/api-jdbc-stable.html
    -->

    <datasources>
    <local-tx-datasource>
    <jndi-name>MySqlDS</jndi-name>
    <connection-url>jdbc:mysql://192.168.0.201:3306/smslib</connection-url>
    <driver-class>com.mysql.jdbc.Driver</driver-class>
    <user-name>root</user-name>
    <password></password>
    <exception-sorter-class-name>org.jboss.resource.adapter.jdbc.vendor.MySQLExceptionSorter</exception-sorter-class-name>
    <!-- should only be used on drivers after 3.22.1 with "ping" support
    <valid-connection-checker-class-name>org.jboss.resource.adapter.jdbc.vendor.MySQLValidConnectionChecker</valid-connection-checker-class-name>
    -->
    <!-- sql to call when connection is created
    <new-connection-sql>some arbitrary sql</new-connection-sql>
    -->
    <!-- sql to call on an existing pooled connection when it is obtained from pool - MySQLValidConnectionChecker is preferred for newer drivers
    <check-valid-connection-sql>some arbitrary sql</check-valid-connection-sql>
    -->

    <!-- corresponding type-mapping in the standardjbosscmp-jdbc.xml -->
    <metadata>
    <type-mapping>mySQL</type-mapping>
    </metadata>
    </local-tx-datasource>
    </datasources>

    j'ai lu dans certain tuto qu'il me fallait remplacer le mysql-ds par un mysql-xa-ds.xml. j'ai suivi les instructions, mais une erreur de parsing est signalée au démarrage de jboss.
    précision j'utilise jboss 4.2.2

    Aidez moi avec une procédure de configuration qui marche SVP
    merci.

  2. #2
    Membre confirmé
    Profil pro
    Analyste programmeur
    Inscrit en
    Novembre 2006
    Messages
    197
    Détails du profil
    Informations personnelles :
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Analyste programmeur

    Informations forums :
    Inscription : Novembre 2006
    Messages : 197
    Par défaut
    Bonjour,

    Si les 2 BDD se trouvent dans le meme serveur tu peut utiliser une seule connections.

    Je m'explique si on a BDD_test1 et BDD_test2 et aussi table1 dans BDD_test1 et table2 dans BDD_test2. tu peux utiliser une seule connections par exemple BDD_test1 et tu cre deux EJB dont le name est "table1" et "BDD_test2.table2".

    J'ai eu le meme probleme et j'ai le resoulu avec cette methode.

    @+

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Mai 2008
    Messages
    13
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2008
    Messages : 13
    Par défaut RE
    Salut, excuses moi, mais je ne comprend pas très bien ce que tu expliques.
    je veux savoir, dans la solution que tu proposes, à quoi ressemble mon fichier mysql-ds.xml par exemple, et si il y a des configurations supplémentaires à faire sur jboss.
    Bref, avoir un guide pas à pas, si ce n'est pas trop demander
    Merci.

  4. #4
    Membre émérite Avatar de XmasRock
    Inscrit en
    Janvier 2007
    Messages
    729
    Détails du profil
    Informations forums :
    Inscription : Janvier 2007
    Messages : 729
    Par défaut
    La méthode de ton bean session s'execute dans une transaction. Dans ce contexte, lorsque tu manipules des ressources transactionnelles (tes datasources) le gestionnaire de transaction va les enregistrer dans le contexte transactionnel. Malheureusement, à partir du moment où tu manipules plus d'une ressource transactionnelle dans la meme transaction, il est nécessaire que celle-ci sache parler XA, le protocole permettant au gestionnaire de faire son travail sur l'ensemble des ressources manipulées.

    Il faut donc dans un premier temps que tu t'assures que les pilotes/implementations des bases de données supportent et sont configurées pour supporter XA.

  5. #5
    Membre averti
    Profil pro
    Inscrit en
    Mai 2008
    Messages
    13
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2008
    Messages : 13
    Par défaut Re Re
    j'utilise mysql-connector 5.1.6 qui d'après ce que j'ai lu supporte les transactions XA.Je comprend tout à fait ce que tu dis par rapport aux transactions.Je suis d'accord qu'il faut qu'elles soient XA.Mais mon problème est que lorsque je rajoute le fichier mysql-xa-ds.xml dans le repertoire deploy de jboss, jboss me signale une erreur dans ce fichier, même après avoir vérifié la conformité du contenu.
    Donc je résume ce que j'attend.
    1. est il possible de configurer Jboss pour qu'il gère des connexions XA avec mysql?
    si oui, quelles sont les étapes à suivre?
    merci encore

  6. #6
    Membre émérite Avatar de XmasRock
    Inscrit en
    Janvier 2007
    Messages
    729
    Détails du profil
    Informations forums :
    Inscription : Janvier 2007
    Messages : 729
    Par défaut
    montres nous ton fichier -ds.xml pour voir ainsi que toute la stack de l'erreur.

    J'ai trouvé ça : http://www.flexive.org/docs/website/...tallation.html

  7. #7
    Membre émérite Avatar de XmasRock
    Inscrit en
    Janvier 2007
    Messages
    729
    Détails du profil
    Informations forums :
    Inscription : Janvier 2007
    Messages : 729
    Par défaut
    Citation Envoyé par amonray Voir le message
    ...je dois interagir avec 2 bases de données(une dans le SGBD de jboss et une sous mysql)...
    C'est quoi la deuxieme base ? le SGBD jboss dont tu parles ?

    Si c'est hsqldb, il n'y a pas de support XA. De plus il est fortement déconseillé de l'utiliser en prod.

  8. #8
    Membre averti
    Profil pro
    Inscrit en
    Mai 2008
    Messages
    13
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2008
    Messages : 13
    Par défaut
    Doublement Merci XmasRock,
    tout d'abord parce que le lien que tu m'as filé m'a permis de résoudre mon problème, et aussi pour m'avoir fait comprendre que hsql ne supporte pas les connexions XA car en effet, j'utilisais comme deuxième SGBD HSQL.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Connexion à une Base de donnée sous VB
    Par direct dans le forum VB 6 et antérieur
    Réponses: 2
    Dernier message: 26/11/2008, 09h01
  2. [Débutant] Problème de Connexion base de données sous Glassfish
    Par kimlee dans le forum Glassfish et Payara
    Réponses: 4
    Dernier message: 20/01/2008, 13h56
  3. connexion à une base de données sous visual studio
    Par mademoizel dans le forum Visual Studio
    Réponses: 1
    Dernier message: 02/03/2007, 17h03
  4. [ODBC] [DB2] Problème de connexion à une base de données sur un as400 via PHP sous Linux
    Par boo64 dans le forum PHP & Base de données
    Réponses: 16
    Dernier message: 19/04/2006, 09h51
  5. Connexion à une base de donnée avec swing sous eclipse
    Par kodo dans le forum Eclipse Java
    Réponses: 3
    Dernier message: 07/04/2006, 11h03

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