Hi, no problem.<br>Basically you don't need to pass the ProcessInstance to the rules, because you can make inferences using the information inside the process instance in your rules.<br>If you can share what you want to do in your rules, I can help you..<br>
Greetings<br><br><div class="gmail_quote">On Tue, Oct 6, 2009 at 8:31 AM, premkumar <span dir="ltr"><<a href="mailto:premkumar.sivanandan@gmail.com">premkumar.sivanandan@gmail.com</a>></span> wrote:<br><blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;">
<br>
Thanks Maurico on your response. yes i am using bitronics .<br>
<br>
I have identified why this error happens when i have insert ProcessInstance<br>
obect to session as a fact to made available them in drools rule file<br>
conditions both LHS and RHS. Since the process instance is not implements<br>
Serializable.<br>
<br>
Let me give details about me project tt is spring based web project with<br>
hibernate .<br>
<br>
If you have any inputs how can i pass ProcessInstance object to Rules when<br>
am using JPAKnowledgeService.<br>
<br>
<br>
Find the Persistence.xml below<br>
<br>
<persistence-unit name="org.drools.persistence.jpa"<br>
transaction-type="JTA"><br>
<provider>org.hibernate.ejb.HibernatePersistence</provider><br>
<jta-data-source>processInstanceDS</jta-data-source><br>
<class>org.drools.persistence.session.SessionInfo</class><br>
<br>
<class>org.drools.persistence.processinstance.ProcessInstanceInfo</class><br>
<br>
<class>org.drools.persistence.processinstance.ProcessInstanceEventInfo</class><br>
<class>org.drools.persistence.processinstance.WorkItemInfo</class><br>
<br>
<properties><br>
<property name="hibernate.dialect"<br>
value="org.hibernate.dialect.H2Dialect"/><br>
<property name="hibernate.max_fetch_depth" value="3"/><br>
<property name="hibernate.hbm2ddl.auto" value="update"/><br>
<property name="hibernate.show_sql" value="true"/><br>
<property name="hibernate.transaction.manager_lookup_class"<br>
value="org.hibernate.transaction.BTMTransactionManagerLookup"/><br>
</properties><br>
</persistence-unit><br>
</persistence><br>
<br>
Datasource intialization code<br>
<br>
PoolingDataSource ds = new PoolingDataSource();<br>
ds.setUniqueName("processInstanceDS");<br>
<br>
ds.setClassName("org.h2.jdbcx.JdbcDataSource");<br>
ds.setMaxPoolSize(3);<br>
ds.setAllowLocalTransactions(true);<br>
ds.getDriverProperties().put("user", "sa");<br>
ds.getDriverProperties().put("password", "sasa");<br>
ds.getDriverProperties().put("URL",<br>
"jdbc:h2:file:/NotBackedUp/data/process-instance-db");<br>
ds.init()<br>
Thanks<br>
Prem<br>
<div><div></div><div class="h5"><br>
<br>
Mauricio Salatino wrote:<br>
><br>
> are you using bitronix and an EJB3 container?<br>
> can you explain us your infrastructure? what kind of projects do you have,<br>
> etc.<br>
> Thanks!<br>
><br>
> On Tue, Oct 6, 2009 at 2:18 AM, premkumar<br>
> <<a href="mailto:premkumar.sivanandan@gmail.com">premkumar.sivanandan@gmail.com</a>>wrote:<br>
><br>
>><br>
>> Hi<br>
>><br>
>> I am new to drools flow and trying to use the persistence using<br>
>> JPAKnowledgeService. When i tried that got the stack overflow error in H2<br>
>> db.<br>
>><br>
>> Can any one provide the guidance how to resolve this.<br>
>><br>
>> The exception trace is below<br>
>><br>
>> Hibernate: insert into SessionInfo (id, dirty, lastModificationDate,<br>
>> rulesByteArray, startDate) values (null, ?, ?, ?, ?)<br>
>> After the persistence Session @@@@@@<br>
>> Oct 6, 2009 2:42:21 PM bitronix.tm.twopc.Preparer prepare<br>
>> WARNING: executing transaction with 0 enlisted resource<br>
>> Oct 6, 2009 2:42:21 PM bitronix.tm.twopc.Preparer prepare<br>
>> WARNING: executing transaction with 0 enlisted resource<br>
>> Oct 6, 2009 2:42:22 PM bitronix.tm.twopc.Preparer prepare<br>
>> WARNING: executing transaction with 0 enlisted resource<br>
>> Hibernate: insert into ProcessInstanceInfo (processInstanceId,<br>
>> externalVariables, lastModificationDate, lastReadDate, processId,<br>
>> processInstanceByteArray, startDate, state, OPTLOCK) values (null, ?, ?,<br>
>> ?,<br>
>> ?, ?, ?, ?, ?)<br>
>> Hibernate: insert into WorkItemInfo (workItemId, creationDate, name,<br>
>> processInstanceId, state, OPTLOCK, workItemByteArray) values (null, ?, ?,<br>
>> ?,<br>
>> ?, ?, ?)<br>
>> Executing work item WorkItem 22 [name=Human Task, state=0,<br>
>> processInstanceId=21, parameters{ActorId=Admin, Comment=Raise Tk Request,<br>
>> Skippable=false, TaskName=Raise Tk Request}]<br>
>> Hibernate: update ProcessInstanceInfo set externalVariables=?,<br>
>> lastModificationDate=?, lastReadDate=?, processId=?,<br>
>> processInstanceByteArray=?, startDate=?, state=?, OPTLOCK=? where<br>
>> processInstanceId=? and OPTLOCK=?<br>
>> Hibernate: insert into ProcessInstanceInfo_eventTypes<br>
>> (ProcessInstanceInfo_processInstanceId, element) values (?, ?)<br>
>> Hibernate: delete from WorkItemInfo where workItemId=? and OPTLOCK=?<br>
>> Hibernate: update SessionInfo set dirty=?, lastModificationDate=?,<br>
>> rulesByteArray=?, startDate=? where id=?<br>
>> ****** ut ******* a BitronixTransactionManager with 0 in-flight<br>
>> transaction(s)<br>
>> Oct 6, 2009 2:42:22 PM bitronix.tm.BitronixTransaction<br>
>> fireBeforeCompletionEvent<br>
>> WARNING: Synchronization.beforeCompletion() call failed for<br>
>> org.hibernate.ejb.AbstractEntityManagerImpl$1@1824d2c, marking<br>
>> transaction<br>
>> as rollback only<br>
>> javax.persistence.PersistenceException: java.lang.RuntimeException:<br>
>> java.lang.StackOverflowError<br>
>> at<br>
>><br>
>> org.hibernate.ejb.AbstractEntityManagerImpl$1.beforeCompletion(AbstractEntityManagerImpl.java:516)<br>
>> at<br>
>><br>
>> bitronix.tm.BitronixTransaction.fireBeforeCompletionEvent(BitronixTransaction.java:366)<br>
>> at<br>
>> bitronix.tm.BitronixTransaction.commit(BitronixTransaction.java:142)<br>
>> at<br>
>><br>
>> bitronix.tm.BitronixTransactionManager.commit(BitronixTransactionManager.java:96)<br>
>> at<br>
>><br>
>> org.drools.persistence.session.SingleSessionCommandService.execute(SingleSessionCommandService.java:258)<br>
>> at<br>
>><br>
>> org.drools.command.impl.CommandBasedStatefulKnowledgeSession.insert(CommandBasedStatefulKnowledgeSession.java:305)<br>
>> at com.sample.POCTestClient.main(POCTestClient.java:57)<br>
>> Caused by: java.lang.RuntimeException: java.lang.StackOverflowError<br>
>> at<br>
>> org.hibernate.ejb.event.BeanCallback.invoke(BeanCallback.java:31)<br>
>> at<br>
>><br>
>> org.hibernate.ejb.event.EntityCallbackHandler.callback(EntityCallbackHandler.java:80)<br>
>> at<br>
>><br>
>> org.hibernate.ejb.event.EntityCallbackHandler.preUpdate(EntityCallbackHandler.java:65)<br>
>> at<br>
>><br>
>> org.hibernate.ejb.event.EJB3FlushEntityEventListener.invokeInterceptor(EJB3FlushEntityEventListener.java:41)<br>
>> at<br>
>><br>
>> org.hibernate.event.def.DefaultFlushEntityEventListener.handleInterception(DefaultFlushEntityEventListener.java:330)<br>
>> at<br>
>><br>
>> org.hibernate.event.def.DefaultFlushEntityEventListener.scheduleUpdate(DefaultFlushEntityEventListener.java:270)<br>
>> at<br>
>><br>
>> org.hibernate.event.def.DefaultFlushEntityEventListener.onFlushEntity(DefaultFlushEntityEventListener.java:151)<br>
>> at<br>
>><br>
>> org.hibernate.event.def.AbstractFlushingEventListener.flushEntities(AbstractFlushingEventListener.java:219)<br>
>> at<br>
>><br>
>> org.hibernate.event.def.AbstractFlushingEventListener.flushEverythingToExecutions(AbstractFlushingEventListener.java:99)<br>
>> at<br>
>><br>
>> org.hibernate.event.def.DefaultFlushEventListener.onFlush(DefaultFlushEventListener.java:49)<br>
>> at org.hibernate.impl.SessionImpl.flush(SessionImpl.java:1027)<br>
>> at<br>
>> org.hibernate.impl.SessionImpl.managedFlush(SessionImpl.java:365)<br>
>> at<br>
>><br>
>> org.hibernate.ejb.AbstractEntityManagerImpl$1.beforeCompletion(AbstractEntityManagerImpl.java:504)<br>
>> ... 6 more<br>
>> Caused by: java.lang.StackOverflowError<br>
>><br>
>> thanks<br>
>> Prem<br>
>> --<br>
>> View this message in context:<br>
>> <a href="http://www.nabble.com/Drools-Flow-Persisternce-Stack-Overflow-Error-tp25765337p25765337.html" target="_blank">http://www.nabble.com/Drools-Flow-Persisternce-Stack-Overflow-Error-tp25765337p25765337.html</a><br>
>> Sent from the drools - dev mailing list archive at Nabble.com.<br>
>><br>
>> _______________________________________________<br>
>> rules-dev mailing list<br>
>> <a href="mailto:rules-dev@lists.jboss.org">rules-dev@lists.jboss.org</a><br>
>> <a href="https://lists.jboss.org/mailman/listinfo/rules-dev" target="_blank">https://lists.jboss.org/mailman/listinfo/rules-dev</a><br>
>><br>
><br>
><br>
><br>
> --<br>
> - <a href="http://salaboy.wordpress.com" target="_blank">http://salaboy.wordpress.com</a><br>
> - <a href="http://www.jbug.com.ar" target="_blank">http://www.jbug.com.ar</a><br>
> - Salatino "Salaboy" Mauricio -<br>
><br>
> _______________________________________________<br>
> rules-dev mailing list<br>
> <a href="mailto:rules-dev@lists.jboss.org">rules-dev@lists.jboss.org</a><br>
> <a href="https://lists.jboss.org/mailman/listinfo/rules-dev" target="_blank">https://lists.jboss.org/mailman/listinfo/rules-dev</a><br>
><br>
><br>
<br>
--<br>
</div></div>View this message in context: <a href="http://www.nabble.com/Drools-Flow-Persisternce-Stack-Overflow-Error-tp25765337p25771029.html" target="_blank">http://www.nabble.com/Drools-Flow-Persisternce-Stack-Overflow-Error-tp25765337p25771029.html</a><br>
<div><div></div><div class="h5">Sent from the drools - dev mailing list archive at Nabble.com.<br>
<br>
_______________________________________________<br>
rules-dev mailing list<br>
<a href="mailto:rules-dev@lists.jboss.org">rules-dev@lists.jboss.org</a><br>
<a href="https://lists.jboss.org/mailman/listinfo/rules-dev" target="_blank">https://lists.jboss.org/mailman/listinfo/rules-dev</a><br>
</div></div></blockquote></div><br><br clear="all"><br>-- <br> - <a href="http://salaboy.wordpress.com">http://salaboy.wordpress.com</a><br> - <a href="http://www.jbug.com.ar">http://www.jbug.com.ar</a><br> - Salatino "Salaboy" Mauricio -<br>