Hi,<br><br>When I started to using drools flow persistence, I was getting the same error &quot;java.lang.IllegalStateException: EntityManager is closed&quot;. After a lot of time I figured out that I was using the command &quot;ksession.dispose();&quot; and when I removed this command everything worked fine.<br>
<br>Regards,<br>Anderson<br><br><div class="gmail_quote">2010/11/23 raic <span dir="ltr">&lt;<a href="mailto:agomezcom@gmail.com">agomezcom@gmail.com</a>&gt;</span><br><blockquote class="gmail_quote" style="margin: 0pt 0pt 0pt 0.8ex; border-left: 1px solid rgb(204, 204, 204); padding-left: 1ex;">
<br>
Hi,<br>
<br>
I&#39;m having problems using drools flow persistance with human tasks. I&#39;m<br>
using drools server.<br>
<br>
On one hand, I have my test application, which starts a MinaTaskServer for<br>
registering human tasks, and then, the application generates JSON commands<br>
for executing a flow with human tasks on the execution server.<br>
<br>
Without using flow persistence, this is working ok, i&#39;m able to retrieve the<br>
pending tasks and completing them without problems.<br>
<br>
When I try to configure flow persistence on the execution server, i can<br>
start the process, the tasks are registered ok and drools flow tables are<br>
generated in my database (processinstanceinfo,sessioninfo,workiteminfo...)<br>
with the correct flow information. The problem appears when i retrieve a<br>
pending task, and then, i want to complete it. It seems that the<br>
communication between MinaTaskServer and ExecutionServer is not ok.<br>
<br>
The error i&#39;m getting is the following:<br>
<br>
<br>
[2010:11:327 18:11:661:debug] Message receieved on client :<br>
EventTriggerResponse<br>
<br>
[2010:11:327 18:11:661:debug] Arguments :<br>
[org.drools.task.event.EventPayload@1b2df13]<br>
Task completed 1<br>
[2010:11:327 18:11:661:debug] Message receieved on client :<br>
EventTriggerResponse<br>
[2010:11:327 18:11:661:debug] Arguments :<br>
[org.drools.task.event.EventPayload@1f7c6e1]<br>
Task completed 1<br>
[2010:11:327 18:11:770:debug] Message receieved on client : GetTaskResponse<br>
[2010:11:327 18:11:770:debug] Arguments : [org.drools.task.Task@d17fbb51]<br>
[2010:11:327 18:11:770:exception] Uncaught exception on client<br>
java.lang.IllegalStateException: EntityManager is closed<br>
at org.hibernate.ejb.EntityManagerImpl.getSession(EntityManagerImpl.java<br>
:66)<br>
        at<br>
org.hibernate.ejb.AbstractEntityManagerImpl.find(AbstractEntityManagerImpl.java:182)<br>
        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)<br>
        at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)<br>
        at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)<br>
        at java.lang.reflect.Method.invoke(Unknown Source)<br>
        at<br>
org.springframework.orm.jpa.ExtendedEntityManagerCreator$ExtendedEntityManagerInvocationHandler.invoke(ExtendedEntityManagerCreator.java:358)<br>
        at $Proxy132.find(Unknown Source)<br>
        at<br>
org.drools.persistence.processinstance.JPAWorkItemManager.completeWorkItem(JPAWorkItemManager.java:88)<br>
        at<br>
org.drools.process.workitem.wsht.WSHumanTaskHandler$GetCompletedTaskResponseHandler.execute(WSHumanTaskHandler.java:250)<br>
        at<br>
org.drools.task.service.TaskClientHandler.messageReceived(TaskClientHandler.java:80)<br>
        at<br>
org.drools.task.service.mina.MinaTaskClientHandler.messageReceived(MinaTaskClientHandler.java:47)<br>
        at<br>
org.apache.mina.core.filterchain.DefaultIoFilterChain$TailFilter.messageReceived(DefaultIoFilterChain.java:713)<br>
        at<br>
org.apache.mina.core.filterchain.DefaultIoFilterChain.callNextMessageReceived(DefaultIoFilterChain.java:434)<br>
        at<br>
