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

Développement Web en Java Discussion :

Problème de compréhension entre Synchronized et @Transactional


Sujet :

Développement Web en Java

  1. #1
    Futur Membre du Club
    Homme Profil pro
    Webmaster
    Inscrit en
    Mars 2016
    Messages
    7
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Burkina Faso

    Informations professionnelles :
    Activité : Webmaster

    Informations forums :
    Inscription : Mars 2016
    Messages : 7
    Points : 5
    Points
    5
    Par défaut Problème de compréhension entre Synchronized et @Transactional
    Bonjour chers tous !
    Nous avons hérité d'une application développé en java EE dont nous devons faire sa maintenance (corrective et évolutive) .
    Il y a deux notions sur lesquelles nous buttions : Synchronized et @Transactional.
    Nous avons quelques questions sur elles :
    1. Sachant qu'on peut mettre ces deux notions sur une méthodes, quelles sont les signification sur une méthode ? (L'un pour l'annotation et l'autre dans l'entête de la méthode)
    2. Peut-on les mettre (Synchronized ou @Transactional) sur des méthodes et leurs éventuelles méthodes imbriquées ?
    3. Peut-on les mettre les deux sur une même méthode ?

    Merci pour vos éclaircissements.

  2. #2
    Expert éminent sénior
    Avatar de tchize_
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2007
    Messages
    25 481
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : Belgique

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2007
    Messages : 25 481
    Points : 48 806
    Points
    48 806
    Par défaut
    Transactional, si c'est bien l'annotation jta, indique au conteneur javaee qu'un contexte de transaction est requis pour la méthode. Les détails sont dans le paramètre de l'annotation et ça va de interdit à obligatoire avec d'autres variations.

    Synchronized est un mot clé disant à la jvm qu'un verrou est requis sur l'instance pour entrer dans la méthode. Ca empêche la concurrence entre thread. Avec un contexte transactionel géré correctement tu ne devrais pas avoir besoin de verrous. Mais ce n'est pas interdit.

    L'annotation Transactional n'est prise en compte que pour les appels passant via les proxys injectés. C'est le cas des EJB, des Beans CDI et des beans JSF injectés via les annotations ad-hoc. Donc pas pour les appels internes à la classe. C'est d'ailleurs le cas de toutes les annotations sur les ejb et les cdis.

    Le synchonized étant interne à la jvm il est toujours pris en compte.

    Normalement, le mot clé synchronized devrait faire partie des connaissance de base en java. Si vous n'avez pas les bases en java et ne connaissez rien à javaEE, cette maintenance va être extrèmement coûteuse pour l'entreprise car reprendre une application sans connaitre le fonctionnement de javaEE, c'est faire énormément d'erreur et casse beaucoup de chose en faisant des choses anodines... Grand temps de mendier une formation complète auprès du boss

  3. #3
    Futur Membre du Club
    Homme Profil pro
    Webmaster
    Inscrit en
    Mars 2016
    Messages
    7
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Burkina Faso

    Informations professionnelles :
    Activité : Webmaster

    Informations forums :
    Inscription : Mars 2016
    Messages : 7
    Points : 5
    Points
    5
    Par défaut
    Merci à toi tchize_ pour ces éclaircissements.

Discussions similaires

  1. Réponses: 3
    Dernier message: 20/02/2009, 07h49
  2. Réponses: 2
    Dernier message: 21/10/2004, 15h08
  3. Problèmes de compatibilité entre sdk 9.0c et geforce 2/4
    Par Francky033 dans le forum DirectX
    Réponses: 2
    Dernier message: 01/10/2004, 14h22
  4. onclipevent (problème de compréhension)
    Par stephane eyskens dans le forum Flash
    Réponses: 8
    Dernier message: 24/09/2003, 15h09
  5. Problème de compréhension des ensembles
    Par Cornell dans le forum Langage
    Réponses: 6
    Dernier message: 07/02/2003, 22h07

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