-
1. Re: JBPM4.4 application deployment/startup issue in Tomcat
mwohlf Oct 29, 2010 4:20 PM (in response to felixkjose)my guess is you accidently deploy the same process definition on each restart of your tomcat server, or do you really need a "very high" number of different process definitions in JBPM4_DEPLOYMENT, JBPM4_LOB?
-
2. Re: JBPM4.4 application deployment/startup issue in Tomcat
felixkjose Oct 30, 2010 9:17 AM (in response to mwohlf)Hi Michael,
Thank you for your quick reply. But I didn't understand what you have mentioned with "deploy same process definition each time".
Please find WorkFlow.java code Snippet:
/**
* Checks whether all the properties of the WorkFlow class are set. Also it
* instantiate ExecutionService and RepositoryService.
*
* @throws WorkFlowException
* if processEngine were not set.
* @throws WorkFlowRuntimeException
* if process definition files do not exists.
*/
public void init() throws WorkFlowException, WorkFlowRuntimeException {if (null == processEngine) {
throw new IllegalStateException("JBPM ProcessEngine not set");
}
// Instantiate ExecutionService object using processEngine.
executionService = processEngine.getExecutionService();
if (null == executionService) {throw new IllegalStateException("JBPM ExecutionService not set");
}
System.out.println("executionService::" + executionService);
// Instantiate RepositoryService object using processEngine.
repositoryService = processEngine.getRepositoryService();
if (null == repositoryService) {throw new IllegalStateException("JBPM RepositoryService not set");
}
System.out.println("repositoryService::" + repositoryService);// Instantiate TaskService object using processEngine.
taskService = processEngine.getTaskService();
if (null == taskService) {throw new IllegalStateException("JBPM HistoryService not set");
}
System.out.println("repositoryService::" + repositoryService);
if (null == iWorkFlowDao) {
throw new IllegalStateException("WorkFlowDao object not set");
}
if (null == iCaseDao) {throw new IllegalStateException("ManageCaseDao object not set");
}
if (null == iAssistRegionDao) {throw new IllegalStateException("iAssistRegionDao object not set");
}
this.deploy();}
private void deploy() throws WorkFlowException, WorkFlowRuntimeException {
try {
// Deploying the WorkFlow process definition.
String ddrDeploymentId = repositoryService.createDeployment()
.addResourceFromClasspath("request.jpdl.xml").deploy();
// Checking the deployment is success.
if (null == ddrDeploymentId || ddrDeploymentId.equals("")) {
throw new WorkFlowException(
"The Work flow deployment is failed");
}}
Description:
This WorkFlow.java class is a spring bean class. So whenever the appliaction startup its init() method will get called and in that we are a reference to the method deploy() and in that method we are handling the
repositoryService.createDeployment()
.addResourceFromClasspath("ddr_request.jpdl.xml").deploy()And my doubt is if didn't deploy this how will our workflow work?
So can you please tell me what I can do instead? Please help me..
Thank You and regards,
Felix K Jose
-
3. Re: JBPM4.4 application deployment/startup issue in Tomcat
mwohlf Oct 30, 2010 9:29 AM (in response to felixkjose)Hi Felix,
you don't need to deploy the process definition on each restart of your application as long as it doesn't change, deploying the process definition once is perfectly enough. The Process definition is persisted in the database and will be there after the restart, so your workflow will work fine by using the already persisted version in the database. You can check if a precess definition is there by using
int count = repositoryService.createProcessDefinitionQuery().processDefinitionName(processDefinitionName).list().size();
-
4. Re: JBPM4.4 application deployment/startup issue in Tomcat
felixkjose Oct 30, 2010 9:54 AM (in response to mwohlf)Hi Michael,
Thank you, Thank you so much. You have solved my issue it seems.
I will let you know the tested result on Monday once I have tested this.
Once again thanks.
With Regards,
Felix K Jose
-
5. Re: JBPM4.4 application deployment/startup issue in Tomcat
felixkjose Nov 2, 2010 2:41 PM (in response to felixkjose)Hi Michael,
I have tested that and is working fine.
I have one more doubt, Currently I am not able to hot deploy my JBPM application in Tomact. What I mean by hot deployment is deploy the application without stopping the Tomcat. When I am trying to undeploy the application without stopping the Tomcat I am getting an error saying that some of the JBPM related resources are in use cannot undeploy the application. So for undeploy and deploy the application everytime we need to stop the Tomcat and start it. This wont be possible once the application moves into production environment because there in one tomcat there might be number of applications running. So stopping tomcat wont be possible. Currently what I am doing following in the code to close JBPM resources:
WorkFlow.java
/**
* Destroys all the instances.
*
* @throws WorkFlowException
* @throws WorkFlowRuntimeException
*/
public void destroy() throws WorkFlowException, WorkFlowRuntimeException {
// destroying the JBPM resources.
if (null != processEngine) {
processEngine.close();
}}
This destroy() method will get called when the spring context is getting destroyed that means whenever we are undeploying the application. But this is not helping me to do a hot deployment. Can you please let me know whatelse I need to do ? What are the other possible JBPM resources I need to close?
With Regards,
Felix K Jose
-
6. Re: JBPM4.4 application deployment/startup issue in Tomcat
felixkjose Nov 3, 2010 6:19 AM (in response to felixkjose)Hi,
Please help me to solve this issue.
Thank you and regards,
Felix K Jose
-
7. Re: JBPM4.4 application deployment/startup issue in Tomcat
mwohlf Nov 5, 2010 2:10 PM (in response to felixkjose)maybe the threads from the jobExecutor are still running?
-
8. Re: JBPM4.4 application deployment/startup issue in Tomcat
felixkjose Nov 7, 2010 7:09 PM (in response to mwohlf)Hi Michael,
Thank you for your reply.
How can I close those jobExecutor threads? Will it affect to continue the process in future? please give me the code snippet.
Thank you and regards,
Felix K Jose
-
9. Re: JBPM4.4 application deployment/startup issue in Tomcat
jancrot Jan 25, 2013 12:01 AM (in response to felixkjose)I have a very similar issue like Felix Jose had. JBPM tables grow so fast and my application now takes more than 10 minutes to start up.
Unfortunately, it's now alive and I need to find a way to housekeep them.
Basically, I want to delete all the records in JBPM4_DEPLOYMENT and (of course) its children/grandchildren/etc.
Are these records safe to delete? FYI, I stop my application before doing this.
If this operation is safe, can I have any documentation saying that they're safe to delete? Or at least a documentation saying that "they are duplicates" so that I have a strong reason to delete them.
By the way, they are being re-populated everytime my application starts. That's why they grow..
I guess "I accidentally deploy the same process definition on each restart". Still, I need a formal documentation to say it.
Thanks