org.apache.mina.core.filterchain.DefaultIoFilterChain.access$1200(DefaultIoFilterChain.java:46)<br>
        at<br>
org.apache.mina.core.filterchain.DefaultIoFilterChain$EntryImpl$1.messageReceived(DefaultIoFilterChain.java:793)<br>
        at<br>
org.apache.mina.filter.codec.ProtocolCodecFilter$ProtocolDecoderOutputImpl.flush(ProtocolCodecFilter.java:375)<br>
        at<br>
org.apache.mina.filter.codec.ProtocolCodecFilter.messageReceived(ProtocolCodecFilter.java:229)<br>
        at<br>
org.apache.mina.core.filterchain.DefaultIoFilterChain.callNextMessageReceived(DefaultIoFilterChain.java:434)<br>
        at<br>
org.apache.mina.core.filterchain.DefaultIoFilterChain.access$1200(DefaultIoFilterChain.java:46)<br>
        at<br>
org.apache.mina.core.filterchain.DefaultIoFilterChain$EntryImpl$1.messageReceived(DefaultIoFilterChain.java:793)<br>
        at<br>
org.apache.mina.core.filterchain.IoFilterAdapter.messageReceived(IoFilterAdapter.java:119)<br>
        at<br>
org.apache.mina.core.filterchain.DefaultIoFilterChain.callNextMessageReceived(DefaultIoFilterChain.java:434)<br>
        at<br>
org.apache.mina.core.filterchain.DefaultIoFilterChain.fireMessageReceived(DefaultIoFilterChain.java:426)<br>
        at<br>
org.apache.mina.core.polling.AbstractPollingIoProcessor.read(AbstractPollingIoProcessor.java:638)<br>
        at<br>
org.apache.mina.core.polling.AbstractPollingIoProcessor.process(AbstractPollingIoProcessor.java:598)<br>
        at<br>
org.apache.mina.core.polling.AbstractPollingIoProcessor.process(AbstractPollingIoProcessor.java:587)<br>
        at<br>
org.apache.mina.core.polling.AbstractPollingIoProcessor.access$400(AbstractPollingIoProcessor.java:61)<br>
        at<br>
org.apache.mina.core.polling.AbstractPollingIoProcessor$Processor.run(AbstractPollingIoProcessor.java:969)<br>
        at<br>
org.apache.mina.util.NamePreservingRunnable.run(NamePreservingRunnable.java:64)<br>
        at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(Unknown<br>
Source<br>
)<br>
        at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown<br>
Source)<br>
        at java.lang.Thread.run(Unknown Source)<br>
<br>
<br>
<br>
<br>
And here is my configuration:<br>
<br>
<br>
knowledge-services.xml  (spring configuration)<br>
<br>
<br>
<br>
&lt;?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot;?&gt;<br>
&lt;beans xmlns=&quot;<a href="http://www.springframework.org/schema/beans" target="_blank">http://www.springframework.org/schema/beans</a>&quot;<br>
xmlns:xsi=&quot;<a href="http://www.w3.org/2001/XMLSchema-instance" target="_blank">http://www.w3.org/2001/XMLSchema-instance</a>&quot;<br>
        xmlns:drools=&quot;<a href="http://drools.org/schema/drools-spring" target="_blank">http://drools.org/schema/drools-spring</a>&quot;<br>
        xsi:schemaLocation=&quot;<a href="http://www.springframework.org/schema/beans" target="_blank">http://www.springframework.org/schema/beans</a><br>
<a href="http://www.springframework.org/schema/beans/spring-beans-2.0.xsd" target="_blank">http://www.springframework.org/schema/beans/spring-beans-2.0.xsd</a><br>
                        <a href="http://drools.org/schema/drools-spring" target="_blank">http://drools.org/schema/drools-spring</a><br>
