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
7 Comments:
Where can i get information about a Oracle job initiating a BPEL process
Thanks
Satish
1:59 PM
You can create a PLSQL stored procedure to invoke your BPEL process and schedule it using DBMS_JOB (DBMS_SCHEDULER in Oracle 10g).
Read this http://www.oracle.com/technology/tech/webservices/htdocs/samples/dbwebservice/DBWebServices_PLSQL.html
and this http://www.oracle.com/technology/products/database/scheduler/index.html
10:09 PM
Hi Clemen,
We use DBMS_SCHEDULER to invoke PL/SQL procedure which calls BPEL Process(=WS).
I've read http://www.oracle.com/technology/tech/webservices/htdocs/samples/dbwebservice/DBWebServices_PLSQL.html
and build it. Everything works fine except an issue with demo_soap.add_parameter which is designed only for
simple data types. I need to pass complex xml doc as an input parameter. Do you have any ideas?
Thank you in advance.
Sergey.
10:11 PM
Does anyone have any information on how to create a Quartz scheduled job given that it is embedded somewhere within orabpel?
For instance, we have found the following files:
OraHome_1/integration/orabpel/domains/default/config/quartz-config.properties
OraHome_1/integration/orabpel/system/appserver/oc4j/j2ee/home/applications/owf/owf/WEB-INF/quartz.properties
OraHome_1/integration/orabpel/system/services/config/owf_quartz.properties
However, it is unclear from these files what you actually need to do with them.
Are you saying that there is someway of configuring a job within the Oracle configuration files, or do you have to do that separately as you would normalling with Quartz? If so, how?
Thanks
4:20 AM
Peter, if your process doesn't start with a receive, try to wrap it...
Roman
11:21 AM
Thanks Roman,
But how? :-)
4:00 PM
Hi Clemens,
I am trying to start a BPEL process according to a timed schedule using the Quartz Scheduler, for eg. everyday at 7.30pm
I inserted the following lines of code in bpel.xml
(activationAgents)
(activationAgent className="oracle.tip.adapter.fw.agent.jca.JCAActivationAgent" partnerLink=" File_QuartzScheduler " heartBeatInterval="10")
(property name="schedulerCallout")DefaultSchedulerCalloutImpl(/property)
(property name="endpointScheduleOn")0 30 19 * * ?(/property)
(property name="endpointScheduleOff")0 31 19 * * ?(/property)
(/activationAgent)
(/activationAgents)
8:35 AM
Post a Comment
<< Home