0 Replies Latest reply on Dec 15, 2008 8:42 PM by David Martin

    Weblogic 10.3 <allow-concurrent-calls> issues

    David Martin Newbie

      Hello,


      I am deploying my application to the Weblogic application server and I sporadically get the following exception:


      javax.ejb.EJBTransactionRolledbackException: If a session bean instance is participating in a transaction, it is an error for a client to invoke a method on the session object such that the transaction attribute specified in the bean's metadata annotations and/or the deployment descriptor would cause the container to execute the method in a different transaction context or in an unspecified transaction context. You may also consider setting the <allow-concurrent-calls> option in your weblogic-ejb-jar.xml. When this tag is set, the concurrent call waits for the first method call to complete.; nested exception is...


      Project specifics: App Server - Weblogic 10.3, JSF - Richfaces 3.2.0, JPA - Hibernate 3.2.6.GA, and of course SEAM 2.1.0.GA.


      I believe this problem has been discussed on other forum entries but I wanted to see if anyone knows if there is any work around for the problem.  I have tried setting the allow-concurrent-calls attribute in the weblogic-ejb-jar.xml file but it did not help.  Here is the ejb configuration for the bean that seems to get the exception the most:


      web.xml



          <ejb-local-ref>
                <ejb-ref-name>jmat/ModalManagerBean/local</ejb-ref-name>
                <ejb-ref-type>Session</ejb-ref-type>
                <local>jmat.utils.ModalManager</local>
                <ejb-link>ModalManagerBean</ejb-link>
           </ejb-local-ref>



      ejb-jar.xml



      <interceptor-binding>
               <ejb-name>ModalManagerBean</ejb-name>
               <interceptor-class>org.jboss.seam.ejb.SeamInterceptor</interceptor-class>
       </interceptor-binding>



      weblogic-ejb-jar.xml



      <weblogic-enterprise-bean>
          <ejb-name>modalManager</ejb-name>
          <stateful-session-descriptor>
             <allow-concurrent-calls>true</allow-concurrent-calls>
           </stateful-session-descriptor>
       </weblogic-enterprise-bean>



      I'm not sure if I am using the correct ejb-name (it is the seam component name) in this file.



      The exception almost always stems from a el expression that is being resolved:


      SEVERE: Error Rendering View[/views/main.xhtml]
      com.sun.facelets.tag.TagAttributeException: /views/main.xhtml @141,76 src="#{modalManager.modalLocation}" /views/main.xh
      tml @141,76 src="#{modalManager.modalLocation}": javax.ejb.EJBTransactionRolledbackException: EJB Exception: ; nested ex
      ception is: javax.ejb.TransactionRolledbackLocalException: EJB Exception: ; nested exception is: weblogic.transaction.in
      ternal.AppSetRollbackOnlyException



      I understand the meaning of the exception (the EJB specs are clear on this issue), but I don't understand how an el expression binding to an ejb can cause this??


      Any help would be greatly appreciated.