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 :

[transaction] déclaration


Sujet :

Java EE

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé Avatar de austin P.
    Inscrit en
    Juin 2004
    Messages
    182
    Détails du profil
    Informations personnelles :
    Âge : 51

    Informations forums :
    Inscription : Juin 2004
    Messages : 182
    Par défaut [transaction] déclaration
    salut à tous

    je me pose une question toute bete

    avec un ejb stateless si je déclare la balise <transaction-type> cela suffit il pour que l'ensemble de mes méthodes soient transactionnelles

    Code xml : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
     
     <ejb-jar>
      <description>Descripteur de déploiement du convertisseur euro</description>
      <display-name>Convertisseur Euro</display-name>
      <enterprise-beans>
        <session>
          <description>Convertisseur Euro</description>
          <display-name>ConvertisseurEuro</display-name>
          <ejb-name>ConvertisseurEuro</ejb-name>
          <home>convertisseurs.ConvertisseurEuroHome</home>
          <remote>convertisseurs.ConvertisseurEuro</remote>
          <ejb-class>convertisseurs.ConvertisseurEuroBean</ejb-class>
          <session-type>Stateless</session-type>
          <transaction-type>Container</transaction-type>
        </session>
      </enterprise-beans>
    </ejb-jar>

    ou alors faut il absolument lui ajouter les balises
    <assembly-descriptor>
    <container-transaction>
    <method>
    (en rouge dans le code)
    ?


    Code xml : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
     <ejb-jar>
      <description>Descripteur de déploiement du convertisseur euro</description>
      <display-name>Convertisseur Euro</display-name>
      <enterprise-beans>
        <session>
          <description>Convertisseur Euro</description>
          <display-name>ConvertisseurEuro</display-name>
          <ejb-name>ConvertisseurEuro</ejb-name>
          <home>convertisseurs.ConvertisseurEuroHome</home>
          <remote>convertisseurs.ConvertisseurEuro</remote>
          <ejb-class>convertisseurs.ConvertisseurEuroBean</ejb-class>
          <session-type>Stateless</session-type>
          <transaction-type>Container</transaction-type>
        </session>
      </enterprise-beans>
    
      <assembly-descriptor>
        <container-transaction>
            <method>
              <ejb-name>ConvertisseurEuro</ejb-name>
              <method-name>*</method-name>
            </method>
            <trans-attribute>Required</trans-attribute>
        </container-transaction>
       </assembly-descriptor>
    
    </ejb-jar>


    merki

  2. #2
    Membre chevronné
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    365
    Détails du profil
    Informations personnelles :
    Localisation : Maroc

    Informations forums :
    Inscription : Janvier 2006
    Messages : 365
    Par défaut
    Citation Envoyé par austin P.
    je me pose une question toute bete

    avec un ejb stateless si je déclare la balise <transaction-type> cela suffit il pour que l'ensemble de mes méthodes soient transactionnelles
    Non, la déclaration de la balise <transaction-type> permet uniquement de préciser au conteneur de quelle façon tu comptes gérer les transactions pour tes méthodes. En déclarant par exemple <transaction-type>Bean</transaction-type>, cela signifie que tu te charges toi-même de démarquer les transactions dans le code (leur début et leur fin) en utilisant l'interface UserTransaction, et donc dans ce cas, tu aurais le libre choix de faire exécuter certaines méthodes dans une transaction et d'autres pas du tout puisque tu aurais un contrôle total.
    Par contre, si tu choisis de laisser le conteneur démarquer les transactions pour tes méthodes (<transaction-type>Container</transaction-type>), il faut alors lui indiquer comment différencier les méthodes qui seront transctionnelles et celles qui ne le seront pas, en déclarant un attribut de transaction : <trans-attribute>, comme tu l'as indiqué en rouge. Tu peux alors spécifier plus finement un attribut de transaction pour toutes les méthodes ou pour des méthodes individuelles. Une bonne connaissance du comportement produit par les différents attributs est souvent d'une bonne aide.
    Donc dans les deux cas (container-managed ou bean-managed), toutes les méthodes peuvent ne pas être transactionnelles selon tes choix.
    Mais pour les entity beans, toutes les méthodes sont transactionnelles et gérées par le conteneur, c'est pour cela d'ailleurs qu'on n'a pas le choix du <transaction-type>.
    Voilà, j'espère que ça aide.

Discussions similaires

  1. gestion d'erreur et de transactions....
    Par Dge dans le forum MS SQL Server
    Réponses: 9
    Dernier message: 08/02/2006, 22h20
  2. 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
  3. Une déclaration pour la survie du jeu vidéo en France
    Par Freakazoid dans le forum DirectX
    Réponses: 1
    Dernier message: 30/10/2002, 14h31
  4. Réponses: 2
    Dernier message: 27/05/2002, 19h46
  5. Réponses: 8
    Dernier message: 17/05/2002, 09h08

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