Life cycle of a BPEL Dehydration (breakpoints, non idempotent)Instances in Soa
Over the life
cycle of a BPEL instance, the instance with its current state of execution may
be saved in a database. When a
BPEL instance is saved to a database, the instance is also known as being
dehydrated. The database where the BPEL instance is saved is called
a dehydration store.
There are three cases in which dehydration occurs:
1> When
the BPEL instance encounters a
mid-process breakpoints activity (not including the initial receive)
That is where an existing BPEL instance must wait for an event,
which can be either a timer expiration or message arrival. When the event
occurs (the alarm expires or the message arrives), the instance is loaded from
the dehydration store and execution is resumed. This type of dehydration occurs
only in durable processes, which have mid-process breakpoint activities. A transient process does not
have any midprocess breakpoint activities.
2> When
the BPEL instance encounters a
nonidempotent activity
When Oracle BPEL Server recovers after a crash, it retries
the activities in the process instance. However, it should only retry the idempotent activities. Therefore, when
Oracle BPEL Server encounters a
nonidempotent activity, it dehydrates it. This enables Oracle BPEL
Server to memorize that this activity was performed once and is not performed
again when Oracle BPEL Server recovers from a crash.
3> When the BPEL instance finishes
At the end of the BPEL process, Oracle BPEL Server saves the
process instance to the dehydration store, unless you explicitly configure it
not to do so. This happens to both durable and transient processes. For
transient processes, the end of the process is the only point where the process
instance is saved. This is because a transient process does not have any
mid-process breakpoint activities and nonidempotent activities where the
in-flight dehydration can occur.
0 comments:
Post a Comment