Componente de respuesta en el proceso BPEL síncrono en Oracle SOA

if there any possibility for returning the result to the client in the middle of a synchronous BPEL process?

I put the reply component in the middle of BPEL process, but the client still will wait for the whole process completed. I am wondering how the reply mechanism works in BPEL for synchronous.

preguntado el 31 de enero de 12 a las 08:01

The reply component does not terminate the process, for that you need a terminate component. basically the client should get the reply as soon as it occurs. can you describe your process ? -

but if I use the terminate component the following activities will not execute, right? I just want reply a result to client first, then continue the other activities. -

then don't put the terminate component... Try this: create a new sync process, add an asign component to copy some value to the output variable, add a wait component for 1 minute después de the reply component and then initiate it from the console. You'll see that you get the reply as soon as it occurs, but if you'll check the flow screen - it's still running -

5 Respuestas

Yes, you can place Reply activity and do some other activities after it.

But you have to place Wait activity after Reply to force BPEL engine to actually send the reply message.

Also the Wait activity has to be configured to wait for 3 seconds minimum or the value of MinBPELWait property in the System MBean Browser of Oracle Enterprise Manager Fusion Middleware Control. Otherwise the server will ignore it.

ver: http://docs.oracle.com/cd/E23943_01/dev.1111/e10224/bp_events.htm#SOASE516

Respondido 25 Feb 14, 20:02

You can have the reply activity anywhere you want to send the response back to the client. Whatever the activities after the reply activity get executed as expected.

One thing you need to make sure is that, only one reply activity can be there for the respective receive activity.

respondido 09 mar '12, 12:03

Instead of wait, you can use a dehydrate activity. The concept is that unless the transaction completes, bpel doesn't reply, so you basically need to end the transaction where you use a reply activity. To do that you have to commit the transaction, so that new transaction can begin.

Note: using a wait would slow your bpel process.

contestado el 23 de mayo de 15 a las 10:05

in your composite.xml try modifying below properties of your synchronous bpel component, it should be working with out adding dehydration or wait and there should be no wait at client call.

bpel.config.transaction = required
bpel.config.oneWayDeliveryPolicy=async.persist

Respondido 24 ago 16, 21:08

Your best bet would be to add a dehydrate activity after your reply, this will force BPEL to complete the transaction then start a new one.

respondido 14 nov., 18:23

No es la respuesta que estás buscando? Examinar otras preguntas etiquetadas or haz tu propia pregunta.