5 Replies Latest reply on Oct 16, 2002 7:39 AM by Adrian Brock

    JBoss3.0 -> JBoss3.0.3 Errors

    mik Newbie


      I have an application that worked in JBoss 3.0.0 and I moved to 3.0.3 to try and fix an unrelated problem.

      Now my existing code is giving me the following error:
      javax.ejb.EJBException: A CMR collection may only be used within the transction in which it was created...

      What is the trouble ?
      ( All the errors come from a SessionBean which use Local Entity relationship )

        • 1. Re: JBoss3.0 -> JBoss3.0.3 Errors
          Adrian Brock Master

          How are your transactions configured?
          What does the code look like.

          Try setting org.jboss.ejb.plugins.TxInterceptorCMT
          to TRACE logging so you can see the transactions
          in the server.log


          • 2. Re: JBoss3.0 -> JBoss3.0.3 Errors
            mik Newbie

            Here is the code of my Session Bean.
            User and Application are Local Entities.
            To make my code work under JBoss3.03, I must add the text in bold (UserTransaction).
            But all was working under JBoss3.0 ! :o

            public Collection getCurrentApplications( ) {
            Collection details = new ArrayList( );
            try {
            javax.transaction.UserTransaction trans = (javax.transaction.UserTransaction)new InitialContext().lookup("java:comp/UserTransaction");

            UserPK pk = new UserPK( this.currentUserLogin, this.currentOperatorName );
            User user = userHome.findByPrimaryKey( pk );
            Collection applications = user.getApplications( );
            for ( Iterator iter = applications.iterator( ); iter.hasNext( ); ) {
            Application application = ( Application ) iter.next( );
            ApplicationDetails applicationDetails = new ApplicationDetails( application.getName( ), application.getDescription( ), application.getMaxRightLevel( ) );
            details.add( applicationDetails );
            trans.commit(); } catch( Exception e ) {
            throw new EJBException( e.getMessage( ) );
            return details;

            • 3. Re: JBoss3.0 -> JBoss3.0.3 Errors
              mik Newbie

              Excuse me but where I can set org.jboss.ejb.plugins.TxInterceptorCMT to TRACE...

              in standardjboss.xml ???


              Where I put to TRACE ? :)
              Something like this ???

              • 4. Re: JBoss3.0 -> JBoss3.0.3 Errors
                Adrian Brock Master


                or the log4j service on http://localhost:8080


                • 5. Re: JBoss3.0 -> JBoss3.0.3 Errors
                  Adrian Brock Master

                  It sounds like you configured getCurrentApplications()
                  to not run with a transaction?
                  So a new transaction is started with
                  every Entity operation.

                  You should be able to see this in the trace.