[jBPM] - jBpm 5.2 persistence problem - Oracle - Unknown entity: org.drools.persistence.info.SessionInfo
by Samrat Roy
Samrat Roy [https://community.jboss.org/people/whizkid.samrat] created the discussion
"jBpm 5.2 persistence problem - Oracle - Unknown entity: org.drools.persistence.info.SessionInfo"
To view the discussion, visit: https://community.jboss.org/message/717687#717687
--------------------------------------------------------------
Hi , I am setting up jBpm 5.2 with persistence for the first time and facing a LoT of issues. I am using jpm 5.2 with Spring 3.0 and Hibernate 3.5.6 on jBoss AS 7 server.
We all know that jBoss AS 7 comes with Hibernate 4 as the default hibernate , but I need to use the Hibernate 3 in my project so I installed hibernate 3 as a module in as7 and that is working as expected . I excluded Hibernate 4 with jboss-deployment-structure.xml and added org.jboss.as.jpa.hibernate:3 as a dependency in manifest.mf [refer http://badr-elhouari.blogspot.in/2011/10/how-to-use-hibernate-3-as-jpa-pr... here how I added hibernate:3 as a module in AS7]
That said , I have configured the entire knowledge base and knowledge session in spring so that I dont have to write code for that - Taking tips from drools - integration module and by using drools-grid-impl jar and drools-spring jar.
Drools-grid jar contains a persistence.xml which used in memory DB [h2] so I modified the xml to use oracle and hibernate 3 instead.
Here is my *application context*:
<bean id="entityManagerFactory" class="org.springframework.orm.jpa.LocalContainerEntityManagerFactoryBean" p:dataSource-ref="datasource">
<property name="jpaVendorAdapter">
<bean class="org.springframework.orm.jpa.vendor.HibernateJpaVendorAdapter" p:database="${jpa.database}" p:showSql="${jpa.showSql}"/>
</property>
<property name="persistenceXmlLocation" value="classpath:META-INF/persistence.xml"/>
</bean>
<bean id="transactionManager" class="org.springframework.orm.jpa.JpaTransactionManager">
<property name="entityManagerFactory" ref="entityManagerFactory" />
</bean>
<tx:annotation-driven transaction-manager="transactionManager"/>
<bean class="org.springframework.orm.jpa.support.PersistenceAnnotationBeanPostProcessor" />
<!-- First: declare JBPM JPA Session with a process definition -->
<jbpm:kbase id="kbase">
<jbpm:resources>
<jbpm:resource type="BPMN2" source="classpath:LeaveFlow.bpmn" />
</jbpm:resources>
</jbpm:kbase>
<jbpm:ksession id="ksession" type="stateful" kbase="kbase">
<jbpm:configuration>
<jbpm:jpa-persistence>
<jbpm:entity-manager-factory ref="entityManagerFactory"/>
<jbpm:transaction-manager ref="transactionManager"/>
</jbpm:jpa-persistence>
</jbpm:configuration>
</jbpm:ksession>
<!-- Declare a TaskServer -->
<bean class="org.jbpm.task.service.TaskService" id="taskService">
<constructor-arg ref="entityManagerFactory"/>
<constructor-arg>
<bean class="org.drools.SystemEventListenerFactory" factory-method="getSystemEventListener"/>
</constructor-arg>
</bean>
<bean class="org.jbpm.task.service.mina.MinaTaskServer" id="taskServer">
<constructor-arg ref="taskService"/>
<constructor-arg><value>${jbpm.task.server.port}</value></constructor-arg>
</bean>
<!-- And start TaskServer on the configured port -->
<bean class="java.lang.Thread" id="taskServerThread" init-method="start">
<constructor-arg ref="taskServer"/>
</bean>
<!-- Declare a TaskClient -->
<bean class="org.jbpm.task.service.mina.MinaTaskClientConnector" id="taskClientConnector">
<constructor-arg value="taskClient"/>
<constructor-arg>
<bean class="org.jbpm.task.service.mina.MinaTaskClientHandler">
<constructor-arg>
<bean class="org.drools.SystemEventListenerFactory" factory-method="getSystemEventListener"/>
</constructor-arg>
</bean>
</constructor-arg>
</bean>
<bean class="org.jbpm.task.service.TaskClient" id="taskClient">
<constructor-arg ref="taskClientConnector"/>
</bean>
<!-- Declare a HumanTaskHandler -->
<bean class="org.jbpm.task.service.AsyncTaskServiceWrapper"
id="humanTaskClient">
<constructor-arg ref="taskClient"/>
</bean>
<!-- It uses previously created TaskClient -->
<bean class="org.jbpm.process.workitem.wsht.SyncWSHumanTaskHandler" id="humanTaskHandler">
<constructor-arg ref="humanTaskClient"/>
<constructor-arg ref="ksession"/>
</bean>
<!-- Configure its connection to the local server -->
<bean class="org.springframework.beans.factory.config.MethodInvokingFactoryBean" depends-on="humanTaskHandler" id="setConnection">
<property name="targetObject" ref="humanTaskHandler"/>
<property name="targetMethod" value="setConnection"/>
<property name="arguments">
<list>
<value>${jbpm.task.client.address}</value>
<value>${jbpm.task.client.port}</value>
</list>
</property>
</bean>
<!-- And connect HumanTaskHandler (implicit TaskClient connection) -->
<bean class="org.springframework.beans.factory.config.MethodInvokingFactoryBean" depends-on="setConnection">
<property name="targetObject" ref="humanTaskHandler"/>
<property name="targetMethod" value="connect"/>
</bean>
<!-- Finnaly, register HumanTaskHandler in the session -->
<bean factory-bean="ksession" factory-method="getWorkItemManager" id="workItemManager"/>
<bean class="org.springframework.beans.factory.config.MethodInvokingFactoryBean">
<property name="targetObject" ref="workItemManager"/>
<property name="targetMethod" value="registerWorkItemHandler"/>
<property name="arguments">
<list>
<value>Human Task</value>
<ref bean="humanTaskHandler"/>
</list>
</property>
</bean>
The Exception I am getting while server startup is :
20:07:26,443 ERROR [org.drools.persistence.SingleSessionCommandService] (MSC service thread 1-3) Could not commit session: java.lang.IllegalArgumentException: *Unknown entity: org.drools.persistence.info.SessionInfo*
at org.hibernate.ejb.AbstractEntityManagerImpl.persist(AbstractEntityManagerImpl.java:671) [hibernate-entitymanager-3.5.6-Final.jar:3.5.6-Final]
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) [:1.6.0_23]
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39) [:1.6.0_23]
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) [:1.6.0_23]
at java.lang.reflect.Method.invoke(Method.java:597) [:1.6.0_23]
at org.springframework.orm.jpa.ExtendedEntityManagerCreator$ExtendedEntityManagerInvocationHandler.invoke(ExtendedEntityManagerCreator.java:365) [org.springframework.orm-3.0.5.RELEASE.jar:]
at $Proxy32.persist(Unknown Source) at org.drools.persistence.jpa.JpaPersistenceContext.persist(JpaPersistenceContext.java:17) [drools-persistence-jpa-5.3.1.Final.jar:]
at org.drools.persistence.SingleSessionCommandService.<init>(SingleSessionCommandService.java:152) [drools-persistence-jpa-5.3.1.Final.jar:]
at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method) [:1.6.0_23]
at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:39) [:1.6.0_23]
at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:27) [:1.6.0_23]
at java.lang.reflect.Constructor.newInstance(Constructor.java:513) [:1.6.0_23]
at org.drools.persistence.jpa.KnowledgeStoreServiceImpl.buildCommandService(KnowledgeStoreServiceImpl.java:129) [drools-persistence-jpa-5.3.1.Final.jar:]
at org.drools.persistence.jpa.KnowledgeStoreServiceImpl.newStatefulKnowledgeSession(KnowledgeStoreServiceImpl.java:67) [drools-persistence-jpa-5.3.1.Final.jar:]
at org.drools.persistence.jpa.JPAKnowledgeService.newStatefulKnowledgeSession(JPAKnowledgeService.java:122) [knowledge-api-5.3.1.Final.jar:]
at org.drools.container.spring.beans.StatefulKnowledgeSessionBeanFactory.internalAfterPropertiesSet(StatefulKnowledgeSessionBeanFactory.java:85) [drools-spring-5.3.0.Final.jar:]
at org.drools.container.spring.beans.AbstractKnowledgeSessionBeanFactory.afterPropertiesSet(AbstractKnowledgeSessionBeanFactory.java:123) [drools-spring-5.3.0.Final.jar:]
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.invokeInitMethods(AbstractAutowireCapableBeanFactory.java:1477) [org.springframework.beans-3.0.5.RELEASE.jar:]
.......
This is driving me nuts as I have all the required jars in my classPath. Please help !!!
I am attaching important config files :
Application Ctxt of my application , MANIFEST.MF of my application , persistence.xml from my application and the persistence.xml which I modified in drools-grid jar
--------------------------------------------------------------
Reply to this message by going to Community
[https://community.jboss.org/message/717687#717687]
Start a new discussion in jBPM at Community
[https://community.jboss.org/choose-container!input.jspa?contentType=1&con...]
13 years, 5 months
[jBPM] - Error with connection
by tmmaluleke
tmmaluleke [https://community.jboss.org/people/tmmaluleke] created the discussion
"Error with connection"
To view the discussion, visit: https://community.jboss.org/message/761847#761847
--------------------------------------------------------------
Hello,
Since I changed my database to mysql, when I run the my process I get this error:
| 0 | 27/09 11:03:44,406[main] ERROR service.hornetq.HornetQTaskClientConnector.connect - Unable to connect to server using configuration org-hornetq-core-remoting-impl-netty-NettyConnectorFactory?port=5445&host=127-0-0-1 |
org.jbpm.workflow.instance.WorkflowRuntimeException: [departmentOfEductaion.bpmn:1 - Dept Of Education Evaluation:3] -- Could not connect task client: on ip: 127.0.0.1 - port: 5445
| | at org.jbpm.workflow.instance.impl.NodeInstanceImpl.trigger(NodeInstanceImpl.java:130) |
| | at org.jbpm.workflow.instance.impl.NodeInstanceImpl.triggerNodeInstance(NodeInstanceImpl.java:205) |
| | at org.jbpm.workflow.instance.impl.NodeInstanceImpl.triggerCompleted(NodeInstanceImpl.java:164) |
| | at org.jbpm.workflow.instance.node.StartNodeInstance.triggerCompleted(StartNodeInstance.java:49) |
| | at org.jbpm.workflow.instance.node.StartNodeInstance.internalTrigger(StartNodeInstance.java:41) |
| | at org.jbpm.workflow.instance.impl.NodeInstanceImpl.trigger(NodeInstanceImpl.java:124) |
| | at org.jbpm.ruleflow.instance.RuleFlowProcessInstance.internalStart(RuleFlowProcessInstance.java:35) |
| | at org.jbpm.process.instance.impl.ProcessInstanceImpl.start(ProcessInstanceImpl.java:188) |
| | at org.jbpm.workflow.instance.impl.WorkflowProcessInstanceImpl.start(WorkflowProcessInstanceImpl.java:303) |
| | at org.jbpm.process.instance.ProcessRuntimeImpl.startProcessInstance(ProcessRuntimeImpl.java:168) |
| | at org.jbpm.process.instance.ProcessRuntimeImpl.startProcess(ProcessRuntimeImpl.java:138) |
| | at org.drools.common.AbstractWorkingMemory.startProcess(AbstractWorkingMemory.java:1082) |
| | at org.drools.impl.StatefulKnowledgeSessionImpl.startProcess(StatefulKnowledgeSessionImpl.java:320) |
| | at departmentOfEducation.DepartmentProcess.main(DepartmentProcess.java:29) |
Caused by: java.lang.IllegalArgumentException: Could not connect task client: on ip: 127.0.0.1 - port: 5445
| | at org.jbpm.process.workitem.wsht.GenericHTWorkItemHandler.connect(GenericHTWorkItemHandler.java:119) |
| | at org.jbpm.process.workitem.wsht.GenericHTWorkItemHandler.executeWorkItem(GenericHTWorkItemHandler.java:143) |
| | at org.drools.process.instance.impl.DefaultWorkItemManager.internalExecuteWorkItem(DefaultWorkItemManager.java:70) |
| | at org.jbpm.workflow.instance.node.WorkItemNodeInstance.internalTrigger(WorkItemNodeInstance.java:105) |
| | at org.jbpm.workflow.instance.impl.NodeInstanceImpl.trigger(NodeInstanceImpl.java:124) |
| | ... 13 more |
What can be the cause of this error please help?
I can't connect to jbpm-console and guvnor. Thanx for the help in advanced.
cheers
--------------------------------------------------------------
Reply to this message by going to Community
[https://community.jboss.org/message/761847#761847]
Start a new discussion in jBPM at Community
[https://community.jboss.org/choose-container!input.jspa?contentType=1&con...]
13 years, 5 months
[jBPM] - jBPM 5.3 released
by Kris Verlaenen
Kris Verlaenen [https://community.jboss.org/people/KrisVerlaenen] created the discussion
"jBPM 5.3 released"
To view the discussion, visit: https://community.jboss.org/message/737803#737803
--------------------------------------------------------------
http://kverlaen.blogspot.com/2012/05/jbpm-53-released.html http://kverlaen.blogspot.com/2012/05/jbpm-53-released.html
jBPM 5.3 has just been released. It includes a large amount of smaller improvements and fixes, and also contains a few new bigger features as well:
* We would like to introduce our http://docs.jboss.org/jbpm/v5.3/userguide/ch.eclipse-bpmn-plugin.html new Eclipse editor for defining business process in Eclipse (using the BPMN 2.0 standard). This editor will offer support for the full BPMN2 specification, and currently offers support for at least the same constructs as the previous plugin. We will continue to extend it over time with all the other constructs the jBPM core engine already supports, but we would like to hear your feedback as well !
http://1.bp.blogspot.com/-M0rOaqC7HwI/T7oxPA05MbI/AAAAAAAAASE/lyR1eCUZu_o... http://1.bp.blogspot.com/-M0rOaqC7HwI/T7oxPA05MbI/AAAAAAAAASE/lyR1eCUZu_o...
* A first version of the form builder has been released as well. This form builder allows you to create and edit your forms (for tasks and processes) in a graphical way, using drag and drop. It supports the usual components like labels, text fields and areas, buttons, etc. but already has support for various layouts, scripting, building your own components, etc. [Note: this first version is currently only supported on FireFox but we're working on adding support for all other browsers as well]
http://1.bp.blogspot.com/-Ov7gkMW1v9Q/T7oz5ZdREBI/AAAAAAAAASQ/JBXySeFPPRI... http://1.bp.blogspot.com/-Ov7gkMW1v9Q/T7oz5ZdREBI/AAAAAAAAASQ/JBXySeFPPRI...
* The web designer received a http://surdilovic.wordpress.com/2012/04/10/jbpm-designer-version-2-1-rele... lot of love as well, with new features like user-friendly property editors, color themes, a dictionary, inline form editing, etc.
http://1.bp.blogspot.com/-fokSxkZGTrA/T7o0_8y7rwI/AAAAAAAAASY/OCHQ0XrtrgE... http://1.bp.blogspot.com/-fokSxkZGTrA/T7o0_8y7rwI/AAAAAAAAASY/OCHQ0XrtrgE...
* The jbpm-human-task module has been split up in a jbpm-human-task-core module and sub-modules for the different transport protocols available (hornetq, mina, jms), and a separate war that can be deployed in the application server (and is made easily http://docs.jboss.org/jbpm/v5.3/userguide/ch.human-tasks.html#d0e5383 configurable now). The installer now uses the war (with HornetQ) by default.
* Integration between the jBPM console and Guvnor has been upgraded, to support new packages being added in Guvnor, removal of processes, etc.
* The human task module now supports http://docs.jboss.org/jbpm/v5.3/userguide/ch.human-tasks.html#d0e4934 escalations and notifications.
* Lots of persistence improvements to better support different databases, and we're using a new serialization technology (Protobuf) to better support upgrading / migration in the future.
You can download the release https://sourceforge.net/projects/jbpm/files/jBPM%205/jbpm-5.3.0.Final/ here (if you're not sure what you're looking for, downloading the full installer and then following the http://docs.jboss.org/jbpm/v5.3/userguide/ch.installer.html installer chapter to set up your environment and run through the tooling with a simple example is probably a good idea), or browse the http://docs.jboss.org/jbpm/v5.3/userguide/ documentation and http://docs.jboss.org/jbpm/v5.3/javadocs/ javadocs.
jBPM 5.3.0.Final has been released in sync with the latest http://blog.athico.com/2012/05/drools-540final-released.html Drools 5.4.0.Final release.
We're still updating our docs and writing some blogs on the new features as we speak, so you can expect more updates from us soon!
If you have any questions / issues, let us know:
* Ask questions on IRC: chat.freenode.net:6667 #jbpm (there is a web-based client available http://webchat.freenode.net/ here)
* Create a JIRA issue: https://issues.jboss.org/browse/JBPM https://issues.jboss.org/browse/JBPM
* Ask the community in the https://community.jboss.org/jbpm?view=discussions forum
The jBPM team
--------------------------------------------------------------
Reply to this message by going to Community
[https://community.jboss.org/message/737803#737803]
Start a new discussion in jBPM at Community
[https://community.jboss.org/choose-container!input.jspa?contentType=1&con...]
13 years, 5 months
[jBPM] - Re: Session and thread safety
by Michał Mański
Michał Mański [https://community.jboss.org/people/mmanski] created the discussion
"Re: Session and thread safety"
To view the discussion, visit: https://community.jboss.org/message/762354#762354
--------------------------------------------------------------
Hi,
I use JBPM 5.3.0.Final in my project. My application uses EJB 3.1/JPA 2.0 and runs on JBoss 7.1.1.Final. I have similar problem with thread safety.
When I use one session for whole application, strange exceptions are thrown (e.g. "javax.persistence.PersistenceException: error during managed flush ... caused by: org.hibernate.AssertionFailure: collection [null] was not processed by flush()", "javax.persistence.PersistenceException: error during managed flush ... Caused by: java.util.ConcurrentModificationException" or "org.hibernate.HibernateException: Found two representations of same collection: org.jbpm.persistence.processinstance.ProcessInstanceInfo.eventTypes") if many users use the application simultaneously. I tried to use the ProcessPersistenceContextManager presented by Sebastian, but it didn't resolve the problem - errors still appear.
When I try to user another solution and create new session for every request, I don't know how to dispose sessions. I read in documentation that this method must always be called after finishing using the session, or the engine will not free the memory used by the session. However, I don't know how to correctly dispose a session.
If I try to dispose session before end of transaction, an exception is thrown during committing transaction: "javax.persistence.PersistenceException: error during managed flush ... Caused by: java.lang.IllegalStateException: Illegal method call. This session was previously disposed".
On the other hand, if i dispose session after transaction commits, another exception is thrown: "Could not commit session: javax.persistence.TransactionRequiredException: No active JTA transaction on joinTransaction call".
Does anyone know what is the correct way to dispose a session?
--------------------------------------------------------------
Reply to this message by going to Community
[https://community.jboss.org/message/762354#762354]
Start a new discussion in jBPM at Community
[https://community.jboss.org/choose-container!input.jspa?contentType=1&con...]
13 years, 5 months