0

I would like to understand how can invoke through BPEL a stored procedure in a non-blocking way. My concern is I have a stored procedure (in DBAdpater) that I'm invoking, but it takes so much time (around 30 minutes) and I cannot wait until this finishes.

I'm trying setting in composite application the invoke property "nonBlockingInvoke" but it doesn't work, the adapter is blocking until get respsonse.

Thanks.

marc_s
  • 732,580
  • 175
  • 1,330
  • 1,459

1 Answers1

0

Nonblockinginvoke is for use in a FLOW when you want a separate thread of execution for the Sync Invoke branch, so it doesn't block the other flows. FLOW is cooperative parallel - not true parallel. The Sync Invoke still blocks during the call. Read more here.

Anyway, one solution to your problem is to have a new composite that calls Async the composite that uses the DB adapter to execute the stored proc. So, your new service calls the other service async, thus it won't block - but the service calling the db adapter blocks, but at this point, your invoker is free. It's not a bad idea to wrap db adapter calls in their own composite to decouple/isolate the true service implementation from the DB service interface - which can cahange.

Joe
  • 3,337
  • 1
  • 14
  • 11