1 Reply Latest reply on Feb 13, 2011 10:28 PM by Bryan Shaw

    JBPM 4.4 and Spring Integration Problem: Session is closed

    Bryan Shaw Newbie

      I have encountered problem when I am using JBPM 4.4 with Spring 3.5 and Hibernate 3 and Struts2.

      When we put multiple users to use the system, JBPM operation will randomly cause Hibernate Exception states: "Session is closed".

      I have checked the JBPM + Spring integration configuration and I can't found error.

      Did anybody encountered the same problem here? Please lend a hand to help me.

       

      This is my "jbpm.tx.spring.cfg.xml"


      <?xml version="1.0" encoding="UTF-8"?>

           <jbpm-configuration spring="enabled">

           <process-engine-context>

                  <command-service name="newTxRequiredCommandService">

                    <retry-interceptor />

                    <environment-interceptor policy="requiresNew" />

                    <spring-transaction-interceptor transaction-manager="transactionManager" policy="requiresNew" current="false"/>

                  </command-service>

       

               <!-- Default command service has a Spring transaction interceptor-->

               <command-service name="txRequiredCommandService">

                      <retry-interceptor />

                      <environment-interceptor />

                      <spring-transaction-interceptor transaction-manager="transactionManager" current="true"/>

               </command-service>

          </process-engine-context>

       

           <transaction-context>

               <transaction type="spring" />

               <hibernate-session current="true" close="false" tx="true"/>

          </transaction-context>

       

      </jbpm-configuration>

       

      And my jbpm-cfg.xml looks like this:

      <?xml version="1.0" encoding="UTF-8"?>

      <jbpm-configuration>

        <import resource="jbpm.default.cfg.xml" />

        <import resource="jbpm.tx.spring.cfg.xml" />

        <import resource="jbpm.jpdl.cfg.xml" />

        <!--<import resource="jbpm.bpmn.cfg.xml" />-->

        <import resource="jbpm.identity.cfg.xml" />

        <import resource="jbpm.businesscalendar.cfg.xml" />

        <import resource="jbpm.console.cfg.xml" />

        <import resource="jbpm.jobexecutor.cfg.xml" />

        <types resource="jbpm.variable.types.xml" />

      </jbpm-configuration>

       

      We use OpenSessionInView filter in our web application that means every request will have its own hibernate session opened for it.

      But we find that even I begin a request handling action method with a call to the JBPM task service it still may cause session is closed error.

      Any idea?