Databases Reference
In-Depth Information
Composite execution and suspension
Many composites will be long running, taking minutes, hours, or days to complete.
To avoid unnecessary memory usage and to provide resilience in case of machine
failure these composites will be persisted to the SOA Suite repository database. This
process is known as dehydration and it involves storing the current execution state
of the composite in the database. Usually this state is stored and managed by the
BPEL component. When an event occurs that requires the composite to take some
action, such as a timer expiring or a message arriving, then the SOA Suite retrieves
the composite state from the database and schedules it for execution. A composite
may be dehydrated multiple times during its life.
BPEL dehydration events
A BPEL process may be dehydrated at a number of different points. It is important
to be aware of these when developing an application because, as we will see later,
dehydration points affect the transaction boundaries of our composite.
Some of the key events that cause dehydration to occur are as follows:
Waiting for an incoming message using a BPEL receive or pick activity
Waiting for a specific time or a delay using a BPEL wait element
After a non-idempotent call to another service
Before a wait
For example, a BPEL process may be waiting for the response from an asynchronous
interaction or a new inbound message as a result of a pick or receive activity. This
will cause the process state to be written to the dehydration database.
When a composite is running on a server instance, in the event of server instance
failure, a BPEL process will resume execution from the last dehydration point. A
corollary to this is that if the composite is a request/response interaction with no
dehydration points, then the composite instance will be lost.
Threading and message delivery in SOA
Suite
There are a number of different thread pools used by the SOA Suite runtime. Some
of them are used to run background tasks such as keeping track of which processes
need to be woken after a BPEL wait activity or waiting for messages to arrive. Other
threads are used to execute composites. In this section, we will focus on threads as
 
Search WWH ::




Custom Search