BPEL: Scheduling reoccuring processes
After seing some questions around periodically starting new BPELProcess instances, I thought to publish some ideas here...
Suppose you want to have a new process triggered every minute, what are the options?
- Implement a master process, that has a <while> and a <wait> that is configured for the time to make the process sleepling
- Advantage: It's BPEL
- Disadvantage: As it contains a wait and some other activities that might lead to (de)hydration, you fill you database
- Use the Oracle RDBMS Job Scheduler (dbms_job package) that will start your process periodically
- Advantage: One time implemented, backed up with the DB, and pattform independend
- Disadvantage: It's bound to an Oracle DB, and you need to know at least some pl\sql, the rest is java
- Use a Timer EJB (provided with a j2ee compliant java container)
- Advantage: it's a statefull bean, so it will get saved, and revovered when the container goes down, use java to implement
- Disadvantage: Dependend on the container you are using
- Use QUARTZ, the open source scheduler
- Advantage: It's opensource and Oracle BPELPM uses it for scheduling
Having questions? send your feedback on Scheduling reoccuring processes here