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

Plateformes (Java EE, Jakarta EE, Spring) et Serveurs Discussion :

Décoration des transactions du container


Sujet :

Plateformes (Java EE, Jakarta EE, Spring) et Serveurs

  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 Décoration des transactions du container
    Bonjour a tous,

    Je débute un projet utilisant une base Neo4j en backend. Les modules métiers sont des ejb déployés sur un wildfly.
    Pour les classes de domaines, j'utilise la librairie neo4j-ogm, parfaite pour son job. Sauf qu'elle ne s'intègre pas du tout à JTA, donc exit les transaction gérées par le container.
    D'où ma question : y a t'il un moyen de décorer ou d'intercepter les transactions du container pour gérer la transaction de neo4j en fonction de leur état? Ou alors voyez vous un autre moyen de réaliser la plomberie?

    Merci d'avance.
    «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
    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,

    je ne connais pas bien Neo4j ni Neo4j-ogm mais el lisant ton probleme, je vois 2 moyens possibles d'intercepter des CMT (Container Managed Transaction).

    1- Interface javax.transaction.Synchronization : elle a 2 methodes beforeCompletion et afterCompletion. Si ton objectif est de traiter la transaction avec Neo4j avant(beforeCompletion) ou apres (afterCompletion) celui du container.
    2- Utiliser l'Interface TransactionSynchronizationRegistry ( Pattern Java EE 5/6 Context Holder). Dans ce cas, il faut ecrire un intercepteur (classe) dans lequel est injecte la resource TransactionSynchronizationRegistry ainsi que la methode AroundInvoke qui va traiter la transaction avec Neo4j. Decorer ton CMT bean avec cet intercepteur. Cela veut dire que ta methode AroundInvoke va declencher le traitement de ta transaction avec Neo4j.

    Avec ces 2 methodes, je vois 2 problemes potentiels: confusion du a 2 manieres de traiter les transactions, et celui de la COMPENSATION de transaction.
    Moi je conseillerais plutot de laisser de cote le CMT et d'utiliser le BMT (Bean Managed Transaction) qui te donnera plus de flexibilite.

  3. #3
    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
    Salut,

    J'ai effectivement trouvé ces deux interfaces en farfouillant l'API hier, et je dirai même que le seul moyen que je vous est de combiner les deux.
    Je ne m'en fait pas trop pour la compensation, la plupart des opération ne devrait pas poser de problème à ce niveau.
    Le vrai soucis est qu'il faut réécrire tellement de code pour intégrer la librairie a un environnement cdi que je ne suis pas sur que le bénéfice soit réel (tout les constructeur ont 2-3 paramètres, tout les champs sont final, et les transactions sont gérées par un ThreadLocal...)
    Affaire a suivre.
    «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. Apropos des Transactions au sein d'un Stored Procedure
    Par Sarbacane dans le forum Connexion aux bases de données
    Réponses: 6
    Dernier message: 16/11/2004, 08h21
  2. Automatisation de la purge du journal des transactions
    Par Nathan dans le forum MS SQL Server
    Réponses: 6
    Dernier message: 30/09/2004, 08h05
  3. Annuler des transactions
    Par sgire dans le forum ASP
    Réponses: 2
    Dernier message: 04/05/2004, 09h31
  4. vider le journal des transactions
    Par coucoucmoi dans le forum MS SQL Server
    Réponses: 2
    Dernier message: 04/05/2004, 09h21
  5. gestion des transactions
    Par viny dans le forum Requêtes
    Réponses: 2
    Dernier message: 26/03/2004, 21h53

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