Skip Headers
Oracle® Fusion Middleware Administrator's Guide for Oracle SOA Suite and Oracle Business Process Management Suite
11g Release 1 (11.1.1.5.0)

Part Number E10226-09
Go to Documentation Home
Home
Go to Book List
Book List
Go to Table of Contents
Contents
Go to Index
Index
Go to Feedback page
Contact Us

Go to previous page
Previous
Go to next page
Next
View PDF

13 Managing BPEL Process Service Components and Engines

This chapter describes how to manage BPEL process service components and service engines.

This chapter includes the following topics:

For more information, see the following sections:

13.1 Recovering from BPEL Process Service Component Faults

You can monitor and perform individual and bulk fault recoveries for BPEL process service components that are identified as recoverable. For BPEL process faults to be identified as recoverable, there must be a fault policy defined that is bound to the fault (through the fault-bindings.xml file) and which triggers the action ora-human-intervention. However, without defining any fault policies, the fault takes its standard course as either a recoverable or nonrecoverable fault.

To recover from BPEL process service component faults:

  1. Access this page through one of the following options:

    From the SOA Infrastructure Menu... From the SOA Folder in the Navigator...
    1. Select Home.
    2. Select the Deployed Composites tab.

    3. In the Composite section, select a specific SOA composite application.

    1. Under soa-infra, select a specific SOA composite application.

  2. Select the BPEL process service component in the Component Metrics section.

  3. Click Faults.

    The Faults page displays the following details:

    • A utility for searching for a specific fault by specifying criteria and clicking Search. Click the Help icon for details.

    • Faults that occurred in the service component, including the fault ID, error message, whether you can recover from the fault, time at which the fault occurred, service component instance ID, activity in which the fault occurred, and a link to a log file describing the fault.

    Description of bpel_comp_faults.gif follows
    Description of the illustration bpel_comp_faults.gif

    BPEL process service component faults identified as recoverable can be recovered.

  4. Select faults for recovery using one of the following methods. Note that fault recovery selection at the BPEL process service component level equals the SOA Infrastructure level, SOA composite application level, and Oracle Mediator service component level.

    For... Then...
    Single fault recovery There are three options from which to choose for single-fault recovery:
    1. Click the row of the fault that has been identified as recoverable. With the row highlighted, select a specific action from the Recovery Action list, as described in Step 5.

    2. In the Recovery column, click the Recover link to access the Faults page of the instance audit trail to perform fault recovery.

    3. In the Error Message column, click the message of a fault that has been identified as recoverable. This displays complete fault details, including the fault ID, fault time, fault location, fault type, and error message text. A Recover Now option is displayed for recoverable faults. Click Recover Now to access the Faults page of the instance audit trail to perform fault recovery.

    Bulk fault recovery There are two options from which to choose for bulk-fault recovery:
    1. Use Shift+Click or Control+Click to select specific faults in the rows.

      or

    2. From the Select menu, choose Select All Recoverable. Then use Shift+Click or Control+Click to deselect the faults to not include in the recovery operation.

      Then:

    3. Select an action from the Recovery Action list, as described in Step 5.

      Note: Only the actions applicable to all selected faults are available.

    Recovery of all faults
    1. From the Select menu, choose Select All Recoverable.
    2. Select an action from the Recovery Action list, as described in Step 5.

      Note: Only the actions applicable to all selected faults are available.


    Note:

    In most cases, fault policy actions are automatically executed. The only exception is if you defined a fault policy that uses the action ora-human-intervention. This action creates a recoverable fault that can be recovered from Oracle Enterprise Manager Fusion Middleware Control.
  5. Select an action from the Recovery Action list.

    Action Description
    Retry Retries the instance directly. An example of a scenario in which to use this recovery action is when the fault occurred because the service provider was not reachable due to a network error. The network error is now resolved.
    Abort Terminates the entire instance.
    Replay Replays the entire scope activity again in which the fault occurred.
    Rethrow Rethrows the current fault. BPEL fault handlers (catch branches) are used to handle the fault. By default, all exceptions are caught by the fault management framework unless an explicit rethrow fault policy is provided.
    Continue Ignores the fault and continues processing (marks the faulted activity as a success).

  6. Perform the following additional monitoring tasks from within the faults table:

    1. Click the Show only recoverable faults checkbox to display only faults from which you can recover.

    2. From the Fault Type list, select to display all faults, system faults, business faults, or Oracle Web Services Manager (OWSM) faults in the faults table. Click the Help icon for a description of these fault types.

    3. From the View list, select Columns > Fault ID to display the fault IDs for each error message. The fault ID is automatically generated and uniquely identifies a fault. The fault ID is also displayed when you click an error message.

    4. In the Component Instance ID column, click a specific service component ID to access task details about the instance (for example, the current state of a task). Note that rejected messages do not have a component instance ID.

    5. In the Logs column, click a link to access the Log Messages page with filtered messages specific to that instance.