<a href="http://anonsvn.jboss.org/repos/labs/labs/jbossrules/trunk/drools-container/drools-spring/src/main/resources/org/drools/container/spring/drools-spring-1.0.0.xsd" target="_blank">http://anonsvn.jboss.org/repos/labs/labs/jbossrules/trunk/drools-container/drools-spring/src/main/resources/org/drools/container/spring/drools-spring-1.0.0.xsd</a>&quot;&gt;<br>

<br>
        &lt;bean id=&quot;ds&quot;<br>
class=&quot;org.springframework.jdbc.datasource.DriverManagerDataSource&quot;&gt;<br>
                &lt;property name=&quot;driverClassName&quot; value=&quot;com.mysql.jdbc.Driver&quot; /&gt;<br>
                &lt;property name=&quot;url&quot; value=&quot;jdbc:mysql://localhost:3306/drools_flow&quot; /&gt;<br>
                &lt;property name=&quot;username&quot; value=&quot;user&quot; /&gt;<br>
                &lt;property name=&quot;password&quot; value=&quot;pass&quot; /&gt;<br>
<br>
<br>
        &lt;/bean&gt;<br>
<br>
        &lt;drools:connection id=&quot;connection1&quot; type=&quot;local&quot; /&gt;<br>
        &lt;drools:execution-node id=&quot;node1&quot; connection=&quot;connection1&quot; /&gt;<br>
<br>
        &lt;drools:kbase id=&quot;kbProcessWorkItems&quot; node=&quot;node1&quot;&gt;<br>
            &lt;drools:resources&gt;<br>
                                    &lt;drools:resource  type=&quot;CHANGE_SET&quot;<br>
source=&quot;classpath:changeset.xml&quot;/&gt;<br>
                &lt;/drools:resources&gt;<br>
        &lt;/drools:kbase&gt;<br>
<br>
        &lt;bean id=&quot;myEmf&quot;<br>
class=&quot;org.springframework.orm.jpa.LocalContainerEntityManagerFactoryBean&quot;&gt;<br>
                &lt;property name=&quot;dataSource&quot; ref=&quot;ds&quot; /&gt;<br>
                &lt;property name=&quot;persistenceUnitName&quot;<br>
value=&quot;org.drools.persistence.jpa.local&quot; /&gt;<br>
        &lt;/bean&gt;<br>
<br>
        &lt;bean id=&quot;txManager&quot;<br>
class=&quot;org.springframework.orm.jpa.JpaTransactionManager&quot;&gt;<br>
                &lt;property name=&quot;entityManagerFactory&quot; ref=&quot;myEmf&quot; /&gt;<br>
        &lt;/bean&gt;<br>
<br>
        &lt;drools:kstore id=&quot;kstore1&quot; /&gt;<br>
<br>
        &lt;drools:ksession id=&quot;ksession1&quot; type=&quot;stateful&quot;  kbase=&quot;kbProcessWorkItems&quot;<br>
node=&quot;node1&quot;&gt;<br>
            &lt;drools:configuration&gt;<br>
                        &lt;drools:jpa-persistence&gt;<br>
                    &lt;drools:transaction-manager ref=&quot;txManager&quot; /&gt;<br>
                    &lt;drools:entity-manager-factory ref=&quot;myEmf&quot; /&gt;<br>
                                &lt;drools:variable-persisters&gt;<br>
                                        &lt;drools:persister for-class=&quot;javax.persistence.Entity&quot;<br>
implementation=&quot;org.drools.persistence.processinstance.persisters.JPAVariablePersister&quot;/&gt;<br>
                                &lt;/drools:variable-persisters&gt;<br>
                    &lt;/drools:jpa-persistence&gt;<br>
            &lt;/drools:configuration&gt;<br>
        &lt;/drools:ksession&gt;<br>
