[jBPM Users] - [JBPM 4.1] Installation in JBoss 4.2.1 (or EAP 4.3)
by redlumxn
Hi,
I haven't been able to install JBPM 4.1 on Jboss 4.2.1. Previously I was able to install JBPM 4.0 by following the instructions (by pantcaser) posted on this forum:
http://www.jboss.org/index.html?module=bb&op=viewtopic&t=157617
I followed the same steps to install JBPM 4.1, but during Jboss startup I get the error below (only relevant bits). As you can see the JbpmDS is loaded AFTER the JBPM Mbeans:
| 23:59:15,658 INFO [JBPMService]
| 23:59:15,658 INFO [JBPMService]
| 23:59:15,658 INFO [JBPMService] ProcessEngine bound to: java:/ProcessEngine
| 23:59:15,741 INFO [Environment] Hibernate 3.2.4.sp1
| 23:59:15,745 INFO [Environment] hibernate.properties not found
| 23:59:15,747 INFO [Environment] Bytecode provider name : javassist
| 23:59:15,754 INFO [Environment] using JDK 1.4 java.sql.Timestamp handling
| 23:59:15,834 INFO [Configuration] configuring from resource: jbpm.hibernate.cfg.xml
| 23:59:15,835 INFO [Configuration] Configuration resource: jbpm.hibernate.cfg.xml
| 23:59:15,900 INFO [Configuration] Reading mappings from resource : jbpm.repository.hbm.xml
| 23:59:16,056 INFO [HbmBinder] Mapping class: org.jbpm.pvm.internal.repository.DeploymentImpl -> JBPM4_DEPLOYMENT
| 23:59:16,148 INFO [HbmBinder] Mapping class: org.jbpm.pvm.internal.repository.DeploymentProperty -> JBPM4_DEPLOYPROP
| ...
| ...
| ...
| 23:59:16,869 INFO [NamingHelper] JNDI InitialContext properties:{}
| 23:59:16,876 FATAL [DatasourceConnectionProvider] Could not find datasource: java:JbpmDS
| javax.naming.NameNotFoundException: JbpmDS not bound
| at org.jnp.server.NamingServer.getBinding(NamingServer.java:529)
| at org.jnp.server.NamingServer.getBinding(NamingServer.java:537)
| at org.jnp.server.NamingServer.getObject(NamingServer.java:543)
| at org.jnp.server.NamingServer.lookup(NamingServer.java:296)
| at org.jnp.interfaces.NamingContext.lookup(NamingContext.java:627)
| at org.jnp.interfaces.NamingContext.lookup(NamingContext.java:589)
| at javax.naming.InitialContext.lookup(InitialContext.java:392)
| at org.hibernate.connection.DatasourceConnectionProvider.configure(DatasourceConnectionProvider.java:52)
| at org.hibernate.connection.ConnectionProviderFactory.newConnectionProvider(ConnectionProviderFactory.java:124)
| at org.hibernate.connection.ConnectionProviderFactory.newConnectionProvider(ConnectionProviderFactory.java:56)
| at org.hibernate.cfg.SettingsFactory.createConnectionProvider(SettingsFactory.java:414)
| at org.hibernate.cfg.SettingsFactory.buildSettings(SettingsFactory.java:62)
| at org.hibernate.cfg.Configuration.buildSettings(Configuration.java:2009)
| at org.hibernate.cfg.Configuration.buildSessionFactory(Configuration.java:1292)
| at org.jbpm.pvm.internal.wire.descriptor.HibernateSessionFactoryDescriptor.construct(HibernateSessionFactoryDescriptor.java:64)
| at org.jbpm.pvm.internal.wire.WireContext.construct(WireContext.java:473)
| at org.jbpm.pvm.internal.wire.WireContext.create(WireContext.java:452)
| at org.jbpm.pvm.internal.wire.WireContext.create(WireContext.java:441)
| at org.jbpm.pvm.internal.wire.WireContext.get(WireContext.java:421)
| at org.jbpm.pvm.internal.wire.WireContext.get(WireContext.java:331)
| at org.jbpm.pvm.internal.wire.WireContext.get(WireContext.java:707)
| at org.jbpm.pvm.internal.env.BasicEnvironment.get(BasicEnvironment.java:139
| )
| ...
| ...
| ...
| 23:59:20,843 INFO [ConnectionFactoryBindingService] Bound ConnectionManager 'jboss.jca:service=DataSourceBinding,name=JbpmDS' to JNDI name 'java:JbpmDS'
|
|
I then tried to specify dependencies to the DataSourceBinding (in server/default/deploy/jbpm/jbpm-service.sar/jbpm-service.beans/META-INF/jboss-beans.xml).
| <bean name="org.jbpm:service=ProcessEngine"
| class="org.jbpm.integration.spi.JBPMService">
| <property name="serverConfig">
| <inject bean="org.jbpm:service=ServerConfig"/>
| </property>
| <!-- THIS -->
| <property name="dataSource">
| <inject bean="jboss.jca:service=DataSourceBinding,name=JbpmDS"/>
| </property>
| <!-- OR THIS-->
| <depends optional-attribute-name="DataSource">jboss.jca:service=DataSourceBinding,name=JbpmDS</depends>
| </bean>
|
I get the exception below. As you can see the JbpmDS gets loaded after and the ProcessEngine mbean fails to deploy.
| ...
| ...
| ...
| 00:24:55,210 WARN [ServiceController] Problem starting service jboss.beans:service=JBossBeanDeployment,name='jbpm-service.sar#jbpm-service.beans'
| org.jboss.deployment.DeploymentException: Cannot start AbstractKernelDeployment@6ca02839{name=file:/jboss/jbpm-4.1/jboss-4.2.1.GA/server/default/deploy/jbpm/jbpm-service.sar/jbpm-service.beans/META-INF/jboss-beans.xml installed=true beans=[AbstractBeanMetaData@6b0ede6{name=org.jbpm:service=KernelLocator bean=org.jbpm.integration.util.KernelLocator properties=[kernel] constructor=null}, AbstractBeanMetaData@49d29a78{name=org.jbpm:service=ProcessEngine bean=org.jbpm.integration.spi.JBPMService properties=[serverConfig] constructor=null demands=[jboss.jca:service=DataSourceBinding,name=JbpmDS]}, AbstractBeanMetaData@219b6225{name=org.jbpm:service=ServerConfig bean=org.jbpm.integration.jboss4.mgmt.ServerConfig properties=[webServiceHost] constructor=null}]}; - nested throwable: (java.lang.IllegalStateException: Incompletely deployed:
|
| *** DEPLOYMENTS MISSING DEPENDENCIES:
| org.jbpm:service=ProcessEngine -> org.jbpm:service=ServerConfig{Configured:Installed}, jboss.jca:service=DataSourceBinding,name=JbpmDS{Create:NOT FOUND}, jboss.jca:service=DataSourceBinding,name=JbpmDS{Start:NOT FOUND}
| )
| ...
| ...
| ...
| 00:24:59,127 INFO [UILServerILService] JBossMQ UIL service available at : /127.0.0.1:8093
| 00:24:59,159 INFO [DLQ] Bound to JNDI name: queue/DLQ
| 00:24:59,253 INFO [ConnectionFactoryBindingService] Bound ConnectionManager 'jboss.jca:service=DataSourceBinding,name=JbpmDS' to JNDI name 'java:JbpmDS'
|
I've been stuck with these for hours. Any body has any clue why this is happening? Any help would be very appreciated!
Regards
View the original post : http://www.jboss.org/index.html?module=bb&op=viewtopic&p=4253352#4253352
Reply to the post : http://www.jboss.org/index.html?module=bb&op=posting&mode=reply&p=4253352
16 years, 7 months
[jBPM Users] - Re: Creating non technical Actions / WorkItems
by barteljan
"kukeltje" wrote :
| Sorry, but I have no knowledge of how drools workitems are configured/created/used in their 'GPD'
|
No problem ;)
A workItem in drools is in short an extension of their traditional workflow.
They use a simple configuration file to make this extension aware to their GPD ("RuleFlow-Editor") and define some eyecandy-stuff like an icon, which is shown by the editor, a view class which is shown when editing the workItem , possible parameters for the workItem etc.
The workItem itself is represented by a special xml-tag.
A simple process-xml definition would look like that:
<?xml version="1.0" encoding="UTF-8"?>
| <process ....>
| <header>....</header>
| <nodes>
| <start id="1" name="Start"/>
|
| <end id="2" name="End" />
|
| <workItem id="3" name="Start">
|
| <work name="SystemMessage" >
|
| <parameter name="Message" >
| <type name= .... />
| <value>DemoProzess mit Datei gestartet </value>
| </parameter>
|
| </work>
|
| </workItem>
| </nodes>
|
| <connections>
| <connection from="3" to="2" />
| <connection from="1" to="3" />
| </connections>
|
| </process>
This results in a procedure to integrate customized node types which can configured with
nontechnical domain knowledge into the editor and the definition language in approximatly 30 minutes.
"kukeltje" wrote :
| (Drools 'workflow' is not something that is supported by JBoss), so
|
Yes I suppose it would have been an better solution to define well defined interfaces between drools
and Jbpm than creating a new Wokrflow-Engine(which is a bit of overburden for the most use cases) ....
But who cares ;-).
"kukeltje" wrote :
| You are right in looking at the pvm documentation for extending jPDL 4.
| Adding new element types is possible this way but indeed not by 'mapping' them to an existing common node type by using
| e.g. an attribute value instead of an element name. Might be an interesting addition though.
|
I suppose the easiest way to achieve such a behaviour would be to change an editor in a way to map from user "workItems"
to existing jpdl-components, because it would be downwards compatible and doesn't require a change in the engine itself.
"kukeltje" wrote :
| Aamof, the BPMN2 implementation on top of the pvm could use something like this as well.
|
I don't know Aamof. What we need is a stable and extendable engine ....
But having a BPMN2 compatible engine sounds great.
Where can I read about it ?
Is there still a stable version ?
"kukeltje" wrote :
| The editor is a different story. With new (user defined) element names it is harder to extend than the runtime engine, but not completely impossible.
| Using attributes would make it a little easier.
|
The editorpart is the most important for our use-case because of our "stupid" process-architects :-P.
Which editor would you prefer (GPD or Signavio), I suppose Signavio would be the "state-of-art" solution,
but the most important factor should be how easy the implemantation of such a feature is.
"kukeltje" wrote :
| With regard to your 40 days, I think it is very well possible to extend the existing jPDL (maybe even the pvm)
| and the GPD to support large parts of this (contributions always welcome, with 'support' from our side in return ;-) )
| If you want to go this way, discussing this in the dev forum is a good thing to do.
|
That sounds very good ;), I will post a topic in the developer forum summarizing the task, but it can last until tomorrow, I need some time for summarizing the task in my head :-P.
CU Jan
P.S. I would hope to invest less than 40 days but that's the max. which I can provide....
View the original post : http://www.jboss.org/index.html?module=bb&op=viewtopic&p=4253337#4253337
Reply to the post : http://www.jboss.org/index.html?module=bb&op=posting&mode=reply&p=4253337
16 years, 7 months
[jBPM Users] - Re: jBPM4 - Remote Service interface
by JimDwyer
OK. Will look at running jBPM3 and jBPM4 on Tomcat. That might solve some other issues.
My fear of running two ProcessEngines is that one of them is really the main ProcessEngine the other is secondary. The main ProcessEngine would deal with all external comms, and be the central point of contact. I can see, an have too often in my 20 years or so doing this, somebody coming along in 6 months and using the secondary ProcessEngine as the main engine and totally wrecking any architecture that was set up. I realize that this is a management issue but if you don't introduce the second ProcessEngine the problem can't arise. This is one way to manage complexity. I like to keep it simple. One ProcessEngine is enough for our needs. With that said I am still going to look at using two engines because the API is better.
View the original post : http://www.jboss.org/index.html?module=bb&op=viewtopic&p=4253332#4253332
Reply to the post : http://www.jboss.org/index.html?module=bb&op=posting&mode=reply&p=4253332
16 years, 7 months
[jBPM Users] - Re: Creating non technical Actions / WorkItems
by koen.aers@jboss.com
"Ronald" wrote : The editor is a different story. With new (user defined) element names it is harder to extend than the runtime engine, but not completely impossible. Using attributes would make it a little easier.
|
| With regard to your 40 days, I think it is very well possible to extend the existing jPDL (maybe even the pvm) and the GPD to support large parts of this (contributions always welcome, with 'support' from our side in return ;-) ) If you want to go this way, discussing this in the dev forum is a good thing to do.
At the moment the editor is not yet easily extendable in this way. Hence also the fact that you did not find a lot of documentation about it. We have focused on other priorities than extensibility but most of the pieces to do this are present. I would need to define a few more extension points (or add options to existing extension points) and clean up the code a little bit. There is a JIRA issue available already (GPD-292) so we can continue the discussion there as well.
In any case, 40 development days seems more then enough to me to pull this off. The final goal is to be able to do this in a couple of hours of development time at the most.
Regards,
Koen
View the original post : http://www.jboss.org/index.html?module=bb&op=viewtopic&p=4253316#4253316
Reply to the post : http://www.jboss.org/index.html?module=bb&op=posting&mode=reply&p=4253316
16 years, 7 months
[jBPM Users] - Re: Handling failure of automated activities
by kukeltje
"emp.tyres" wrote : Thanks for the replies -
|
| "kukeltje" wrote : 1: Exception handling like in jBPM 3 is still on the todo list (look in Jira).
|
| Actually, I was more trying to understand what options are there to recover the process after an UNhandled exception - assuming a job fails due to an automatic action throwing an exception, what state will it end in, and how can we recover it (change the offending variable, restart the failed activity, etc.)? I understand this is not trivial, but it is still very important for us as we are orchestrating a large number of systems on a critical process.
|
That is precisely what the jBPM 3 exceptionhandler was (partly) for. Doing 'some things', restarting the activity not being one of them, but if you use async for this, the job is rolled back and retried. Normally, 'changing the offending variable' would /could be done in an adition actionhandler e.g. on the transition that is taken in case of an error. The error has to be caught then in the actionhandler and the 'error transition' name has to be returned.
"emp.tyres" wrote :
| "kukeltje" wrote : For technical retries to external systems etc, I do not think jBPM should reinvent (reimplement) the wheel (like they are doing in drools with reinventing workflow) but leverage what is already there, JBoss ESB or JMS or your custom code/custom node. For business level retries, what you describe is an option. Might require a custom node though.
|
| Agreed - I am a bit worried at implementing a wait / loop / wait / loop custom node, though (e.g: is now after given date? if so, proceed, alse thread.sleep(10000) and then re-enter activity through self-looping transaction) - I tried it and it technically works, but does it risk hanging the whole PVM?
|
Yes as it can result in thread starvation
"emp.tyres" wrote :
| And would it behave correctly with persistence assuming e.g. JBoss is restarted? [I can provide the code if you think it could be useful for a test case]
| Not fullly, because it might be in a transaction and you could have had multiple retries already that get lost.
"emp.tyres" wrote :
| [BTW, this was triggered by "duedatetime" in timers throwing a org.jbpm.api.JbpmException: no 'jbpm.duedatetime.format' in current environment, adding the string to the jbpm.cfg.xml does not solve it - I could not find any JIRA for it - anyone had any success in using duedatetime?]
In 4? I myself not, but I've seen posts in the forum of people that have successfully used it.
View the original post : http://www.jboss.org/index.html?module=bb&op=viewtopic&p=4253302#4253302
Reply to the post : http://www.jboss.org/index.html?module=bb&op=posting&mode=reply&p=4253302
16 years, 7 months
[jBPM Users] - Re: Creating non technical Actions / WorkItems
by kukeltje
Sorry, but I have no knowledge of how drools workitems are configured/created/used in their 'GPD' etc (Drools 'workflow' is not something that is supported by JBoss), so
But besides this, I'm not completely sure what you mean by
anonymous wrote : I did a quick scan about the pvm-documentation but I realized that XML-Processing is made by each implementing api, which implicates that this document didn't help me to map such nodes to a common type ....
so if my comment below is not related, please shoot :-)
You are right in looking at the pvm documentation for extending jPDL 4. Adding new element types is possible this way but indeed not by 'mapping' them to an existing common node type by using e.g. an attribute value instead of an element name. Might be an interesting addition though. Aamof, the BPMN2 implementation on top of the pvm could use something like this as well.
The editor is a different story. With new (user defined) element names it is harder to extend than the runtime engine, but not completely impossible. Using attributes would make it a little easier.
With regard to your 40 days, I think it is very well possible to extend the existing jPDL (maybe even the pvm) and the GPD to support large parts of this (contributions always welcome, with 'support' from our side in return ;-) ) If you want to go this way, discussing this in the dev forum is a good thing to do.
View the original post : http://www.jboss.org/index.html?module=bb&op=viewtopic&p=4253296#4253296
Reply to the post : http://www.jboss.org/index.html?module=bb&op=posting&mode=reply&p=4253296
16 years, 7 months
[jBPM Users] - jbpm 4.1 and struts - architeture solution
by Josh86
Hi everybody,
i intend to combine jbpm 4.1 with struts (and spring). I think, that is in itself a good thing.
But now i think about how to integrate human tasks inside my web application. The problem is, that for a special human task type, which is defined in the jpdl file, a special page with information on it should be shown, when the user has selected one task from her/his task list page and want to complete this task.
Maybe i could define the following page in the tasklist jsp, but for many different task types, it would be very confusing and in case a new task is defined in the jpdl file, this jsp have to be changed,
I have heard of freemarker templates, but is this possible to integrate with struts?
i hope you get my problem and can help me to find a good expandable architeture solution for this (or an example would be nice ;))
Thanks for your answers,
Josh
View the original post : http://www.jboss.org/index.html?module=bb&op=viewtopic&p=4253286#4253286
Reply to the post : http://www.jboss.org/index.html?module=bb&op=posting&mode=reply&p=4253286
16 years, 7 months