For more information, see the following documentation:

13.2 Managing BPEL Process Service Component Policies

You can attach and detach policies to and from BPEL process service components in currently deployed SOA composite applications. Policies apply security to the delivery of messages. Oracle Fusion Middleware uses a policy-based model to manage web services.

Note:

Before attaching policies, see Oracle Fusion Middleware Security and Administrator's Guide for Web Services for definitions of available policies and details about which ones to use in your environment.

To manage BPEL process service component policies:

  1. Access this page through one of the following options:

    From the SOA Infrastructure Menu... From the SOA Folder in the Navigator...
    1. Select Home.
    2. Select the Deployed Composites tab.

    3. In the Composite section, select a specific SOA composite application.

    1. Under soa-infra, select a specific SOA composite application.

  2. Select the BPEL process service component in the Component Metrics section.

  3. Click Policies.

    The Policies page enables you to attach and detach policies to and from BPEL process service components. The Policies section displays the attached policy name, the policy reference status (enabled or disabled) that you can toggle, the category (Management, Reliable Messaging, MTOM Attachment, Security, or WS-Addressing), the violations, and the authentication, authorization, confidentiality, and integrity failures since the SOA Infrastructure was last restarted.

    Description of bpel_comp_policy.gif follows
    Description of the illustration bpel_comp_policy.gif

  4. Click Attach/Detach.

    If multiple components are available, you are prompted to select the service or component for which to perform the attachment or detachment.

  5. Select the service or component to which to attach or detach a policy.

    This invokes a dialog for attaching or detaching policies.

    Policies currently attached appear in the Attached Policies section. Additional policies available for attachment appear in the Available Policies section.

  6. Select to attach policies appropriate to your environment.

  7. Click Attach.

  8. When you are finished attaching policies, click Validate.

  9. If an error message appears, make the necessary corrections until you no longer have any validation errors.

  10. Click OK.

    The attached policy is displayed in the policies table.

For more information, see the following documentation:

13.3 Recovering from BPEL Process Service Engine Faults

You can monitor and perform individual and bulk recoveries of faults occurring in BPEL process service engines that are identified as recoverable. All BPEL process service component faults, regardless of the SOA composite application instance of which they are a part, can be viewed in the BPEL process service engine. For BPEL process faults to be identified as recoverable, there must be a fault policy defined that is bound to the fault (through the fault-bindings.xml file) and which triggers the action ora-human-intervention. However, without defining any fault policies, the fault takes its standard course as either a recoverable or nonrecoverable fault.