<br>
&lt;/beans&gt;<br>
<br>
<br>
<br>
And here my persistence.xml:<br>
<br>
<br>
&lt;?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot;?&gt;<br>
&lt;persistence version=&quot;1.0&quot; xmlns=&quot;<a href="http://java.sun.com/xml/ns/persistence" target="_blank">http://java.sun.com/xml/ns/persistence</a>&quot;<br>
                xmlns:orm=&quot;<a href="http://java.sun.com/xml/ns/persistence/orm" target="_blank">http://java.sun.com/xml/ns/persistence/orm</a>&quot;<br>
                xmlns:xsi=&quot;<a href="http://www.w3.org/2001/XMLSchema-instance" target="_blank">http://www.w3.org/2001/XMLSchema-instance</a>&quot;<br>
                xsi:schemaLocation=&quot;<br>
                                <a href="http://java.sun.com/xml/ns/persistence" target="_blank">http://java.sun.com/xml/ns/persistence</a><br>
<a href="http://java.sun.com/xml/ns/persistence/persistence_1_0.xsd" target="_blank">http://java.sun.com/xml/ns/persistence/persistence_1_0.xsd</a><br>
                                <a href="http://java.sun.com/xml/ns/persistence/orm" target="_blank">http://java.sun.com/xml/ns/persistence/orm</a><br>
<a href="http://java.sun.com/xml/ns/persistence/orm_1_0.xsd" target="_blank">http://java.sun.com/xml/ns/persistence/orm_1_0.xsd</a>&quot;&gt;<br>
<br>
        &lt;persistence-unit name=&quot;org.drools.persistence.jpa.local&quot;<br>
transaction-type=&quot;RESOURCE_LOCAL&quot;&gt;<br>
                &lt;provider&gt;org.hibernate.ejb.HibernatePersistence&lt;/provider&gt;<br>
<br>
                &lt;class&gt;org.drools.persistence.session.SessionInfo&lt;/class&gt;<br>
                &lt;class&gt;org.drools.persistence.processinstance.ProcessInstanceInfo&lt;/class&gt;<br>
<br>
&lt;class&gt;org.drools.persistence.processinstance.WorkItemInfo&lt;/class&gt;<br>
<br>
&lt;class&gt;org.drools.persistence.processinstance.variabletypes.VariableInstanceInfo&lt;/class&gt;<br>
<br>
&lt;class&gt;org.drools.persistence.processinstance.variabletypes.JPAPersistedVariable&lt;/class&gt;<br>
<br>
                &lt;!-- my persistent variables --&gt;<br>
                &lt;class&gt;com.sample.bussiness.model.ClientModel&lt;/class&gt;<br>
                &lt;properties&gt;<br>
                        &lt;property name=&quot;hibernate.dialect&quot;<br>
value=&quot;org.hibernate.dialect.MySQL5Dialect&quot;/&gt;<br>
                        &lt;property name=&quot;hibernate.max_fetch_depth&quot; value=&quot;3&quot; /&gt;<br>
                        &lt;property name=&quot;hibernate.hbm2ddl.auto&quot; value=&quot;create&quot; /&gt;<br>
                        &lt;property name=&quot;hibernate.show_sql&quot; value=&quot;false&quot; /&gt;<br>
                &lt;/properties&gt;<br>
        &lt;/persistence-unit&gt;<br>
&lt;/persistence&gt;<br>
<br>
<br>
<br>
I&#39;ve seen some examples that uses bitronix but i&#39;m not using it, i don&#39;t<br>
know if that is the problem...<br>
<br>
<br>
Some ideas?<br>
<br>
Thanks<br>
<font color="#888888"><br>
<br>
<br>
<br>
<br>
<br>
<br>
--<br>
View this message in context: <a href="http://drools-java-rules-engine.46999.n3.nabble.com/Problem-persisting-human-tasks-tp1954934p1954934.html" target="_blank">http://drools-java-rules-engine.46999.n3.nabble.com/Problem-persisting-human-tasks-tp1954934p1954934.html</a><br>

Sent from the Drools - User mailing list archive at Nabble.com.<br>
_______________________________________________<br>
rules-users mailing list<br>
<a href="mailto:rules-users@lists.jboss.org">rules-users@lists.jboss.org</a><br>
<a href="https://lists.jboss.org/mailman/listinfo/rules-users" target="_blank">https://lists.jboss.org/mailman/listinfo/rules-users</a><br>
</font></blockquote></div><br>