Sascha Janz [http://community.jboss.org/people/AJanz] created the discussion
"session closed" To view the discussion, visit: http://community.jboss.org/message/594254#594254 -------------------------------------------------------------- i am using seam 2.2 with jbpm. when executing several jbpm command like signal or saveprocessinstance i got an exception "session closed" if i execute them via command service bean from jbpm-enterprise.ear everything is ok. where is the difference? here are my configurations. jbpm <jbpm-configuration> <jbpm-context> <service name="persistence" factory="org.jbpm.persistence.jta.JtaDbPersistenceServiceFactory" /> <service name="tx" factory="org.jbpm.tx.TxServiceFactory" /> <service name="message" factory="org.jbpm.msg.db.DbMessageServiceFactory" /> <service name="scheduler" factory="org.jbpm.scheduler.db.DbSchedulerServiceFactory" /> <service name="logging" factory="org.jbpm.logging.db.DbLoggingServiceFactory" /> <service name="authentication" factory="org.jbpm.security.authentication.DefaultAuthenticationServiceFactory" /> </jbpm-context> </jbpm-configuration> hibernate <?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE hibernate-configuration PUBLIC "-//Hibernate/Hibernate Configuration DTD 3.0//EN" " http://hibernate.sourceforge.net/hibernate-configuration-3.0.dtd http://hibernate.sourceforge.net/hibernate-configuration-3.0.dtd"> <hibernate-configuration> <session-factory> <!-- hibernate dialect --> <property name="hibernate.cache.provider_class">org.hibernate.cache.HashtableCacheProvider</property> <property name="hibernate.dialect">org.hibernate.dialect.OracleDialect</property> <!-- DataSource properties (begin) property name="hibernate.connection.datasource">java:comp/env/jdbc/JbpmDataSource</property DataSource properties (end) DataSource properties (begin) === --> <property name="hibernate.connection.datasource">java:/JbpmDS</property> <!-- ==== DataSource properties (end) JTA transaction properties (begin) --> <property name="hibernate.transaction.factory_class">org.hibernate.transaction.JTATransactionFactory</property> <property name="hibernate.transaction.manager_lookup_class">org.hibernate.transaction.JBossTransactionManagerLookup</property> <property name="jta.UserTransaction">java:comp/UserTransaction</property> <!-- JTA transaction properties (end) .. an my commmand bean import java.sql.Connection; import java.sql.SQLException; import java.util.List; import javax.ejb.Remove; import javax.ejb.Stateful; import javax.ejb.TransactionAttribute; import javax.ejb.TransactionAttributeType; import org.apache.log4j.Logger; import org.jboss.seam.annotations.AutoCreate; import org.jboss.seam.annotations.Name; import org.jbpm.JbpmConfiguration; import org.jbpm.JbpmContext; import org.jbpm.command.Command; import de.lorenz.soaworkflow.core.performanceprofile.Profiler; @Name("CommandService") @Stateful @AutoCreate public class CommandServiceBean implements CommandService{ private static final Logger log = Logger.getLogger(CommandServiceBean.class .getName()); static JbpmConfiguration cfg = JbpmConfiguration .parseResource("resources/jbpm.cfg.xml"); // AJ 22.1.2010 // default ist jetzt ohne CommandServiceBean @TransactionAttribute(TransactionAttributeType.REQUIRES_NEW) public Object executeCommand(Command cmd) { Object returnValue = null; log.debug("Begin execute command "); long start = 0; if (Profiler.isProfiling()) start = Profiler.startProfile("CommandBean:executeCommand"); JbpmContext jbpmContext = null; Connection con = null; try { // AJ 11.2.2010 muss jedesmal neu erzeugt werden!!! // da n Threads hierauf zugreifen! jbpmContext = cfg.createJbpmContext(); // con = ConnectionManager.getInstance().getConnection(); // jbpmContext.setConnection(con); if (jbpmContext == null) throw new Exception("Error now jbpm context!"); returnValue = cmd.execute(jbpmContext); } catch (Exception e) { log.error("Error executeCommand", e); } finally { if (jbpmContext != null) { jbpmContext.close(); jbpmContext = null; try { if (con != null) { con.close(); } } catch (SQLException e) { // TODO Auto-generated catch block e.printStackTrace(); } } } log.debug("End execute command "); if (Profiler.isProfiling()) Profiler.endProfile("CommandBean:executeCommand", start); return returnValue; } @TransactionAttribute(TransactionAttributeType.REQUIRES_NEW) public Object executeCommands(List<Command> cmdlist) { Object returnValue = null; log.debug("Begin executeCommands "); long start = 0; if (Profiler.isProfiling()) start = Profiler.startProfile("CommandBean:executeCommands"); JbpmContext jbpmContext = null; Connection con = null; try { // AJ 11.2.2010 muss jedesmal neu erzeugt werden!!! // da n Threads hierauf zugreifen! jbpmContext = cfg.createJbpmContext(); // con = ConnectionManager.getInstance().getConnection(); // jbpmContext.setConnection(con); if (jbpmContext == null) throw new Exception("Error now jbpm context!"); for ( Command cmd : cmdlist ) { System.out.println("execute " + cmd.getClass().getName()); returnValue = cmd.execute(jbpmContext); } } catch (Exception e) { log.error("Error CommandBean:executeCommands", e); } finally { if (jbpmContext != null) { jbpmContext.close(); jbpmContext = null; try { if (con != null) { con.close(); } } catch (SQLException e) { // TODO Auto-generated catch block e.printStackTrace(); } } } log.debug("End CommandBean:executeCommands"); if (Profiler.isProfiling()) Profiler.endProfile("CommandBean:executeCommands", start); return returnValue; } @Remove public void remove () { System.out.println("remove command service "); } } stacktrace SignalCommand 17:39:58,804 WARN [arjLoggerI18N] [com.arjuna.ats.arjuna.coordinator.TwoPhaseC ordinator_2] TwoPhaseCoordinator.beforeCompletion - failed for com.arjuna.ats.i ternal.jta.resources.arjunacore.SynchronizationImple@1ee32dd org.hibernate.SessionException: Session is closed! at org.hibernate.impl.AbstractSessionImpl.errorIfClosed(AbstractSession mpl.java:49) at org.hibernate.impl.SessionImpl.getNamedQuery(SessionImpl.java:1258) at org.jbpm.db.JobSession$DeleteJobsSynchronization.beforeCompletion(Jo Session.java:190) at com.arjuna.ats.internal.jta.resources.arjunacore.SynchronizationImpl .beforeCompletion(SynchronizationImple.java:114) at com.arjuna.ats.arjuna.coordinator.TwoPhaseCoordinator.beforeCompleti n(TwoPhaseCoordinator.java:247) at com.arjuna.ats.arjuna.coordinator.TwoPhaseCoordinator.end(TwoPhaseCo rdinator.java:86) at com.arjuna.ats.arjuna.AtomicAction.commit(AtomicAction.java:177) at com.arjuna.ats.internal.jta.transaction.arjunacore.TransactionImple. ommitAndDisassociate(TransactionImple.java:1389) at com.arjuna.ats.internal.jta.transaction.arjunacore.BaseTransaction.c mmit(BaseTransaction.java:135) at com.arjuna.ats.jbossatx.BaseTransactionManagerDelegate.commit(BaseTr nsactionManagerDelegate.java:87) at org.jboss.aspects.tx.TxPolicy.endTransaction(TxPolicy.java:175) at org.jboss.aspects.tx.TxPolicy.invokeInOurTx(TxPolicy.java:87) at org.jboss.aspects.tx.TxInterceptor$RequiresNew.invoke(TxInterceptor. -------------------------------------------------------------- Reply to this message by going to Community [http://community.jboss.org/message/594254#594254] Start a new discussion in jBPM at Community [http://community.jboss.org/choose-container!input.jspa?contentType=1&containerType=14&container=2034]
_______________________________________________ jboss-user mailing list [email protected] https://lists.jboss.org/mailman/listinfo/jboss-user