To recover from BPEL process service engine faults:

  1. Access this page through one of the following options:

    From the SOA Infrastructure Menu... From the SOA Folder in the Navigator...
    1. Select Service Engines > BPEL.
    1. Right-click soa-infra.
    2. Select Service Engines > BPEL.


  2. Click Faults.

    The Faults page displays the following details:

    • A utility for searching for a specific fault by specifying criteria and clicking Search. Click the Help icon for details.

    • Faults that occurred in the service engine, including the fault ID, error message, whether you can recover from the fault, the time at which the fault occurred, the SOA composite application and service component in which the fault occurred, and the service component instance ID.

    Description of bpel_se_faults.gif follows
    Description of the illustration bpel_se_faults.gif

    BPEL process service engine faults identified as recoverable can be recovered.

  3. Select faults for recovery using one of the following options. As with fault recovery at the SOA Infrastructure level, SOA composite application level, and Oracle Mediator service component level, you can perform single fault recovery, bulk fault recovery, and recovery of all faults. See Step 4 of Section 13.1, "Recovering from BPEL Process Service Component Faults" for instructions on selecting faults to perform these types of recovery.

    Note:

    In most cases, fault policy actions are automatically executed. The only exception is if you defined a fault policy that uses the action ora-human-intervention. This action creates a recoverable fault that can be recovered from Oracle Enterprise Manager Fusion Middleware Control.
  4. Select an action from the Recovery Action list.

    Action Description
    Retry Retries the instance with an option to provide a retry success action. An example of a scenario in which to use this recovery action is when the fault occurred because the service provider was not reachable due to a network error. The network error is now resolved.
    Abort Terminates the entire instance.
    Replay Replays the entire scope activity again in which the fault occurred.
    Rethrow Rethrows the current fault. BPEL fault handlers (catch branches) are used to handle the fault. By default, all exceptions are caught by the fault management framework unless an explicit rethrow fault policy is provided.
    Continue Ignores the fault and continues processing (marks the faulted activity as a success).

  5. Perform the following additional monitoring tasks from within the faults table:

    1. Click the Show only recoverable faults checkbox to only display faults from which you can recover.

    2. From the Fault Type list, select to display all faults, system faults, business faults, or OWSM faults in the faults table. Click the Help icon for a description of these fault types.

    3. From the View list, select Columns > Fault ID to display the fault IDs for each error message. The fault ID is automatically generated and uniquely identifies a fault. The fault ID is also displayed when you click an error message.

    4. In the Composite column, click a specific SOA composite application to access its home page.

    5. In the Component column, click a specific service component to access its home page.

    6. In the Component Instance ID column, click a specific service component ID to access task details about the instance (for example, the current state of a task). Note that rejected messages do not have a component instance ID.

For more information, see the following sections:

13.4 Performing BPEL Process Service Engine Message Recovery

You can perform a manual recovery of undelivered invoke or callback messages due to a transaction rollback in the process instance. Recovery of invoke messages applies to asynchronous BPEL processes only. Synchronous BPEL processes return an error to the calling client and are not recoverable from the Recovery page. Recoverable activities are activities that failed and can be recovered. For example, if you are using the file adapter to initiate an asynchronous BPEL process and your system fails while the instance is processing, you can manually perform recovery when the server restarts to ensure that all message records are recovered.

You can also manage messages that have failed automatic recovery attempts by the BPEL process service engine. To ensure that automatic recovery of these messages is not attempted multiple times, these messages are placed in the exhausted state. You can then perform one of the following actions on these messages:

For example, assume you have a BPEL process that writes to a database adapter. If the database is down, these messages are sent to a recovery queue. Automatic recovery of these messages fails while the database is down. Such messages are marked with the exhausted state so that automatic recovery is not attempted on them again. When the database begins running again, you can reset these messages (return them to the automatic recovery queue) so that an automatic recovery is attempted on them again.

