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 :

[CMP] [Weblogic 9.1] EJBContext.setRollbackOnly() [EJB2.1 Entity]


Sujet :

Java EE

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre habitué
    Profil pro
    Inscrit en
    Octobre 2004
    Messages
    10
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2004
    Messages : 10
    Par défaut [CMP] [Weblogic 9.1] EJBContext.setRollbackOnly()
    Salut tous,

    Est-ce que cette erreur parle à quelqu'un :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    [EJB:010158]Illegal attempt to call EJBContext.setRollbackOnly() 
    from an EJB that was not participating in a transaction.
    Cette exception se produit dans ce bout de code d'une méthode de mon EJB :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
     
    finTransaction = false;
     
    try {
            methodeQuiLanceLExceptionApplicative();
     
            // Fin de transaction
            finTransaction = true;
    }
    finally {
            // Annule la transaction si pas terminée correctement
            if (!finTransaction) {
                    mySessionCtx.setRollbackOnly();
            }
    }


    Pourquoi l'erreur dit elle : "EJB that was not participating in a transaction."

    Ma transaction est de type Supports :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    @ejb.transaction type="Supports"
    Et ma méthode est de type remote :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    @ejb.interface-method view-type="remote"


    Si ça parle à quelqu'un, merci d'avance.

  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
    salut,
    Eh bien, "Supports" veut dire que l'ejb peut participer à une transaction initiée par le client, ou alors la méthode peut s'exécuter sans être dans le contexte d'une transaction si celle-ci n'existe pas. Vu que tu appelles la méthode à partir d'un client distant, il y a fort à parier qu'il n'y a pas de transaction initiée par ce dernier. En plus, la spécification précise que la méthode EJBContext.setRollbackOnly() ne devrait être appelée que dans des méthodes dont l'attribut de transaction est : Required, Mandatory ou RequiresNew, car ce sont les seuls cas où on est sûr d'être dans un contexte transactionnel. Dans les autres cas, on aura toujours une exception.

  3. #3
    Membre habitué
    Profil pro
    Inscrit en
    Octobre 2004
    Messages
    10
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2004
    Messages : 10
    Par défaut
    Merci beaucoup, c'est exactement ça !

    J'ai passé le type de transaction de ma méthode à Required et je n'ai plus mon Exception.


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

Discussions similaires

  1. Réponses: 3
    Dernier message: 10/05/2004, 13h29
  2. [EJB2.1 Entity] [CMP] Risk to loose modifications
    Par rivierem dans le forum Java EE
    Réponses: 9
    Dernier message: 18/02/2004, 15h54
  3. [ Entity bean ] CMP
    Par hocinema dans le forum Websphere
    Réponses: 5
    Dernier message: 03/10/2003, 11h33
  4. [EJB] Débutant en EJB sur Weblogic
    Par viny dans le forum JBuilder
    Réponses: 8
    Dernier message: 24/04/2003, 15h34
  5. problème JSP avec JBuilder et Weblogic 7
    Par viny dans le forum JBuilder
    Réponses: 2
    Dernier message: 24/04/2003, 08h07

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