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

Java EE Discussion :

implementer un connecteur XA


Sujet :

Java EE

  1. #1
    Membre éprouvé
    Avatar de Cafeinoman
    Homme Profil pro
    Couteau suisse d'une PME
    Inscrit en
    Octobre 2012
    Messages
    628
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Couteau suisse d'une PME

    Informations forums :
    Inscription : Octobre 2012
    Messages : 628
    Points : 1 256
    Points
    1 256
    Par défaut implementer un connecteur XA
    Bonjour tout le monde,

    je bosse sur un connecteur qui doit permettre de connexion XA afin d'intégrer des requêtes vers une base orienté graphe dans tout le reste (EJB/CDI/JTA quoi). Le soucis c'est que si le web fourmille de tuto sur JCA, je ne trouve rien qui aborde la question de XAResource et de son implémentation.

    Donc, quelques questions:

    • La classe XAResource doit-elle "wrapper" (je ne trouve plus le mot français ) l'objet retourné par l'implémentation de ConnectionManager#getConnection(Subject subject, ConnectionRequestInfo cxRequestInfo) ?
    • Faut-il gérer la liaison de la XAResource avec le TransactionManager ou le serveur comprend-t-il comme un grand?
    • Faut-il implementer Xid (et une factory pour les générer), ou le serveur se charge-t-il de les fournir ?


    Il y en aura sans doute d'autres qui suivront, et peut-être des choses incohérente. Si quelqu'un à un lien à proposer, je suis également preneur.

    Merci.
    «Dieu ne joue pas aux dés.» - Albert Einstein. Et pan! 30 ans de retard dans la théorie quantique!
    «Tout n'est pas politique, mais la politique s'intéresse à tout.» - Nicolas Machiavel. Et surtout à ceux qui ne s'y intéressent pas.

  2. #2
    Modérateur
    Avatar de OButterlin
    Homme Profil pro
    Inscrit en
    Novembre 2006
    Messages
    7 310
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 7 310
    Points : 9 522
    Points
    9 522
    Billets dans le blog
    1
    Par défaut
    Je ne suis pas sûr de comprendre ton problème... tu as une connexion JDBC qui ne prend pas en charge les transactions distribuées (XA) et tu voudrais l'émuler ?
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  3. #3
    Membre du Club
    Homme Profil pro
    Oracle Java EE 6 Architect
    Inscrit en
    Mai 2015
    Messages
    7
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations professionnelles :
    Activité : Oracle Java EE 6 Architect

    Informations forums :
    Inscription : Mai 2015
    Messages : 7
    Points : 67
    Points
    67
    Par défaut
    Salut,

    si je comprends bien ton application doit interagir avec plusieurs sources de donnees dont une n'est pas un SGBDR. Le fait qu'une source de données ne soit pas un SGBDR complexifit les choses et par ricochet tu ne peux pas beneficier des facilités qu'offrent les serveur d'application et transaction manager pour la gestion des transactions distribuées.

    Car dans le cas des SGBDRs, certains serveurs d'applications prennent en charge la gestion des transactions distribuées, mais il faut faire des configs. Ex avec glassfish, Connection pool -- resource type `javax.sql.XADataSource` -- activer ou desactiver le checkbox `Non Transactional Connections`.

    Avec Spring, il faut juste declarer le transaction manager dans ton application-context.xmml.

    Mais dans ton cas, je crois que ta 3eme proposition semble etre la bonne c-a-d implementer la classe Xid pour l'identification des transactions.

    Voici un article qui peut t'aider :
    https://www.progress.com/jdbc/resour...action-manager

  4. #4
    Membre éprouvé
    Avatar de Cafeinoman
    Homme Profil pro
    Couteau suisse d'une PME
    Inscrit en
    Octobre 2012
    Messages
    628
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Couteau suisse d'une PME

    Informations forums :
    Inscription : Octobre 2012
    Messages : 628
    Points : 1 256
    Points
    1 256
    Par défaut
    @OButterlin c'est a peu près ça

    Le but a la base est de pouvoir intégrer à une appli qui existe, et qui utilise deja des transactions XA vers plusieurs PersistenceUnit, de communiquer avec un serveur Neo4j.

    Comme leur ogm n'est pas vraiment top, je me suis suis dirigé vers Tinkerpop et son serveur gremlin. Leur driver java est pas trop mal foutu, et il utilise parfaitement Neo4j en backend. Mais toujours pas de XA.

    Donc, je vais wrapper le driver dans un connecteur JCA pour que mon petit Wildfly intègre tout ça.

    Pour répondre à mes propres questions :
    • il n'est pas obligatoire de wrapper la connexion retourner dans l'implémentation de XAResource, même s'il faut qu'elle puissent communiquer pour la bonne marche de l'ensemble.
    • il est du ressort du serveur de fournir l'implémentation de Xid, tout comme de faire d'enlister la XAresource dans la transaction.


    J'ai encore pas mal de boulot, mais je posterai l'avancée des travaux ( et peut-être un billet une fois fini tiens).

    Bien sur je reste preneur de conseils.
    «Dieu ne joue pas aux dés.» - Albert Einstein. Et pan! 30 ans de retard dans la théorie quantique!
    «Tout n'est pas politique, mais la politique s'intéresse à tout.» - Nicolas Machiavel. Et surtout à ceux qui ne s'y intéressent pas.

Discussions similaires

  1. Implementation et Interface
    Par Bleys dans le forum Débuter
    Réponses: 5
    Dernier message: 21/06/2004, 14h00
  2. Réponses: 11
    Dernier message: 07/04/2004, 13h06
  3. [VB6] Classe Implements
    Par Goldust dans le forum VB 6 et antérieur
    Réponses: 7
    Dernier message: 13/07/2003, 16h41
  4. Connecteur SMTP
    Par TOM-Z dans le forum XMLRAD
    Réponses: 2
    Dernier message: 04/07/2003, 15h42
  5. [VB6] Utilisation de Implements
    Par Babyneedle dans le forum VB 6 et antérieur
    Réponses: 3
    Dernier message: 10/01/2003, 20h21

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