To perform BPEL process service engine message recovery:

  1. Access this page through one of the following options:

    From the SOA Infrastructure Menu... From the SOA Folder in the Navigator...
    1. Select Service Engines > BPEL.
    1. Right-click soa-infra.
    2. Select Service Engines > BPEL.


  2. Click Recovery.

    The Recovery page displays the following details:

    • A Refresh Alarm Table button for resynchronizing lost, in-memory, Quartz-scheduled jobs in the database. For example, assume a timer on a wait activity or on an onAlarm branch of a pick activity was initiated, but the transaction was rolled back. You can resynchronize these jobs with the BPEL instances residing in the wait activity/onAlarm branch in the database.

    • A utility for searching for a specific message failure by specifying criteria and clicking Search. Click the Help icon for details.

      You can enter the execution context ID (ECID) value in the ECID field. The ECID value enables you to track a message flow that crosses instances of different composite applications. If there are BPEL process messages requiring recovery and the AuditConfig property in the System MBean Browser is set to All (the default value), the following message is displayed in the Trace table of the Flow Trace page:

      BPEL Message Recovery Required
      

      Clicking Show Details or the recovery icon that appears next to this message displays a Warning dialog with information about the number of invoke, callback, and activity recoverable message types and the ECID value. You can copy the ECID value from the Warning dialog, paste it into the ECID field, and select the recoverable message type from the Type list as part of creating your search criteria on the Recovery page.

      For more information, see Section 12.1, "Viewing the Audit Trail and Process Flow of a BPEL Process Service Component."

      Note:

      Oracle recommends that you add an index on the DLV_MESSAGE.ECID column of the DLV_MESSAGE table to improve SQL query performance when searching messages for a specific ECID value. This is because if there are too many entries in the DLV_MESSAGE table, the search query may be slow and may also overload the database. For information on adding an index, see Chapter "Creating Indexes" of the Oracle Database Administrator's Guide.
    • Message failures in the service engine, including the conversation ID, whether you can recover from the message failure, the service component and composite application in which the failure occurred, and the time at which the fault occurred. Depending on the state, you can recover these messages immediately, cancel these messages, or reset these messages for automatic recovery.

    Description of bpel_se_recov.gif follows
    Description of the illustration bpel_se_recov.gif

    Notes:

    • You can recover callback messages in resolved and undelivered states. These messages can be displayed for recovery when you execute search criteria in which you select Callback from the Type list and either Resolved or Undelivered from the Message State list. When a callback message first enters the BPEL process service engine, its state is undelivered. When this message is resolved to the target BPEL process instance either through matching a conversation ID or a correlation, the state is switched to resolved. In both of these states, the messages have not yet been consumed. Messages in these two states can be recovered (redelivered into the BPEL process service engine for consumption). In other situations, the callback messages can become stranded in both of these states. Messages in these states can also be recovered. However, there is no guarantee that stranded callback messages always remain in an undelivered state.

    • If you select Invoke from the Type list and Undelivered from the Message State list, and then click Recover, a recovery is performed. However, the Last Modified Date column remains empty for this instance on the Dashboard page of the Oracle BPEL Process Manager service component or service engine. This is the expected behavior. The last modified date is not displayed because the initial Oracle BPEL Process Manager instance (for example, bpel:70004) is created by the first invocation (that is, it is created, but has not yet been modified). The recovery of the undelivered invocation message always creates a new instance (for example, bpel:70005). The previously created instance (bpel:70004) is not used and remains permanently in the same status (the Last Modified Date column is empty). This information is provided for auditing purposes only.

    • The Message States list is applicable only to callback and invoke message type recovery, and not for activity message type recovery.

  3. Select a fault in the table.

  4. Select one of the following options:

    Action Description
    Recover Retries the message in which the fault occurred.

    If you select messages in the exhausted state and click this button, an attempt is made to recover them immediately. Should this recovery attempt also fail, the message is returned to the exhausted state. You must then select the message and click Reset to return the message to the automatic recovery queue.

    If an asynchronous BPEL process encounters a transaction rollback scenario because of any underlying exception error, it rolls back to the last dehydration activity. If this is a new instance, and a receive activity was the first dehydration activity, the BPEL process service engine creates a recoverable invoke. When you click Recover to recover the invoke, the service engine creates a new instance. This instance may run to completion with no exception error. However, you continue to see the older instance identified as faulted.

    Mark Cancelled Marks the message so it is never delivered. If you select messages in the exhausted state and click this button, recovery is never attempted on them.
    Reset Select to reset exhausted messages to the undelivered state. This returns the message to the automatic recovery queue. The messages that are displayed in the exhausted state disappear from the messages table. If you select Undelivered from the Message State list and click Search, these messages are displayed. Note that callback messages in the exhausted state can also be reset to the resolved state and still remain recoverable.

    Once a message is submitted for recovery, the BPEL process service engine may take time to complete the action. This typically takes less than several seconds. During this time, the message remains visible in the Recovery page. Duplicate attempts to recover the same message in that period are ignored. Refresh the page every few seconds to receive the latest recovery status.

    Note:

    If you define a fault policy in a BPEL process with an ora-retry action and a fault occurs, the BPEL process attempts to recover from the fault the number of times you specified with the retryCount parameter. After this period, the process continues to be in a running state. The status of an activity in the process that has not completed (such as an invoke or receive) shows as pending a manual recovery. This is the expected behavior.

    For information about configuring the maximum number of times to attempt an invoke and callback message recovery, see Section 11.4, "Configuring Automatic Recovery Attempts for Invoke and Callback Messages."