Timeout Settings as an Absolute Date Time

14-10 Oracle Fusion Middleware Developers Guide for Oracle SOA Suite message is handled, the timeout action is ignored. As of 11g Release 1, instances are locked optimistically as opposed to pessimistic locking in Release 10g. Therefore, the second action in line is still performed. However, the instance version check fails upon dehydration of the instance. The bpelx:timeout fault can be thrown from a BPEL component if the component WSDL declares the fault on the operation. If the fault is not declared on the operation, the fault is converted into a FabricInvocationException, which is a runtime fault. This fault can be caught by any caller components including BPEL components, but the fault type is no longer bpelx:timeout however, the fault message string still indicates that the fault was originally a timeout fault.

14.3.5 Event Added to the BPEL Instance Audit Trail During an Activity Timeout

Once a bpelx:timeout fault is thrown from a timed-out activity, an event is logged to the instance audit trail indicating that the activity has timed out, as opposed to having received the expected callback message from its partner.

14.3.6 Recoverable Timeout Activities During a Server Restart Refresh Expiration Alarm Table

Activities that specify a valid timeout duration or datetime are likely implemented in a similar manner to wait and onAlarm activities with an expiration date for the underlying work item object. If the node that scheduled these activities with the scheduler goes down either through graceful shutdown or abrupt termination, all these activities must be rescheduled with the scheduler upon server restart. It is not possible to have a single node the master node in the cluster be responsible for rescheduling these activities upon node shutdown.

14.3.7 How to Set Timeouts for Request-Response Operations in Receive Activities

To set timeouts for request-response operations in receive activities: 1. In the SOA Composite Editor, double-click the version 1.1 BPEL process service component.

2. In the Component Palette, expand BPEL Constructs.

3. Drag a Receive activity into the designer.

4. Expand the activity.

5. Click the Timeout tab.

This tab enables you to set a timeout for request-response operations, as shown in Figure 14–6 . Using Events and Timeouts in BPEL Processes 14-11 Figure 14–6 Timeout Tab

6. Specify appropriate values, and click Apply. For example:

■ To specify a timeout setting relative from when the activity is invoked, click the For button and enter a value or click the Expression button and specify an XPath expression. ■ To specify a timeout setting as an absolute deadline for a request-response operation, click the Until button and enter a value or click the Expression button and specify an XPath expression.

7. Click Apply, then OK.

14.3.8 What Happens When You Set Timeouts for Request-Response Operations in Receive Activities

The code segment in the .bpel file defines the specific operation after design completion. For example, if you specified that the activity expects an inbound message to arrive no later than five minutes after the activity has started execution, the syntax displays as shown in Example 14–5 . Example 14–5 Static Duration bpelx:for=PT5M For example, if you specified that the activity expects an inbound message to arrive no later than January 24, 2010 11:00 AM UTC+1 after the activity has started execution, the syntax displays as shown in Example 14–6 . Example 14–6 datetime Value bpelx:until=2010-01-24T11:00:00-08:00