[JBoss-user] [JBoss jBPM] - Re: Task assignment handler not being called second time thr
Thanks for the information and the workaround. I think it's unintuitive behavior at best. Ian View the original post : http://www.jboss.com/index.html?module=bb&op=viewtopic&p=3925906#3925906 Reply to the post : http://www.jboss.com/index.html?module=bb&op=posting&mode=reply&p=3925906 --- This SF.Net email is sponsored by xPML, a groundbreaking scripting language that extends applications into web and mobile media. Attend the live webcast and join the prime developer group breaking into this new coding territory! http://sel.as-us.falkag.net/sel?cmd=lnk&kid=110944&bid=241720&dat=121642 ___ JBoss-user mailing list JBoss-user@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/jboss-user
[JBoss-user] [JBoss jBPM] - Re: Task assignment handler not being called second time thr
I'm using 3.1. It strikes me that if an action is used for task assignment, it should call the action every time. What if a process instance runs for a long time (mine will run for at least 3 or 4 months) and the task actors should be set based on information that could be modified by the application? Ian View the original post : http://www.jboss.com/index.html?module=bb&op=viewtopic&p=3925887#3925887 Reply to the post : http://www.jboss.com/index.html?module=bb&op=posting&mode=reply&p=3925887 --- This SF.Net email is sponsored by xPML, a groundbreaking scripting language that extends applications into web and mobile media. Attend the live webcast and join the prime developer group breaking into this new coding territory! http://sel.as-us.falkag.net/sel?cmd=lnk&kid=110944&bid=241720&dat=121642 ___ JBoss-user mailing list JBoss-user@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/jboss-user
[JBoss-user] [JBoss jBPM] - Task assignment handler not being called second time through
I have a process with a task in a loop, and although the assignment handler gets called the first time, it doesn't get called any subsequent times. Here's an example process that shows the behavior: | | | | | | | | | | | | | | | | | | | Here's my assignment handler: | public void assign(Assignable ass, ExecutionContext ctx) throws Exception { | log.debug(""); | log.debug("Assigning to Ian"); | log.debug(""); | ass.setActorId("ian"); | } | Here's my log for leaving the start state: | 2006-02-23 09:58:42,375 DEBUG [org.jbpm.configuration.JbpmContextInfo] creating jbpm context with service factories '[message, scheduler, logging, persistence, authentication]' | 2006-02-23 09:58:42,375 DEBUG [org.jbpm.JbpmContext] creating JbpmContext | 2006-02-23 09:58:42,375 DEBUG [org.jbpm.persistence.db.DbPersistenceServiceFactory] creating persistence service | 2006-02-23 09:58:42,375 DEBUG [org.jbpm.persistence.db.DbPersistenceService] creating hibernate session | 2006-02-23 09:58:42,375 DEBUG [org.jbpm.persistence.db.DbPersistenceService] beginning hibernate transaction | 2006-02-23 09:58:42,406 DEBUG [org.jbpm.graph.def.GraphElement] event 'before-signal' on 'StartState(start)' for 'Token(/)' | 2006-02-23 09:58:42,421 WARN [org.hibernate.engine.StatefulPersistenceContext] Narrowing proxy to class org.jbpm.graph.node.StartState - this operation breaks == | 2006-02-23 09:58:42,421 DEBUG [org.jbpm.graph.def.GraphElement] event 'node-leave' on 'StartState(start)' for 'Token(/)' | 2006-02-23 09:58:42,421 DEBUG [org.jbpm.graph.def.GraphElement] event 'transition' on 'Transition(go)' for 'Token(/)' | 2006-02-23 09:58:42,421 DEBUG [org.jbpm.graph.def.GraphElement] event 'node-enter' on 'TaskNode(mytask)' for 'Token(/)' | 2006-02-23 09:58:42,421 WARN [org.hibernate.engine.StatefulPersistenceContext] Narrowing proxy to class org.jbpm.graph.node.TaskNode - this operation breaks == | 2006-02-23 09:58:42,921 DEBUG [org.jbpm.graph.def.GraphElement] event 'task-create' on 'Task(myTask)' for 'Token(/)' | 2006-02-23 09:58:42,953 DEBUG [long] | 2006-02-23 09:58:42,953 DEBUG [long] Assigning to Ian | 2006-02-23 09:58:42,953 DEBUG [long] | 2006-02-23 09:58:42,953 DEBUG [org.jbpm.graph.def.GraphElement] event 'task-assign' on 'Task(myTask)' for 'Token(/)' | 2006-02-23 09:58:42,953 DEBUG [org.jbpm.graph.def.GraphElement] event 'after-signal' on 'StartState(start)' for 'Token(/)' | 2006-02-23 09:58:42,953 DEBUG [org.jbpm.svc.Services] executing default save operations | 2006-02-23 09:58:42,953 DEBUG [org.jbpm.svc.save.HibernateSaveOperation] saving process instance | 2006-02-23 09:58:42,953 DEBUG [org.jbpm.svc.save.SaveLogsOperation] flushing logs to logging service. | 2006-02-23 09:58:42,953 DEBUG [org.jbpm.svc.save.CascadeSaveOperation] cascading save of '[EMAIL PROTECTED]' | 2006-02-23 09:58:42,984 DEBUG [org.jbpm.JbpmContext] closing JbpmContext | 2006-02-23 09:58:42,984 DEBUG [org.jbpm.svc.Services] closing service 'persistence': [EMAIL PROTECTED] | 2006-02-23 09:58:42,984 DEBUG [org.jbpm.persistence.db.DbPersistenceService] committing hibernate transaction | 2006-02-23 09:58:43,171 DEBUG [org.jbpm.persistence.db.DbPersistenceService] closing hibernate session | 2006-02-23 09:58:43,187 DEBUG [org.jbpm.svc.Services] closing service 'logging': [EMAIL PROTECTED] | It enters the task node and correctly calls the swimlane's assignment handler. Here I end the task with a transition to "wait:" | 2006-02-23 09:59:08,656 DEBUG [org.jbpm.configuration.JbpmContextInfo] creating jbpm context with service factories '[message, scheduler, logging, persistence, authentication]' | 2006-02-23 09:59:08,656 DEBUG [org.jbpm.JbpmContext] creating JbpmContext | 2006-02-23 09:59:08,656 DEBUG [org.jbpm.persistence.db.DbPersistenceServiceFactory] creating persistence service | 2006-02-23 09:59:08,656 DEBUG [org.jbpm.persistence.db.DbPersistenceService] creating hibernate session | 2006-02-23 09:59:08,656 DEBUG [org.jbpm.persistence.db.DbPersistenceService] beginning hibernate transaction | 2006-02-23 09:59:08,781 DEBUG [org.jbpm.graph.def.GraphElement] event 'task-end' on 'Task(myTask)' for 'Token(/)' | 2006-02-23 09:59:08,796 DEBUG [org.jbpm.taskmgmt.exe.TaskInstance] completion of task 'myTask' results in taking transition 'Transition(again)' | 2006-02-23 09:59:08,796 DEBUG [org.jbpm.graph.def.GraphElement] event 'before-signal' on 'TaskNode(mytask)' for 'Token(/)' | 2006-02-23 09:59:08,796 DEBUG [org.jbpm.graph.def.GraphElement] event 'node-leave' on 'TaskNode(mytask)' for 'Token(/)' | 2006-02-23 09:59:08,796 DEBUG [org.jbpm.
[JBoss-user] [JBoss jBPM] - Re: SubProcessInstance(s) returns null
Shriram, I am successfully using both multiple subprocesses AND .getSubProcessInstance(), so I doubt that's the issue. Are the SubProcessInstanceIDs getting set in the database? Look at the values manually to tell. If they are null, make sure that you are saving the process instances you create and you are correctly closing the jbpmContext. Please post your process definition and java code if you need more help and I'll take a look at it. Ian View the original post : http://www.jboss.com/index.html?module=bb&op=viewtopic&p=3925651#3925651 Reply to the post : http://www.jboss.com/index.html?module=bb&op=posting&mode=reply&p=3925651 --- This SF.net email is sponsored by: Splunk Inc. Do you grep through log files for problems? Stop! Download the new AJAX search engine that makes searching your log files as easy as surfing the web. DOWNLOAD SPLUNK! http://sel.as-us.falkag.net/sel?cmd=lnk&kid=103432&bid=230486&dat=121642 ___ JBoss-user mailing list JBoss-user@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/jboss-user
[JBoss-user] [JBoss jBPM] - Re: How are timers executed in 3.1?
Haha. My oh my. It has been one long week. One of my co-developer's was running an instance of our app against the same database. /His/ instance of my scheduler was executing the timers. Wow. I'm so optimistic that my first hope was magic. :) Ian View the original post : http://www.jboss.com/index.html?module=bb&op=viewtopic&p=3924451#3924451 Reply to the post : http://www.jboss.com/index.html?module=bb&op=posting&mode=reply&p=3924451 --- This SF.net email is sponsored by: Splunk Inc. Do you grep through log files for problems? Stop! Download the new AJAX search engine that makes searching your log files as easy as surfing the web. DOWNLOAD SPLUNK! http://sel.as-us.falkag.net/sel?cmd=lnk&kid=103432&bid=230486&dat=121642 ___ JBoss-user mailing list JBoss-user@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/jboss-user
[JBoss-user] [JBoss jBPM] - Re: How are timers executed in 3.1?
And one more follow up question: Does that make external schedulers unnecessary? Mine just seems to annoy me with log statements every 5 seconds. :) View the original post : http://www.jboss.com/index.html?module=bb&op=viewtopic&p=3924449#3924449 Reply to the post : http://www.jboss.com/index.html?module=bb&op=posting&mode=reply&p=3924449 --- This SF.net email is sponsored by: Splunk Inc. Do you grep through log files for problems? Stop! Download the new AJAX search engine that makes searching your log files as easy as surfing the web. DOWNLOAD SPLUNK! http://sel.as-us.falkag.net/sel?cmd=lnk&kid=103432&bid=230486&dat=121642 ___ JBoss-user mailing list JBoss-user@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/jboss-user
[JBoss-user] [JBoss jBPM] - How are timers executed in 3.1?
I just migrated my code from 3.0.2 to 3.1, and umm, I've noticed something strange with the scheduler that I was using previously to execute timers. It finds the timers, but then doesn't execute them. Instead, they just disappear. Now, I've checked the database; they're working properly. Do timers now execute themselves? What's going on? And, more importantly: where are my log statements in my actions going? My server.log is mysteriously absent of them. Thanks, Ian View the original post : http://www.jboss.com/index.html?module=bb&op=viewtopic&p=3924448#3924448 Reply to the post : http://www.jboss.com/index.html?module=bb&op=posting&mode=reply&p=3924448 --- This SF.net email is sponsored by: Splunk Inc. Do you grep through log files for problems? Stop! Download the new AJAX search engine that makes searching your log files as easy as surfing the web. DOWNLOAD SPLUNK! http://sel.as-us.falkag.net/sel?cmd=lnk&kid=103432&bid=230486&dat=121642 ___ JBoss-user mailing list JBoss-user@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/jboss-user
[JBoss-user] [JBoss jBPM] - Re: Timer Scheduler in Distributed JBoss Environment
I'm more than willing to give back by contributing this solution; just gotta test it a bit more and see if I can't make it a little more robust. :) Ian View the original post : http://www.jboss.com/index.html?module=bb&op=viewtopic&p=3924442#3924442 Reply to the post : http://www.jboss.com/index.html?module=bb&op=posting&mode=reply&p=3924442 --- This SF.net email is sponsored by: Splunk Inc. Do you grep through log files for problems? Stop! Download the new AJAX search engine that makes searching your log files as easy as surfing the web. DOWNLOAD SPLUNK! http://sel.as-us.falkag.net/sel?cmd=lnk&kid=103432&bid=230486&dat=121642 ___ JBoss-user mailing list JBoss-user@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/jboss-user
[JBoss-user] [JBoss jBPM] - Timer Scheduler in Distributed JBoss Environment
Can anyone give any recommendations on the best sort of scheduler to use in a distributed JBoss environment? Right now I have a custom-made SLSB that mimics the behavior of org.jbpm.scheduler.impl.SchedulerServlet using javax.ejb.Timer's. Can anyone offer any insight on this approach (any pitfalls?), or other approaches? Thanks much in advance; I know this must be a fairly common environment for jBPM projects. Ian View the original post : http://www.jboss.com/index.html?module=bb&op=viewtopic&p=3924354#3924354 Reply to the post : http://www.jboss.com/index.html?module=bb&op=posting&mode=reply&p=3924354 --- This SF.net email is sponsored by: Splunk Inc. Do you grep through log files for problems? Stop! Download the new AJAX search engine that makes searching your log files as easy as surfing the web. DOWNLOAD SPLUNK! http://sel.as-us.falkag.net/sel?cmd=lnk&kid=103432&bid=230486&dat=121642 ___ JBoss-user mailing list JBoss-user@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/jboss-user
[JBoss-user] [JBoss jBPM] - Re: Timer to node to timer trouble
Koen, 3.1 seems to solve this problem. Thanks! Ian View the original post : http://www.jboss.com/index.html?module=bb&op=viewtopic&p=3923948#3923948 Reply to the post : http://www.jboss.com/index.html?module=bb&op=posting&mode=reply&p=3923948 --- This SF.net email is sponsored by: Splunk Inc. Do you grep through log files for problems? Stop! Download the new AJAX search engine that makes searching your log files as easy as surfing the web. DOWNLOAD SPLUNK! http://sel.as-us.falkag.net/sel?cmd=lnk&kid=103432&bid=230486&dat=121642 ___ JBoss-user mailing list JBoss-user@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/jboss-user
[JBoss-user] [JBoss jBPM] - Re: Problems using jBPM from JBoss
Koen, Thanks for your response. Also, I apologize, I'm usually much better at posting symptoms of problems. I migrated to 3.1 to try to correct issues I was having with 3.0.2, and it was on the whole a long and frustrating day. :) In the course of getting the information together for this reply I found the cause of the main migration issue I was having (as is often the case, I know). The first symptom was that when deploying the process definition it would not be completely saved to the database, as such with the NULL start state: | mysql> select * from jbpm_processdefinition; | +-+-+--++-+ | | ID_ | NAME_ | VERSION_ | ISTERMINATIONIMPLICIT_ | STARTSTATE_ | | +-+-+--++-+ | | 2 | Simple Test |1 ||NULL | | +-+-+--++-+ | The cause of the issue was that I mis-upgraded my JbpmContext (formerly JbpmSession) interceptor I was not actually closing the jbpmContext. That has since been fixed, and I'll now move on to testing the issues this whole migration was hoped to fix. :) Thanks again, Ian View the original post : http://www.jboss.com/index.html?module=bb&op=viewtopic&p=3923934#3923934 Reply to the post : http://www.jboss.com/index.html?module=bb&op=posting&mode=reply&p=3923934 --- This SF.net email is sponsored by: Splunk Inc. Do you grep through log files for problems? Stop! Download the new AJAX search engine that makes searching your log files as easy as surfing the web. DOWNLOAD SPLUNK! http://sel.as-us.falkag.net/sel?cmd=lnk&kid=103432&bid=230486&dat=121642 ___ JBoss-user mailing list JBoss-user@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/jboss-user
[JBoss-user] [JBoss jBPM] - Problems using jBPM from JBoss
I'll be the first to admit, I've had more than a tiny bit of difficulty using jBPM as our workflow solution. I had several issues with timer and subProcessInstance persistence with 3.0.2, so I switched today to 3.1. However, now I'm having some problems I didn't have before, even before I've worked out the ones I did have. :) I listed one problem with process definition deployment here: http://www.jboss.com/index.html?module=bb&op=viewtopic&t=77406 I'm still having problems with persistence: it appears that in the database my tokens have null processInstance_, parent_, and subProcessInstance_ fields, and the ProcessInstance rows have null superProcessToken_ fields. What confuses me is that in my current persistence problems the rows are being saved in the database, but those key parts are missing. I'm trying to use jBPM in a clustered JBoss 4.0.3 environment, and the processes I've designed so far use timers and subprocesses significantly. (Here's a previous post describing some of my timer trouble: http://www.jboss.com/index.html?module=bb&op=viewtopic&t=77192). I've tried to tell jBPM about my transactions with this in hibernate.cfg.xml: org.hibernate.transaction.JTATransactionFactory | org.hibernate.transaction.JBossTransactionManagerLookup | My workflows are all fairly complex (and long), but I've tested them using a web application and they all seem to work. However, going to JBoss seems to introduce a fair amount of trouble. Are there restrictions on what can go on within one transaction? For instance, my application creates a process instance, starts it with a signal(), and according to workflow rules it advances into a subprocess which creates a timer for later automatic advancement, *all* before the session bean returns and the transaction ends. Does that have any effect on persistence? If anyone has any ideas on this, or any information about exactly how and where I should be saving (now via jbpmContext.save()) things, please let me know. Ian View the original post : http://www.jboss.com/index.html?module=bb&op=viewtopic&p=3923775#3923775 Reply to the post : http://www.jboss.com/index.html?module=bb&op=posting&mode=reply&p=3923775 --- This SF.net email is sponsored by: Splunk Inc. Do you grep through log files for problems? Stop! Download the new AJAX search engine that makes searching your log files as easy as surfing the web. DOWNLOAD SPLUNK! http://sel.as-us.falkag.net/sel?cmd=lnk&kid=103432&bid=230486&dat=121642 ___ JBoss-user mailing list JBoss-user@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/jboss-user
[JBoss-user] [JBoss jBPM] - Problem deploying process definition from slsb
In the process of migrating my code and processes from 3.0.2 to 3.1, I've encountered the following issue: When deploying the following process | | | | | | | from a stateless session bean (with pd = parseXMLString(...); jbpmContext.deployProcessDefinition(pd)) I get the following log statement | 2006-02-14 17:49:06,667 DEBUG [org.jbpm.graph.node.NodeTypes] node 'page' will not be available. class 'org.jboss.seam.jbpm.Page' couldn't be loaded | and I notice that the DB entry in jbpm_processdefinition has startstate_ = null, despite the jbpm_processdefinition entry existing and the jbpm_node entries existing. Now, this is a little confusing to me since I'm not using Seam and I have no node named "page." :) When I deploy directly from a servlet I don't get these issues. Anyone have any idea what's going on? Ian View the original post : http://www.jboss.com/index.html?module=bb&op=viewtopic&p=3923759#3923759 Reply to the post : http://www.jboss.com/index.html?module=bb&op=posting&mode=reply&p=3923759 --- This SF.net email is sponsored by: Splunk Inc. Do you grep through log files for problems? Stop! Download the new AJAX search engine that makes searching your log files as easy as surfing the web. DOWNLOAD SPLUNK! http://sel.as-us.falkag.net/sel?cmd=lnk&kid=103432&bid=230486&dat=121642 ___ JBoss-user mailing list JBoss-user@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/jboss-user
[JBoss-user] [JBoss jBPM] - Re: jBPM 3.1 Decision Node Example Code
http://jira.jboss.com/jira/browse/JBPM-559 View the original post : http://www.jboss.com/index.html?module=bb&op=viewtopic&p=3923736#3923736 Reply to the post : http://www.jboss.com/index.html?module=bb&op=posting&mode=reply&p=3923736 --- This SF.net email is sponsored by: Splunk Inc. Do you grep through log files for problems? Stop! Download the new AJAX search engine that makes searching your log files as easy as surfing the web. DOWNLOAD SPLUNK! http://sel.as-us.falkag.net/sel?cmd=lnk&kid=103432&bid=230486&dat=121642 ___ JBoss-user mailing list JBoss-user@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/jboss-user
[JBoss-user] [JBoss jBPM] - Re: jBPM 3.1 Decision Node Example Code
Haha. Further experimentation shows me what I can only assume must be a bug in the interpretation of whitespace. The following revision to the test process works as expected: | | | | | | | | | | | | | | | | | | | | | | | | | However, if you have even one space, it won't evaluate the conditions. For instance, the following process always goes to n1. | | | | | | | | | | | | | | | | | | | | | | | | | Uh oh. :) View the original post : http://www.jboss.com/index.html?module=bb&op=viewtopic&p=3923734#3923734 Reply to the post : http://www.jboss.com/index.html?module=bb&op=posting&mode=reply&p=3923734 --- This SF.net email is sponsored by: Splunk Inc. Do you grep through log files for problems? Stop! Download the new AJAX search engine that makes searching your log files as easy as surfing the web. DOWNLOAD SPLUNK! http://sel.as-us.falkag.net/sel?cmd=lnk&kid=103432&bid=230486&dat=121642 ___ JBoss-user mailing list JBoss-user@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/jboss-user
[JBoss-user] [JBoss jBPM] - jBPM 3.1 Decision Node Example Code
Is there any example code for a decision node in version 3.1? I'm migrating my code from 3.0.2 and it sounds like that has to change to a JSP-like syntax. Unfortunately, I don't see any relevant code snippets in the user guide, the migration guide, or in src/process.examples. Here's my test process: | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Executing the above code I always go to n1, even when I have set (the Integer) x to 2, or 3. Am I doing something incorrectly with the new expressions? Ian View the original post : http://www.jboss.com/index.html?module=bb&op=viewtopic&p=3923730#3923730 Reply to the post : http://www.jboss.com/index.html?module=bb&op=posting&mode=reply&p=3923730 --- This SF.net email is sponsored by: Splunk Inc. Do you grep through log files for problems? Stop! Download the new AJAX search engine that makes searching your log files as easy as surfing the web. DOWNLOAD SPLUNK! http://sel.as-us.falkag.net/sel?cmd=lnk&kid=103432&bid=230486&dat=121642 ___ JBoss-user mailing list JBoss-user@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/jboss-user
[JBoss-user] [JBoss jBPM] - Re: Timer to node to timer trouble
mennen: I do believe you should post further questions about this in a new thread; your problem appears unrelated to mine. But. I'm not a jBPM expert by any means, but my guess is that since the action DoNothing is associated with the timer in state1, and not directly with the task you define, the method executionContext.getTaskInstance() is returning null. Calling a further method on it (getName()) will throw a null pointer exception. Ian View the original post : http://www.jboss.com/index.html?module=bb&op=viewtopic&p=3923691#3923691 Reply to the post : http://www.jboss.com/index.html?module=bb&op=posting&mode=reply&p=3923691 --- This SF.net email is sponsored by: Splunk Inc. Do you grep through log files for problems? Stop! Download the new AJAX search engine that makes searching your log files as easy as surfing the web. DOWNLOAD SPLUNK! http://sel.as-us.falkag.net/sel?cmd=lnk&kid=103432&bid=230486&dat=121642 ___ JBoss-user mailing list JBoss-user@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/jboss-user
[JBoss-user] [JBoss jBPM] - Re: Timer to node to timer trouble
3.0.2 right now. I may try to migrate my existing code to 3.1 though, to see if I still have trouble there. Ian View the original post : http://www.jboss.com/index.html?module=bb&op=viewtopic&p=3923583#3923583 Reply to the post : http://www.jboss.com/index.html?module=bb&op=posting&mode=reply&p=3923583 --- This SF.net email is sponsored by: Splunk Inc. Do you grep through log files for problems? Stop! Download the new AJAX search engine that makes searching your log files as easy as surfing the web. DOWNLOAD SPLUNK! http://sel.as-us.falkag.net/sel?cmd=lnk&kid=103432&bid=230486&dat=121642 ___ JBoss-user mailing list JBoss-user@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/jboss-user
[JBoss-user] [JBoss jBPM] - Re: subProcessInstance is null
ejimenez: anonymous wrote : Is there something you want to do that you cant accomplish using the subprocess end event? Actually, I think yes. I have a process that uses subprocesses for repetitive tasks like calling someone (with carefully designed business rules for a busy signal, leaving a message, etc). Unfortunately, I also have the requirement that at any given time I must pause the workflow for a user-defined amount of time. The way I've implemented this in my test workflows is to have a hold-state that dynamically creates a timer to leave it. Each larger workflow instance is tied to an entity in our system. So, when they hit "pause" I need to be able to figure out exactly which process they are currently in so that I can pause /that/ subprocess, hence pausing the rest. Otherwise, if I pause the superprocess the subprocess would just get restarted from the beginning upon re-entry. My first approach was, of course, to recursively use .getSubProcessInstance(). I don't have a large urge to write HQL as I like to keep libraries free of customization so that future bugfix releases can be integrated in just by replacing a jar. My guess is that everyone will recommend I migrate my existing code to 3.1, where this is fixed? Ian View the original post : http://www.jboss.com/index.html?module=bb&op=viewtopic&p=3923473#3923473 Reply to the post : http://www.jboss.com/index.html?module=bb&op=posting&mode=reply&p=3923473 --- This SF.net email is sponsored by: Splunk Inc. Do you grep through log files for problems? Stop! Download the new AJAX search engine that makes searching your log files as easy as surfing the web. DOWNLOAD SPLUNK! http://sel.as-us.falkag.net/sel?cmd=lnk&kid=103432&bid=230486&dat=121642 ___ JBoss-user mailing list JBoss-user@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/jboss-user
[JBoss-user] [JBoss jBPM] - Re: Timer to node to timer trouble
Any chance anyone thought about this over the weekend and came up with some great insight? :) View the original post : http://www.jboss.com/index.html?module=bb&op=viewtopic&p=3923335#3923335 Reply to the post : http://www.jboss.com/index.html?module=bb&op=posting&mode=reply&p=3923335 --- This SF.net email is sponsored by: Splunk Inc. Do you grep through log files for problems? Stop! Download the new AJAX search engine that makes searching your log files as easy as surfing the web. DOWNLOAD SPLUNK! http://sel.as-us.falkag.net/sel?cmd=lnk&kid=103432&bid=230486&dat=121642 ___ JBoss-user mailing list JBoss-user@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/jboss-user
[JBoss-user] [JBoss jBPM] - Re: subProcessInstance is null
Thanks for the information, guys. View the original post : http://www.jboss.com/index.html?module=bb&op=viewtopic&p=3923332#3923332 Reply to the post : http://www.jboss.com/index.html?module=bb&op=posting&mode=reply&p=3923332 --- This SF.net email is sponsored by: Splunk Inc. Do you grep through log files for problems? Stop! Download the new AJAX search engine that makes searching your log files as easy as surfing the web. DOWNLOAD SPLUNK! http://sel.as-us.falkag.net/sel?cmd=lnk&kid=103432&bid=230486&dat=121642 ___ JBoss-user mailing list JBoss-user@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/jboss-user
[JBoss-user] [JBoss jBPM] - Timer to node to timer trouble
Ok, here's the situation. I have a process that relies heavily on timers. In fact, the business process looks something like: do something, do something else after 10 days, do something else after 10 more days, etc. Some of the somethings are automated (node), and some are not (tasknode). My specific problem is that I have a node that 1) is entered by a timer, 2) leaves on its own, and 3) enters a node with a timer. Process snippet describing 1 and 3: | | | | | | | | | | | | | Part 2: | public void execute(ExecutionContext ctx) throws Exception { | log.debug("Executing mynode"); | ctx.leaveNode(); | } | Executing it as such creates wait2's timer, but does not save it (as referenced in other threads http://www.jboss.com/index.html?module=bb&op=viewtopic&t=69040). If I take the advice given in that thread and save it explicitly with anything that comes from JbpmSession.getCurrentJbpmSession() then I get a StaleStateException from wait1's timer. For instance, if I do: | public void execute(ExecutionContext ctx) throws Exception { | log.debug("Executing mynode"); | ctx.leaveNode(); | JbpmUtil.saveProcessInstanceFamily(JbpmSession.getCurrentJbpmSession().getGraphSession(),ctx.getProcessInstance()); | } | with JbpmUtil.saveProcessInstanceFamily(): | public static void saveProcessInstanceFamily(GraphSession graphSession, ProcessInstance processInstance) { | // save family: | Token token = processInstance.getRootToken(); | log.debug("saving process instance #" + processInstance.getId()); | graphSession.saveProcessInstance(processInstance); | if (token.hasParent()) { | ProcessInstance pi = token.getParent().getProcessInstance(); | log.debug("saving process instance #" + pi.getId()); | graphSession.saveProcessInstance(pi); | } | ProcessInstance sub = token.getSubProcessInstance(); | if (sub != null) { | log.debug("saving process instance #" + sub.getId()); | graphSession.saveProcessInstance(sub); | } | } | then I get: | 2006-02-10 14:48:34,253 DEBUG [foo.MyActionHandler] Executing mynode | 2006-02-10 14:48:34,269 DEBUG [org.jbpm.graph.def.GraphElement] event 'node-leave' on 'Node(mynode)' for 'Token(/)' | 2006-02-10 14:48:34,269 DEBUG [org.jbpm.graph.def.GraphElement] event 'transition' on 'Transition(1c71a93)' for 'Token(/)' | 2006-02-10 14:48:34,269 DEBUG [org.jbpm.graph.def.GraphElement] event 'node-enter' on 'State(wait2)' for 'Token(/)' | 2006-02-10 14:48:34,284 DEBUG [org.jbpm.graph.def.GraphElement] executing action 'CreateTimerAction(12d12e0)' | 2006-02-10 14:48:34,331 DEBUG [org.jbpm.db.SchedulerSession] saving timer timer(wait2,14:48:54,284) | 2006-02-10 14:48:34,363 DEBUG [org.jbpm.graph.def.GraphElement] event 'after-signal' on 'State(wait1)' for 'Token(/)' | 2006-02-10 14:48:34,363 DEBUG [com.gallium.jas.services.workflow.impl.SchedulerBean] deleting timer 'timer(wait1,14:48:34,000)' | 2006-02-10 14:48:34,394 ERROR [org.hibernate.jdbc.AbstractBatcher] Exception executing batch: | org.hibernate.StaleStateException: Batch update returned unexpected row count from update: 0 actual row count: 0 expected: 1 | Can anyone offer any advice? Ian View the original post : http://www.jboss.com/index.html?module=bb&op=viewtopic&p=3922999#3922999 Reply to the post : http://www.jboss.com/index.html?module=bb&op=posting&mode=reply&p=3922999 --- This SF.net email is sponsored by: Splunk Inc. Do you grep through log files for problems? Stop! Download the new AJAX search engine that makes searching your log files as easy as surfing the web. DOWNLOAD SPLUNK! http://sel.as-us.falkag.net/sel?cmd=lnk&kid=103432&bid=230486&dat=121642 ___ JBoss-user mailing list JBoss-user@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/jboss-user
[JBoss-user] [JBoss jBPM] - Re: cannot jbpmSession.commitTransaction()
Maybe I can try to be at least a little useful then, after that bad advice. ;-) Using JBoss 4.0.3 I have: | hibernate.transaction.factory_class=org.hibernate.transaction.JTATransactionFactory | hibernate.transaction.manager_lookup_class=org.hibernate.transaction.JBossTransactionManagerLookup | in my jbpm.hibernate.properties file, so as to not have to edit the hibernate xml config. View the original post : http://www.jboss.com/index.html?module=bb&op=viewtopic&p=3922623#3922623 Reply to the post : http://www.jboss.com/index.html?module=bb&op=posting&mode=reply&p=3922623 --- This SF.net email is sponsored by: Splunk Inc. Do you grep through log files for problems? Stop! Download the new AJAX search engine that makes searching your log files as easy as surfing the web. DOWNLOAD SPLUNK! http://sel.as-us.falkag.net/sel?cmd=lnk&kid=103432&bid=230486&dat=121642 ___ JBoss-user mailing list JBoss-user@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/jboss-user
[JBoss-user] [JBoss jBPM] - Re: cannot jbpmSession.commitTransaction()
Alternatively, you could probably use xdoclet as: [MDB xdoclet settings: transaction-type="Bean" ] Don't quote that as gospel; just guessing. :) View the original post : http://www.jboss.com/index.html?module=bb&op=viewtopic&p=3922563#3922563 Reply to the post : http://www.jboss.com/index.html?module=bb&op=posting&mode=reply&p=3922563 --- This SF.net email is sponsored by: Splunk Inc. Do you grep through log files for problems? Stop! Download the new AJAX search engine that makes searching your log files as easy as surfing the web. DOWNLOAD SPLUNK! http://sel.as-us.falkag.net/sel?cmd=lnk&kid=103432&bid=230486&dat=121642 ___ JBoss-user mailing list JBoss-user@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/jboss-user
[JBoss-user] [JBoss jBPM] - Re: subProcessInstance is null
Tom, I see you try accessing it in a new transaction; is that also starting a new jbpmSession? I get the error when everything is persisted and I try accessing it in a later session; it works fine when still in the original one. I'm using 3.0.2; I tried going to 3.1 beta 3 to test it, but I have a fairly significant code base and migration is a little more complicated than switching out the .jar. :) Thanks, Ian View the original post : http://www.jboss.com/index.html?module=bb&op=viewtopic&p=3922561#3922561 Reply to the post : http://www.jboss.com/index.html?module=bb&op=posting&mode=reply&p=3922561 --- This SF.net email is sponsored by: Splunk Inc. Do you grep through log files for problems? Stop! Download the new AJAX search engine that makes searching your log files as easy as surfing the web. DOWNLOAD SPLUNK! http://sel.as-us.falkag.net/sel?cmd=lnk&kid=103432&bid=230486&dat=121642 ___ JBoss-user mailing list JBoss-user@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/jboss-user
[JBoss-user] [JBoss jBPM] - Re: cannot jbpmSession.commitTransaction()
I've had similar errors using EJB Timers. I believe what is going on is that your application server is managing your transactions but that is not getting communicated to jBPM's Hibernate. Since my timer's logic was simple and purely jBPM related, I solved the problem by letting the bean manage its own transactions. With EJB3 you can tag the bean with: | @TransactionManagement(TransactionManagementType.BEAN) | View the original post : http://www.jboss.com/index.html?module=bb&op=viewtopic&p=3922390#3922390 Reply to the post : http://www.jboss.com/index.html?module=bb&op=posting&mode=reply&p=3922390 --- This SF.net email is sponsored by: Splunk Inc. Do you grep through log files for problems? Stop! Download the new AJAX search engine that makes searching your log files as easy as surfing the web. DOWNLOAD SPLUNK! http://sel.as-us.falkag.net/sel?cmd=lnk&kid=103432&bid=230486&dat=121642 ___ JBoss-user mailing list JBoss-user@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/jboss-user
[JBoss-user] [JBoss jBPM] - Re: subProcessInstance is null
I have a similar problem, and have posted about it here: http://www.jboss.com/index.html?module=bb&op=viewtopic&t=76936 View the original post : http://www.jboss.com/index.html?module=bb&op=viewtopic&p=3922290#3922290 Reply to the post : http://www.jboss.com/index.html?module=bb&op=posting&mode=reply&p=3922290 --- This SF.net email is sponsored by: Splunk Inc. Do you grep through log files for problems? Stop! Download the new AJAX search engine that makes searching your log files as easy as surfing the web. DOWNLOAD SPLUNK! http://sel.as-us.falkag.net/sel?cmd=lnk&kid=103432&bid=230486&dat=121642 ___ JBoss-user mailing list JBoss-user@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/jboss-user
[JBoss-user] [JBoss jBPM] - Trouble getting SubProcessInstance in new jbpmSession
I'm having a little bit of trouble accessing a subprocess instance via a Token's getSubProcessInstance method. I'm using the processes: | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The following code creates a ProcessInstance, advances it to enter the subprocess, and prints out the subprocess instance in one session, and then loads the process and prints out the subprocess instance (using the same code) in a second session. | jbpmSession = JbpmSessionFactory.getInstance().openJbpmSession(); | GraphSession graphSession = jbpmSession.getGraphSession(); | | ProcessDefinition pd = graphSession.findLatestProcessDefinition("Task Master Process"); | ProcessInstance pi = pd.createProcessInstance(); | graphSession.saveProcessInstance(pi); | | long id = pi.getId(); | Token t = pi.getRootToken(); | pi.signal(); | pi.signal(); | System.out.println(graphSession.loadProcessInstance(id).getRootToken().getSubProcessInstance()); | jbpmSession.close(); | | jbpmSession = JbpmSessionFactory.getInstance().openJbpmSession(); | graphSession = jbpmSession.getGraphSession(); | System.out.println(graphSession.loadProcessInstance(id).getRootToken().getSubProcessInstance()); | jbpmSession.close(); | This leads to, for example: | 16:39:35,213 INFO [STDOUT] [EMAIL PROTECTED] | 16:39:35,229 INFO [STDOUT] null | Now, I would very much expect to get the same process instance back even in a new jbpmSession. Instead, I get null. Can anyone shed any light on this? View the original post : http://www.jboss.com/index.html?module=bb&op=viewtopic&p=3922158#3922158 Reply to the post : http://www.jboss.com/index.html?module=bb&op=posting&mode=reply&p=3922158 --- This SF.net email is sponsored by: Splunk Inc. Do you grep through log files for problems? Stop! Download the new AJAX search engine that makes searching your log files as easy as surfing the web. DOWNLOAD SPLUNK! http://sel.as-us.falkag.net/sel?cmd=lnk&kid=103432&bid=230486&dat=121642 ___ JBoss-user mailing list JBoss-user@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/jboss-user
[JBoss-user] [JBoss jBPM] - Re: Create timer problem coming from completed task
Nevermind, fixed it! The answer is very simple. Turns out that after doing a task you have to explicitly save the process instance, like so: | jbpmSession.getGraphSession().saveProcessInstance(task.getTaskMgmtInstance().getProcessInstance()); | View the original post : http://www.jboss.com/index.html?module=bb&op=viewtopic&p=3914813#3914813 Reply to the post : http://www.jboss.com/index.html?module=bb&op=posting&mode=reply&p=3914813 --- This SF.net email is sponsored by: Splunk Inc. Do you grep through log files for problems? Stop! Download the new AJAX search engine that makes searching your log files as easy as surfing the web. DOWNLOAD SPLUNK! http://ads.osdn.com/?ad_id=7637&alloc_id=16865&op=click ___ JBoss-user mailing list JBoss-user@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/jboss-user
[JBoss-user] [JBoss jBPM] - EJB3 Timer Scheduler
I'm using jBPM in an EJB3 application, and I didn't feel that the web tier was the proper place for the scheduler. I wrote a stateless session bean that uses EJB3 timers for scheduling instead. It's basically the same algorithm (oh, and same code :) that's in the servlet, just now instead of using threads directly it lets the application server handle the details of the timing. I took out the listeners for now. Obviously since it needs to be started on startup I have a servlet calling down to the start() method, but this fits in nicely since my application has other timers that need to be started on application startup. To use transactions I had to add these parameters to jbpm.sar/jbpm.sar.cfg.jar/jbpm.hibernate.properties: | hibernate.transaction.factory_class=org.hibernate.transaction.JTATransactionFactory | hibernate.transaction.manager_lookup_class=org.hibernate.transaction.JBossTransactionManagerLookup | | package com.something.workflow; | | public interface Scheduler { | | void start(); | void stop(); | } | | package com.something.workflow.impl; | | import static java.lang.Math.min; | | import java.util.Collection; | import java.util.Date; | import java.util.Iterator; | | import javax.annotation.Resource; | import javax.ejb.SessionContext; | import javax.ejb.Stateless; | import javax.ejb.Timeout; | | import org.apache.commons.logging.Log; | import org.apache.commons.logging.LogFactory; | import org.jbpm.calendar.BusinessCalendar; | import org.jbpm.calendar.Duration; | import org.jbpm.db.JbpmSession; | import org.jbpm.db.JbpmSessionFactory; | import org.jbpm.db.SchedulerSession; | import org.jbpm.scheduler.exe.Timer; | | import com.something.workflow.Scheduler; | | @Stateless | public class SchedulerBean implements Scheduler { | private static final Log log = LogFactory.getLog(SchedulerBean.class); | | static JbpmSessionFactory jbpmSessionFactory = JbpmSessionFactory.getInstance(); | static BusinessCalendar businessCalendar = new BusinessCalendar(); | | @Resource | private SessionContext ctx; | | private static final long DEFAULT_TIMEOUT = 5000L; | | public void start() | { | log.debug("starting Scheduler"); | ctx.getTimerService().createTimer(DEFAULT_TIMEOUT,null); | } | | @Timeout | public void timeoutHandler(javax.ejb.Timer timer) | { | long time = min(executeTimers(),DEFAULT_TIMEOUT); | timer.cancel(); | ctx.getTimerService().createTimer(time,null); | } | | public void stop() { | log.debug("stopping Scheduler"); | Collection timers = ctx.getTimerService().getTimers(); | for (Object o : timers) { | javax.ejb.Timer t = (javax.ejb.Timer)o; | t.cancel(); | } | } | | private long executeTimers() { | long millisTillNextTimerIsDue = DEFAULT_TIMEOUT; | boolean isDueDateInPast = true; | | JbpmSession jbpmSession = jbpmSessionFactory.openJbpmSessionAndBeginTransaction(); | try { | SchedulerSession schedulerSession = new SchedulerSession(jbpmSession); | | log.debug("checking for jBPM timers"); | Iterator iter = schedulerSession.findTimersByDueDate(); | while ((iter.hasNext()) && (isDueDateInPast)) { | Timer timer = (Timer) iter.next(); | log.debug("found timer "+timer); | | // if this timer is due | if (timer.isDue()) { | log.debug("executing timer '"+timer+"'"); | | // execute | timer.execute(); | | // if there was an exception, just save the timer | if (timer.getException()!=null) { | schedulerSession.saveTimer(timer); | | // if repeat is specified | } | else if (timer.getRepeat()!=null) { | // update timer by adding the repeat duration | Date dueDate = timer.getDueDate(); | | // suppose that it took the t
[JBoss-user] [JBoss jBPM] - Re: Create timer problem coming from completed task
Anyone able to offer any insight on this problem? :) View the original post : http://www.jboss.com/index.html?module=bb&op=viewtopic&p=3914787#3914787 Reply to the post : http://www.jboss.com/index.html?module=bb&op=posting&mode=reply&p=3914787 --- This SF.net email is sponsored by: Splunk Inc. Do you grep through log files for problems? Stop! Download the new AJAX search engine that makes searching your log files as easy as surfing the web. DOWNLOAD SPLUNK! http://ads.osdn.com/?ad_id=7637&alloc_id=16865&op=click ___ JBoss-user mailing list JBoss-user@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/jboss-user
[JBoss-user] [JBoss jBPM] - Re: Create timer problem coming from completed task
More info (whoops!): If I advance from "call" directly with a processInstance.signal("go"), the timer is created and found and works properly. View the original post : http://www.jboss.com/index.html?module=bb&op=viewtopic&p=3913657#3913657 Reply to the post : http://www.jboss.com/index.html?module=bb&op=posting&mode=reply&p=3913657 --- This SF.net email is sponsored by: Splunk Inc. Do you grep through log files for problems? Stop! Download the new AJAX search engine that makes searching your log files as easy as surfing the web. DOWNLOAD SPLUNK! http://ads.osdn.com/?ad_id=7637&alloc_id=16865&op=click ___ JBoss-user mailing list JBoss-user@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/jboss-user
[JBoss-user] [JBoss jBPM] - Create timer problem coming from completed task
I'm experimenting with jBPM before integrating it into my application, and I've run into a small snag. My original process went like this: | | | | | | | | | | | | | | | | | | | | | And it worked fine. Advancing from "call" went to "wait," and 10 seconds later it went to "fax." But, I wanted to make call a task-node that would advance after the task was done. So I changed the state "call" to | | | | | | After the completion of the task the process successfully moved to the state "wait." However, it does not create a timer upon entry, and thus does not automatically advance to "fax." I noticed from the log that despite not creating the timer, it was at least firing the event "node-enter" on "wait," so I replaced the state "wait" with the following | | | | | | | Now the event is being executed, as seen in the log | DEBUG [GraphElement] executing action 'CreateTimerAction(...)' | however, the SchedulerThread is not finding the timer. I'm developing a simple web application using the SchedulerServlet and the service jbpm.sar provided in the 3.0.2 starter kit, and using servlets to interact with jBPM. My task servlet looks like: | package ...; | import ...; | | public class DoTask extends HttpServlet { | | @Override | protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { | | String action = (String)request.getParameter("action"); | long id = Long.parseLong(request.getParameter("id")); | | JbpmSessionFactory jbpmSessionFactory = JbpmSessionFactory.getInstance(); | JbpmSession jbpmSession = jbpmSessionFactory.openJbpmSession(); | jbpmSession.beginTransaction(); | | TaskInstance task = jbpmSession.getTaskMgmtSession().loadTaskInstance(id); | | if ("called".equals(action)) | task.end("go"); | else if ("paid".equals(action)) | task.end("done"); | | jbpmSession.commitTransaction(); | jbpmSession.close(); | | request.getRequestDispatcher("/index.html").forward(request,response); | } | } | Any ideas why my timer isn't getting created, or at least, not found? Is the SchedulerServlet the best place for a scheduler in a full blown J2EE application with all of the business (and thus jBPM) logic in Session EJBs? Thanks for your help, Ian View the original post : http://www.jboss.com/index.html?module=bb&op=viewtopic&p=3913656#3913656 Reply to the post : http://www.jboss.com/index.html?module=bb&op=posting&mode=reply&p=3913656 --- This SF.net email is sponsored by: Splunk Inc. Do you grep through log files for problems? Stop! Download the new AJAX search engine that makes searching your log files as easy as surfing the web. DOWNLOAD SPLUNK! http://ads.osdn.com/?ad_id=7637&alloc_id=16865&op=click ___ JBoss-user mailing list JBoss-user@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/jboss-user
[JBoss-user] [EJB 3.0] - Re: Re-obtaining a reference to an existing stateful EJB3 in
I'm currently having trouble reobtaining a reference to a sfsb, myself. Unfortunately, I've tried every method listed in this thread. :) My initial (perhaps naive) approach was to stick a reference to the bean in the HttpSession, but after approximately 2-5 minutes method invocations via that reference go to a new bean. I tried putting it in JNDI with something like the following: Putting in: | IntitialContext ctx = new InitialConext(); | SFSB bean = (SFSB)ctx.lookup(SFSB.class.getName()); | ctx.bind(httpSession.getId(), bean); | Retrieving: | IntitialContext ctx = new InitialConext(); | SFSB bean = (SFSB)ctx.lookup(httpSession.getId()); | This approach threw no exceptions, but invoking methods against these references always went to different beans. I've also tried putting the reference in a static HashMap, but this approach has the same trouble as putting it directly in the session (i.e. after 2-5 minutes method invocations go to a new bean). I even tried using sessionContext.getEJBObject().getHandle(); and storing *that* in the session; unfortunately it was always null. I'm using EJB3 on JBoss 4.0.3SP1. Does anyone have any suggestions? View the original post : http://www.jboss.com/index.html?module=bb&op=viewtopic&p=3913134#3913134 Reply to the post : http://www.jboss.com/index.html?module=bb&op=posting&mode=reply&p=3913134 --- This SF.net email is sponsored by: Splunk Inc. Do you grep through log files for problems? Stop! Download the new AJAX search engine that makes searching your log files as easy as surfing the web. DOWNLOAD SPLUNK! http://ads.osdn.com/?ad_id=7637&alloc_id=16865&op=click ___ JBoss-user mailing list JBoss-user@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/jboss-user