jbpm use database to store the process information and context because jbpm is designed to execute long running processes.. (like process that run for years).. so you must persist the state of all running process to restore the state in case of your machine goes down..
or in case that you have the process in a wait state like wating for a human task end...
I Hope it helps...
Let me know if i can help you with something else...
If you only wanna a process machine.. you can try using PVM that is a Process Virtual Machine that is independent of language and you can use it with out of any persistent engine..
jbpm does not need a database specifically, only if you want to use persistency of states (processdefinitions can come from files to, or even strings). And even then, you *can* build your own persistency service that stores things in e.g. a file, or multiple files or whatever you come up with. You'll run into concurrency things then, but it is doable
Thanks for your explanation. If I don't need the feature of persistent and I just want a simple work flow engine, jBPM can work without Database. Is this true?
yes is true.. but if you want a only a workflow engine you should look PVM project...
or just use jBPM without database...
PVM is not a workflow engine, it is the basis on which workflow 'languages' can be defined. It does not contain one. jBPM JPDL is the one of the languages. jBPM JPDL 4 will be based on the PVM.
PVM does not let you to execute a process with out any restriction of language and any restriction of dependencies?
The definition in jbpm.org is:
The Process Virtual Machine is a simple Java library for building and executing process graphs. This serves as a basis for all kinds of workflow, Business Process Management (BPM) and orchestration process languages.
So the PVM runs in all Java environments. Be it a standalone swing application, a web application on a servlet container like Tomcat, a spring environment or an enterprise application on an application server like JBoss. All of this with or without relational database persistence.
And if you look the documentations and tutorials you can si how with a simple API you can create your own processes and execute them...
Am I wrong? or this is what youhaodeyi is looking for?
if you want to use the low level api you are in some way correct. People perceive workflow 'engines' to have some kind of domain specific language (DSL) not a low level java API. That is one of the reasons Tom called it a virtual machine.
But this default behaviour is rather crude and not realy intended for day to day usage in more complex environments.
If you look at jBPM itself btw, the testcases also do a lot without persistency, not very different from how you could use the pvm. So it is already possible now
I have some questions can you pls help me on this....* For Example we need execute delete statement, where do we set it? In JBPM or in Hibernate?
* Does JBPM requires specific DB?
* How to archive data in JBPM?
* How to maintain database in JBPM?
* How to restart a failed activity/task in JBPM?
* Public and Process type example