13 Troubleshoot Oracle SOA Suite

This section describes common problems that might be encountered when using Oracle SOA Suite and explains how to solve them.

The following topics are discussed:

Some procedures in this section reference content in the Oracle Fusion Middleware guides. These guides describe using Fusion Middleware Control. These procedures also apply to Fusion Applications Control.

To gain insight into the log details generated by Oracle Fusion applications, see Prepare to Troubleshoot Using Incidents, Logs, QuickTrace, and Diagnostic Tests. Also, review the Fusion Middleware Error Messages for information about the error messages that may be encountered.

Some parts of this section describe how to set properties in the System MBean Browser of Fusion Applications Control. Some MBean properties are applicable to Oracle WebLogic Server and others are applicable to the SOA Infrastructure.
  • Oracle WebLogic Server Mbeans are properties that affect the Java Virtual Machine (JVM) server level process that runs on the operating system. Example properties include the port on which the server is listening, and so on. These properties are agnostic to the type of application running on that server.

  • SOA Infrastructure-level Mbeans are properties that impact the SOA Infrastructure application running on the same Oracle WebLogic Server. Example properties include audit levels, transaction retries, and so on.

13.1 Introduction to Oracle SOA Suite

Oracle SOA Suite offers developers drag and drop composition and revision of business processes, resulting in reuse, faster application development, assembly, and solution delivery. The event delivery network of Oracle SOA Suite unifies business events and services in a single declarative environment. The components of the suite benefit from common capabilities that include consistent tooling, a single deployment and management model, end-to-end security, and unified metadata management.

Oracle Fusion Applications are built using SOA composite applications to simplify the implementation of business logic and connection to external services, applications, and technologies.

13.2 Get Started with Troubleshooting and Logging Basics for Oracle SOA Suite

In the majority of cases in which an Oracle SOA Suite error occurs with Distributed Order Orchestration (DOO), a message is logged that is displayed in the DOO user interface.

SOA troubleshooting must be performed when the Oracle Fusion application transaction flow:

  • Has an error in SOA (or check if it is a SOA-related error)

  • Has not completed and is taking longer than it should and it has been identified as stuck in SOA (or check if it is stuck in SOA)

  • Is not working as expected, and the wrong data is passed

The recommended approach to troubleshooting SOA issues is as follows:

  1. Check the server and composite status log in Oracle WebLogic Server Administration Console and check to see if the SOA server is up and running successfully (that is, not in a failed state).

    1. Log in to Oracle WebLogic Server Administration Console.

    2. In the Domain Structure, click Deployments.

    3. In the Name column of the Deployments section, find soa-infra.

    4. Ensure the State column is set to Active and the Health column is set to OK.

    5. Click soa-infra, and then Monitoring tab.

    6. Expand to ensure that all components have Health set to OK.

    7. Note the server name on which SOA is deployed.

    8. Go to Domain Structure, click Environment, and then Servers. Verify that the State column is set to RUNNING and the Health column is set to OK.

    9. Note the Listen Port column value as this is the SOA runtime port.

  2. Check that the SOA platform status is ready.
    1. Log into EM.

    2. Expand SOA and click soainfra.

    3. Make sure SOA Runtime Health is showing as up as Initialized Successfully.

    4. Click Deployed Composites tab and make sure status of composites are up (Green up arrow).

  3. Check to see if any Oracle Fusion application incident was created for the problem encountered.

  4. Check whether the event was delivered to the SOA cluster by checking the log messages in Fusion Applications Control.

    This requires the oracle.integration.platform.blocks.event logger to be set to TRACE:32 (FINEST). There are potentially many types of exceptions that can appear in the log messages on the client side that raised the event. For example:

    • If a Java class is not in the class path, then a ClassNotFoundException may appear.

    • If the Java Naming and Directory Interface (JNDI) for the context or connection factory is not configured properly, then a NamingException or FabricException may appear.

    • If the event payload XML created is invalid or contains invalid characters, it is possible to receive a FabricException indicating that enqueueing of the event fails at the PL/SQL API with invalid characters, and so on.

    For information about enabling this log and troubleshooting business events, see Business Event Subscriptions Are Not Firing.

  5. Check the composite instance flow. If the event was fired, then find the composite instance based on the application data.

    See Correlate Application Issues to the SOA Composite IDs for primary key mapping to the composite instance ID.

  6. Review the composite instance flow and fault details. If the instance is in error and it is recoverable, attempt recovery using the Recovery tab of the BPEL process service engine in Fusion Applications Control.

  7. View the logs.

    If the problem still cannot be solved, increase the log level of the system to debug the transactions. To simplify troubleshooting, it is recommended to enable the following parent loggers at the TRACE:32 (FINEST) level in Fusion Applications Control:

    • oracle.soa

    • oracle.fabric

    • oracle.integration

    The oracle.wsm logger can remain set to the ERROR level where it logs the required error messages. The oracle.apps logger should be set to ALL. To change logger levels, perform the following steps:

    1. Go to Fusion Applications Control.

    2. In the navigation pane, select WebLogic Domain.

    3. Right-click a Managed Server from within the domain (each server's log levels can be independently set).

    4. Choose Logs, and then Log Configuration.

    5. In the Logger Name column, expand the oracle runtime loggers to display loggers such as oracle.soa.

    6. Change the logging level to TRACE:32. The change should take effect within a few minutes.

      Figure 13-1 Log Levels Tab



      Note that in a production system, setting the trace at a fine-grained level can result in a large amount of output that must be diagnosed. It is possible to alternately use selective tracing that provides a way to get a detailed, on-disk trace selectively (for example, by user name, thereby eliminating trace output for other users).

    7. To activate selective tracing, right-click the domain under WebLogic Domain, choose Logs, and then Selective Tracing.

      Note that Selecting Tracing does not display as an option when right-clicking an Administration Server or Managed Server and choose Logs.

    8. From the Option Name list, choose the type of selective trace (for example, based on user name), and start the trace.

    9. When the problem has been reproduced, disable the trace and view the output to narrow down the issue.

    10. Review the error logs (from Fusion Applications Control) for more information on the error.

      Cross layer, server, and family functionality can be correlated through the execution context ID (ECID) (for example, look up the composite instance for a given expense report by correlating all the log entries with the ECID associated with that expense report transaction).

  8. Check for incorrect configurations and any networking issues, especially around potentially incorrect settings of the following:

    • External load balancers

    • Oracle HTTP Server

    • Virtual host/IP address

    • Oracle WebLogic Server front-end URL

    • SSL host name verification settings

  9. Verify that custom applications have been deployed on the correct servers using the correct configuration plan during deployment.

  10. Contact Oracle Support Services.

    If the error still cannot be resolved, file a ticket with Oracle Support Services and provide the logs and information shown in Table 13-1.

    Table 13-1 SOA Log Information for Oracle Support Services

    Log Description

    Application diagnostic log

    View the following log:

    $DOMAIN_HOME/servers/domain_name/logs/apps/server_name-diagnostic.log
    

    Server diagnostic log

    View the following log:

    $DOMAIN_HOME/servers/server_name/logs/server_name-diagnostic.log
    

    For example, soa_server1-diagnostic.log, if server_name is soa_server1.

    This is where the log output is available. By default, only the last 100 MB of the diagnostic logs are retained.

    Server log

    View the following log:

    server_name.log
    

    For example, soa_server1.log, if server_name is soa_server1.

    Server console output

    <stdout> is also helpful, especially for deployment or patching issues.

    Server thread dump

    Enter the following at the operating system command prompt:

    kill -3 managed_server_process_ID
    

    Oracle WebLogic Server Administration Console can be also used.

    1. In the navigation tree of Oracle WebLogic Server Administration Console, select Environment then, Servers.

    2. In the table, select the server.

    3. Select the Monitoring tab.

    4. Select the Threads tab.

    5. Click Dump Thread Stacks.

    The output is in the console logs.

    OPatch thread dump

    kill -3 opatch_client_process_ID
    

    OWSM message log

    The following log captures all SOAP messages on the wire.

    $DOMAIN_HOME/servers/server_name/logs/owsm/msglogging/diagnostic.log
    

    This log is not enabled by default. To enable this log:

    1. Go to Fusion Applications Control then, Weblogic Domain then, Web Services and then, Policies.

    2. Choose the security level for which to enable logging.

    3. Edit the policy to enable the log assertion.

  11. Send Oracle Support Services information about the error packaged with Automatic Diagnostic Repository-based incident processing.

The following documentation provides additional information about the topics discussed in this section:

  • For information about how to investigate, report, and, in some cases, resolve a problem, see section Investigating, Reporting, and Solving a Problem in Administering Oracle Fusion Middleware.

  • For information about correlating all log entries with the ECID, see section Correlating Messages Across Log Files and Components in Administering Oracle Fusion Middleware.

  • For information about configuration plans, see section How to Use Configuration Plans to Customize SOA Composite Applications for the Target Environment in Developing SOA Applications with Oracle SOA Suite.

  • For information about setting logging levels for SOA components, see section Setting Logging Levels for Troubleshooting in the Administering Oracle SOA Suite and Oracle Business Process Management Suite.

  • For information about incorrect configurations and any networking issues see the Fusion Middleware Enterprise Deployment Guide for Oracle SOA Suite.

  • For information about selective tracing, see section Configuring and Using Selective Tracing in Administering Oracle Fusion Middleware.

  • For information about Oracle Fusion application incident processing, see Create Incidents Manually.

  • For information about the list of loggers and log levels, see section Troubleshooting Oracle SOA Suite and Oracle BPM Suite appendix in Administering Oracle SOA Suite and Oracle Business Process Management Suite.

13.3 Runtime Diagnostics

This section contains the following topics that describe common problems and solutions for Oracle SOA Suite runtime:

13.3.1 Correlate Application Issues to the SOA Composite IDs

Problem

How does an administrator translate an issue faced in the application to a composite instance in Fusion Applications Control for debugging purposes? For example, a purchase order transaction is stuck in processing for days and the administrator wants to see what the composite instance is doing. How does the administrator map the purchase order ID to the composite instance ID?

Solution

Oracle Fusion Applications modules write context-specific and business user-identifiable keys to the log files. This includes primary keys for any of the logical entities processed by the composite. After the primary key and other context information is included in the log messages, the administrator can search for that context (for example, purchase order ID) in the log file and derive the composite instance ID and ECID. From there, they can diagnose the issue in Fusion Applications Control. Usually, the primary key information is written to the logs in case of any error/incident/message level.

Cross layer, server, and family functionality are all designed to be correlated through the ECID. For example, it is possible to look up the composite instance for a given expense report by correlating all the log entries with the ECID associated with that expense report transaction.

During a specific time interval, several hundred instances may be created. This is a fairly common use case. If there is no error, or if the application has not implemented a BPEL process with sensor logging (should not be common), then instead of searching for the primary key, perform one of the following tasks:

  • Try using the approximate timestamp of the transaction.

  • Inspect the input payload of the audit trail flow (until the right one is found) to identify the right composite.

Any extensions/customizations are also expected to log the same context-specific keys. AF_LOG and AF_LOG_MODULE can be set properly (such as setting log channel levels) to specify finer-grained logging from a particular family/logical business area (LBA)/composite.

13.3.2 Business Event Subscriptions Are Not Firing

Problem

When a business event is published, the business event subscription defined in the composite does not fire and a composite instance is not created. This can occur, for example, with an ADF application invoking a SOA composite.

Solution

To resolve this problem.

  1. Enable EDN logging in Fusion Applications Control. The following server loggers specific to EDN are available for selection:

    • oracle.integration.platform.blocks.event

    • oracle.integration.platform.blocks.event.saq

    • oracle.integration.platform.blocks.event.jms

      which only appears if EDN is running in EDN-JMS mode instead of the default EDN-DB mode.

    The server loggers can be set to one of the following levels:

    • TRACE:1 (FINE)

    • TRACE:16 (FINER)

    • TRACE:32 (FINEST)

    Alternately selective tracing can be used to get detailed, on-disk trace selectively (for example, by user name, thereby eliminating trace output for other users). See Get Started with Troubleshooting and Logging Basics for Oracle SOA Suite for details.

    Detailed logging goes into SOA server's diagnostic.log file configured in Fusion Applications Control. To set the log level for the loggers:

    1. Go to the navigation pane.

    2. Right-click soa-infra.

    3. Choose Logs, and then Log Configuration.

    4. Expand oracle.integration, oracle.integration.platform, oracle.integration.platform.blocks, and then oracle.integration.platform.blocks.event.

    5. Set the loggers described in step 1 to an appropriate logging level.

    The following sample shows a portion of a server log file:

    [2011-03-22T11:52:37.038-07:00] [soa_server1] [TRACE] [SOA-31010]
    [oracle.integration.platform.blocks.event.saq] [tid:
    weblogic.work.j2ee.J2EEWorkManager$WorkWithListener@96bab0] [userId:
    <anonymous>] [ecid:
    5fc0ca821d51e919:3d214296:12ebaa2c996:-8000-00000000000c2b83,0:1:100000140]
    [SRC_CLASS:
    oracle.integration.platform.blocks.event.saq.SAQBusinessEventBusMessages]
    [APP: soa-infra] [composite_name: MediatorPubSub] [component_name:
    PublishEvent] [component_instance_id: 8E0411C054B511E0AF455DABE1395E7B] [SRC_
    METHOD: fineDequeuedEvent] [composite_instance_id: 90087] Dequeued event,
    Subject: null [source type "J"]:[[
        <business-event
    xmlns:ns="http://schemas.oracle.com/events/edl/MyEventDefn"
    xmlns="http://oracle.com/fabric/businessEvent">
          <name>ns:MyEvent</name>
          <id>a7ae9d28-9530-4049-8385-e0ebfb0eea50</id>
    
    <source>default/MediatorPubSub!2.0*soa_
    58454bff-3b36-4e29-a883-949085d85719/default/MediatorPubSub!2.0*soa_
    58454bff-3b36-4e29-a883-949085d85719/PublishEvent</source>
        <tracking>
          <ecid>5fc0ca821d51e919:3d214296:12ebaa2c996:-8000-00000000000c2b83</ecid>
          <compositeInstanceId>90087</compositeInstanceId>
    <parentComponentInstanceId>mediator:8E0411C054B511E0AF455DABE1395E7B</parentCom
    ponentInstanceId>
        </tracking>
          <content>
             <inp1:singleString
    xmlns:inp1="http://xmlns.oracle.com/singleString">PO123</inp1:singleString>
          </content>
    </business-event>
         
       ]]
       [2011-03-22T11:52:37.042-07:00] [soa_server1] [TRACE] [SOA-31011]
    [oracle.integration.platform.blocks.event.saq] [tid:
    weblogic.work.j2ee.J2EEWorkManager$WorkWithListener@96bab0] [userId:
    <anonymous>] [ecid:
    5fc0ca821d51e919:3d214296:12ebaa2c996:-8000-00000000000c2b83,0:1:100000140]
    [SRC_CLASS:
    oracle.integration.platform.blocks.event.saq.SAQBusinessEventBusMessages]
    [APP: soa-infra] [composite_name: MediatorPubSub] [component_name:
    PublishEvent] [component_instance_id: 8E0411C054B511E0AF455DABE1395E7B] [SRC_
    METHOD: fineFilterResults] [composite_instance_id: 90087] Filter [XPath Filter:
    /be:business-event/be:content/ns1:singleString = 'PO123'] for subscriber
    "default/MediatorPubSub!2.0*soa_
    58454bff-3b36-4e29-a883-949085d85719/SubsEvent" returned true
    . . .
    . . .
    
  2. Check whether bad composites exist in the SOA domain that slow down the overall EDN event delivery.

    EDN internally uses two advanced queuing (AQ) queues in a serial processing fashion for all business events. One or more bad SOA composite applications that fail to consume certain types of events can slow down EDN delivery of all other event types and cause an event backlog in the AQ queues.

    1. Check if there are repeated errors from bad SOA composite applications in the SOA server log with EDN logging enabled. Even if the errors are in completely separate SOA composite applications that are unrelated to the event types of interest, it can delay the overall delivery of events of interest to the target SOA composite applications.

    2. Check the event backlog count as detailed in Step 2.d (events are stuck in advanced queue). Check backlog event counts and subscriber details by navigating to the following URL: http://host_name:port/soa-infra/events/edn-db-backlog.

      If bad composites are found in Step 2.a and large numbers of backlogged events occur in Step 2.b, then proceed to 2.c.

    3. Stop bad composites identified in Step 2.a. This can be achieved from Oracle Enterprise Manager Fusion Middleware Control or the WLST command line utility.

    4. Temporarily increase the number of EDN threads to a larger number, (for example, from 3 to 5 or 7) to clear up the backlogged events faster.

      To change the number of EDN threads through the configuration of the EDNConfig MBean in Oracle Enterprise Manager Fusion Middleware Control:

      1. Go to the navigation pane.

      2. Right-click soa-infra.

      3. Select SOA Infrastructure then Administration and then, System MBean Browser.

      4. Expand Application Defined MBeans, choose oracle.as.soainfra.config, and then Server: soa_server-x , EDNConfig, and then edn.

      5. Change the value for the NumberOfThreads attribute, and click Apply.

        If backlog event processing is not important, the backed up events can be purged directly in AQ. The purge script is as follows:

        DECLARE
          purge_options dbms_aqadm.aq$_purge_options_t;
        BEGIN
          purge_options.block := FALSE;
          DBMS_AQADM.PURGE_QUEUE_TABLE(
            queue_table     => '&edn_user..edn_event_queue_table',
            purge_condition => NULL,
            purge_options   => purge_options);
          DBMS_AQADM.PURGE_QUEUE_TABLE(
            queue_table     => '&edn_user..edn_oaoo_delivery_table',
            purge_condition => NULL,
            purge_options   => purge_options);
        END;
        /
        commit;
        
    5. Periodically monitor the EDN backlog count (see Step 2.b) to confirm that it is being reduced. If the clear-up rate is very slow, the EDN thread number can be further increased (see Step 2.d).

    6. Continue to monitor the EDN backlog count over a period of time. Also monitor the recent instances and faults in Oracle Enterprise Manager Fusion Middleware Control to see if composite instances are being created or new faults are showing up both across the board (that is, at SOA Infrastructure level) and for the composite of interest.

    7. Once the backlog is cleared up, revert the number of EDN threads to the previous setting or an appropriate number.

    8. Publish a business event of interest and verify that the target composite is triggered with expected instance creations.

  3. Check whether the event publication is being delivered to the SOA cluster.

    One way to do this is to use the log messages in Fusion Applications Control. The log messages include information about the incoming events and the event subject and payload. Before the event information can be viewed in the log messages, first the oracle.integration.platform.blocks.event logger must be set to TRACE:32 (FINEST), as described in step 1, and then raise the event again. To search for the event-related messages:

    1. Right-click soa-infra, choose Logs, and then View Log Messages.

    2. Specify the date range.

    3. In the Message Types section, select the Notification and Trace checkboxes.

    4. To search for all events delivered to the SOA cluster, specify Message contains Dequeued event as the search criteria, and click Search.

      The subject associated with the event is displayed in the Message field and the business event namespace and local name, payload, ECID, and message details are displayed in the Supplemental Detail field.

    5. To search for a particular event by event name, click Add Fields.

    6. Select Supplemental Detail, and click Add.

    7. Specify that Supplemental Detail contains either the event name space or event local name as the search criteria.

    8. Click Search.

    9. Use additional information such as the time interval or data in the payload to identify the specific event message of interest.

      The log message is generally a good way to identify whether the issue is with the publisher or subscriber. For example, if the subject is missing or the fmw-context is missing, it typically means there is an issue with the publisher. If the information reported in the log message is correct, then it typically means there is a problem with the subscriber.

      If the Dequeued event log message is seen for the business event, then go to step 10.

      If the Dequeued event log message is not seen, there may be issues with the following:

      For This Issue... See...

      EDN is in paused mode and temporarily stopped delivering events to its subscribers.

      Step 4

      Events are stuck in the advanced queue.

      Step 5

      More than one SOA cluster is pointing to the same advanced queue.

      Step 6

      There are internal SOA issues in the database layer.

      Step 7

      The data source is configured to point to the wrong SOAINFRA schema.

      Step 8

      There are issues with the Java, SOA, or PL/SQL code raising the event.

      Step 9

  4. When patches are applied to the SOA cluster, EDN is automatically placed in paused mode to prevent delivery of events during patching. After patching is complete, EDN exits paused mode and resumes event processing. When a patch fails, EDN may remain in paused mode to prevent event subscriptions from firing after the failure. Follow these steps to identify if EDN is in paused mode, and restart it:

    1. From the navigation pane, expand SOA and right-click soa-infra.

    2. Choose Administration then, System MBean Browser.

    3. Go to Application Defined MBeans, choose oracle.as.soainfra.config, and then Server: SOA_cluster_name, EDNConfig, and then edn.

    4. In the Attributes column, locate the Paused property.

    5. If Paused is set to true, the listener threads are decreased to zero, which temporarily stops event delivery.

    6. To restart event delivery, select false.

    7. Click Apply.

  5. At times, the message may be stuck in the advanced queue in different stages of delivery. Check the count of (potentially stuck) events currently in the following queue tables:

    • EDN_EVENT_QUEUE_TABLE: Every event published is temporarily enqueued into this table (for edn_event_queue).

    • EDN_OAOO_DELIVERY_TABLE: Only events with a one-and-only-one (OAOO) delivery target(s) are temporarily enqueued into this table (for edn_oaoo_queue).

    The count can also be checked in the edn-db-log. The total number of messages in the EDN_EVENT_QUEUE_TABLE and EDN_OAOO_DELIVERY_TABLE are displayed at the top of the page.

    1. Navigate to the following URL to see the total number of messages at the top of the page:

      http://host_name:port/soa-infra/events/edn-db-log
      

      There is no need to enable the edn-db-log to view these messages.

  6. There may be more than one SOA cluster pointing to the same SOAINFRA schema. This is highly unlikely in a provisioned environment, but for environments that are created by developers, it may be an issue. In this case, the expected SOA runtime environment may not be receiving the events properly. It is expected that only one SOA runtime environment listens for business events on a SOAINFRA schema. Use the following query to identify the list of SOA runtime environments subscribing to business events from a SOAINFRA schema. Have only the required SOA runtime environment up, which points to the SOAINFRA schema, and shut down the others.

    1. Navigate to the edn-db-log to see log messages that display each SOA cluster that is connecting to the EDN advanced queue:

      http://host_name:port/soa-infra/events/edn-db-log
      

      The edn-db-log do not need to be enabled to view these messages. The messages continue to be displayed in the edn-db-log until the next time the Clear link is clicked on it. Here is a sample message seen in the edn-db-log:

      Starting EDN bus. Timestamp=Wed Feb 23 10:11:26 PST 2011.
          Parameters: platform="weblogic", cluster="", server="soa_server1",
          domain="fusion_domain", admin server="AdminServer", host="adc2180440".
      
    2. Alternatively, the following select statement can be run against the SOAINFRA schema. For example, use FIN_FUSION_SOAINFRA for the SOA cluster in the Financials domain.

      select * from V$SESSION where username like 'family_FUSION_SOAINFRA';
      
  7. Verify that the event is properly being enqueued and dequeued by the underlying EDN PL/SQL procedures. This can be done by using the edn-db-log that displays all events, including their name space, names, payload, and subject, which are enqueued and dequeued by the PL/SQL EDN procedures.

    Before proceeding, consider the following:
    • The administrator privilege must be active in order to enable/disable the edn-db-log.

    • The edn-db-log must always be disabled after debugging to disable logging. This prevents excessive database growth in the EDN database log table. If the edn-db-log remains enabled, then debugging messages related to events that are published/enqueued into the database and subscribed to/dequeued from the database continue to be persisted into certain EDN database log tables. This causes the table to grow indefinitely.

    1. Navigate to the following URL:

      http://host_name:port/soa-infra/events/edn-db-log
      
    2. Click the Enable link.

    3. Raise the business event again.

    4. Click the Refresh link.

  8. The EDNSource and EDNLocalTxSource data sources may be pointing to a different database than the EDNDataSource and EDNLocalTxDataSource data source connections of the SOA server. Ensure that these four data source connections on ADF and the SOA server are pointing to the same database schema.

    Check or set the data sources in the Oracle WebLogic Server Administration Console:

    1. In the Domain Structure, select Services, and then Data Sources.

    2. In the Name column of the table, select data_source_name.

      The connection pool and driver name are only available for generic data sources, and not for multidata sources.

    3. Select the Connection Pool tab.

    4. In the Driver Class Name field, set the data source.

  9. Check the log files in Fusion Applications Control for the code that raises the event to see if there were failures in raising the event or failures in the code that prevented the event from being raised.

    For ADF, check the log files. Look for the ECID corresponding to the business key (for example, purchase order).

    To enable event-related log messages in the server running the ADF application that raises the event, set the log level for the oracle.integration.platform.blocks.event logger to TRACE:32 on that server.

  10. By the time this step is reached, it has been confirmed that the business event is properly delivered to the SOA cluster. To identify whether any composite instances were created, perform the following steps:

    1. Because the ECID is different for a subscription with a guaranteed consistency level and a subscription with an OAOO level defined for the same event, the consistency level for the event subscription must be first identified. To do this, right click soa-infra, choose Business Events, and click the Subscriptions tab. Find the composite that subscribes to the business event in the Components Subscriptions table and get the value from the Consistency Level column.

    2. If the value is set to Guaranteed, then get the ECID from the Dequeued event log message.

    3. If the value is set to One And Only One, then search for the log message with Message contains Dequeued OAOO event as criteria and use the ECID from that message.

    4. Locate the composite instance by right-clicking soa-infra, selecting the Instances tab, entering the ECID in the search criteria, and clicking Search.

    If composite instances are seen, then continue to step 13.

    If composite instances are not seen, this may be due to the following issues:

    • There are issues with the subscription logic in the composite, possibly a mismatch in the event namespace or event name or error in the filter logic. See step 11.

    • There may be a SOA issue. See Step 12.

  11. If a filter is being used, there may be an issue with the filter logic. Use Fusion Applications Control to review the event subscriptions and filters defined for the composite and the payload content.

    1. Log in to Fusion Applications Control in the domain where the composite with the subscription is deployed.

    2. Navigate to domain_name then,SOA.

    3. Right-click soa-infra (SOA_cluster_name), and choose Business Events.

    4. Click the Subscriptions tab.

    5. Review the information in the Event Name, Namespace, and XPath Filter columns of the Component Subscriptions table.

    Alternatively, the SOA server diagnostic.log file can be also checked for filter-related logging. The log level must be set to at least TRACE:1 (FINE) for the oracle.integration.platform.blocks.event.saq logger. The following is an example log message that has the following statement pattern: Filter [XPath Filter: ….] for subscriber "…" returned true/false.

    [2011-03-22T11:52:36.976-07:00] [soa_server1] [TRACE] [SOA-31011]
    [oracle.integration.platform.blocks.event.saq] [tid:
    [ACTIVE].ExecuteThread: '2' for queue: 'weblogic.kernel.Default
    (self-tuning)'] [userId: <anonymous>] [ecid:
    5fc0ca821d51e919:3d214296:12ebaa2c996:-8000-00000000000c2b83,0:1] [SRC_
    CLASS:
    oracle.integration.platform.blocks.event.saq.SAQBusinessEventBusMessages]
    [WEBSERVICE_PORT.name: execute_pt] [APP: soa-infra] [composite_name:
    MediatorPubSub] [component_name: PublishEvent] [component_instance_id:
    8E0411C054B511E0AF455DABE1395E7B] [J2EE_MODULE.name: fabric] [SRC_METHOD:
    fineFilterResults] [WEBSERVICE.name: PublishEvent_ep] [J2EE_APP.name:
    soa-infra] [composite_instance_id: 90087] Filter [XPath Filter:
    /be:business-event/be:content/ns1:singleString = 'PO123'] for subscriber
    "default/MediatorPubSub!2.0*soa_
    58454bff-3b36-4e29-a883-949085d85719/SubsEvent" returned true
    
  12. Check the SOA diagnostic log for stack traces related to the issue. For example, the SOA instance may have been rolled back due to an error.

  13. By the time this step is reached, it has been confirmed that the business event has been delivered to the SOA cluster and a composite instance has been created. However, issues with the composite components may be encountered:

    • If a composite instance is seen, but not a BPEL instance, check if the BPEL process can be executed independently by a client, as opposed to the event subscription.

    • If a composite instance is seen, but not a BPEL instance, this symptom may indicate a stuck thread on a service call. In this scenario, the BPEL process service engine is hung on a service call and has not created the audit trail. To verify the behavior, take three thread dumps approximately 30 seconds apart on all servers in the cluster. See Table 13-1 for more information on taking thread dumps. If the same thread shows it is stuck after the three thread dumps (that is, after 1.5 minutes), the thread is stuck. In this case, wait for the call to time out, which then enables the recovery of the instance.

    • If the audit trail shows the following message:

      Invoked 1-way operation "initiate" on target service service_name
      

      There may be an issue with an incorrect driver type for the data sources. Note that the driver XA configuration should already be created by the SOA/provisioning template. If the driver type is changed or is not set properly, routing from Oracle Mediator does not occur. Instead, it tries to route and fails several times. This can be confirmed by instances in Fusion Applications Control. As per Oracle Fusion Applications standards, the SOADataSource and EDNDataSource data sources should use the XA driver type; that is:

      • EDNDataSource: oracle.jdbc.xa.client.OracleXADataSource

      • SOADataSource: oracle.jdbc.xa.client.OracleXADataSource

The following documentation provides additional information about the topics discussed in this section:

  • For more information about setting logging levels for Oracle SOA Suite, see section Setting Logging Levels for Troubleshooting in the Administering Oracle SOA Suite and Oracle Business Process Management Suite.

  • For more information about data sources, see section Configuring the SOA Infrastructure in the Administering Oracle SOA Suite and Oracle Business Process Management Suite.

13.3.3 Long Delays After an Event is Published and Before a Subscriber is Triggered

Problem

After a business event is published, there is a long delay (minutes, hours, or even days) before the event subscriber is triggered and its composite instance is created.

This can occur, for example, with an ADF application invoking a SOA composite.

Solution

To resolve this problem, perform the following steps.

  1. Enable EDN logging in Fusion Applications Control. The following server loggers specific to EDN are available for selection:

    • oracle.integration.platform.blocks.event

    • oracle.integration.platform.blocks.event.saq

    • oracle.integration.platform.blocks.event.jms

    Note that oracle.integration.platform.blocks.event.jms only appears if EDN is running in EDN-JMS mode, instead of the default EDN-DB mode.

  2. Set the server loggers to one of the following levels:

    • TRACE:1 (FINE)

    • TRACE:16 (FINER)

    • TRACE:32 (FINEST)

    Selective tracing can be alternately used to selectively get a detailed, on-disk trace (for example, by user name, thereby eliminating trace output for other users). See Get Started with Troubleshooting and Logging Basics for Oracle SOA Suite for details.

    Detailed logging goes into the server's diagnostic.log file configured in Fusion Applications Control.

  3. Set the log level for the loggers.

    1. Go to the navigation pane.

    2. Right-click soa-infra.

    3. Select Logs, and then Log Configuration.

    4. Expand oracle.integration, choose oracle.integration.platform and oracle.integration.platform.blocks, and then oracle.integration.platform.blocks.event.

    5. Set the loggers described in step 1 to an appropriate logging level.

      The following sample shows a portion of a server log file:

      [2011-03-22T11:52:37.038-07:00] [soa_server1] [TRACE] [SOA-31010]
      [oracle.integration.platform.blocks.event.saq] [tid:
      weblogic.work.j2ee.J2EEWorkManager$WorkWithListener@96bab0] [userId:
      <anonymous>] [ecid:
      5fc0ca821d51e919:3d214296:12ebaa2c996:-8000-00000000000c2b83,0:1:100000140]
      [SRC_CLASS:
      oracle.integration.platform.blocks.event.saq.SAQBusinessEventBusMessages]
      [APP: soa-infra] [composite_name: MediatorPubSub] [component_name:
      PublishEvent] [component_instance_id: 8E0411C054B511E0AF455DABE1395E7B]
       [SRC_
      METHOD: fineDequeuedEvent] [composite_instance_id: 90087] Dequeued event,
      Subject: null [source type "J"]:[[
          <business-event
      xmlns:ns="http://schemas.oracle.com/events/edl/MyEventDefn"
      xmlns="http://oracle.com/fabric/businessEvent">
            <name>ns:MyEvent</name>
            <id>a7ae9d28-9530-4049-8385-e0ebfb0eea50</id>
      <source>default/MediatorPubSub!2.0*soa_
      58454bff-3b36-4e29-a883-949085d85719/default/MediatorPubSub!2.0*soa_
      58454bff-3b36-4e29-a883-949085d85719/PublishEvent</source>
          <tracking>
      <ecid>5fc0ca821d51e919:3d214296:12ebaa2c996:-8000-00000000000c2b83</ecid>
            <compositeInstanceId>90087</compositeInstanceId>
      <parentComponentInstanceId>mediator:8E0411C054B511E0AF455DABE1395E7B</paren
      tCom
      ponentInstanceId>
          </tracking>
            <content>
               <inp1:singleString
      xmlns:inp1="http://xmlns.oracle.com/singleString">PO123</inp1:singleString>
            </content>
      </business-event>
         ]]
         [2011-03-22T11:52:37.042-07:00] [soa_server1] [TRACE] [SOA-31011]
      [oracle.integration.platform.blocks.event.saq] [tid:
      weblogic.work.j2ee.J2EEWorkManager$WorkWithListener@96bab0] [userId:
      <anonymous>] [ecid:
      5fc0ca821d51e919:3d214296:12ebaa2c996:-8000-00000000000c2b83,0:1:100000140]
      [SRC_CLASS:
      oracle.integration.platform.blocks.event.saq.SAQBusinessEventBusMessages]
      [APP: soa-infra] [composite_name: MediatorPubSub] [component_name:
      PublishEvent] [component_instance_id: 8E0411C054B511E0AF455DABE1395E7B]
       [SRC_
      METHOD: fineFilterResults] [composite_instance_id: 90087] Filter [XPath
       Filter:
      /be:business-event/be:content/ns1:singleString = 'PO123'] for subscriber
      "default/MediatorPubSub!2.0*soa_
      58454bff-3b36-4e29-a883-949085d85719/SubsEvent" returned true
      . . .
      . . .
      
  4. Find out when the event is published, dequeued, and sent to the subscriber by EDN.

    Use the Java logging in step 1 to identify the timestamps of event publishing, dequeuing, and sending to the subscriber. From these timestamps, it can be identified, if the delay is on the publishing side or the EDN delivery side.

    To search for the event-related messages in the log messages.

    1. Right-click soa-infra.

    2. Select Logs then, View Log Messages.

    3. Specify the date range.

    4. To search for all events delivered to the SOA cluster, specify Message contains Dequeued event as the search criteria, and click Search.

      The subject associated with the event is displayed in the Message field and the business event namespace and local name, payload, ECID, and message details are displayed in the Supplemental Detail field.

    5. To search for a particular event by event name, click Add Fields.

    6. Select Supplemental Detail, and click Add.

    7. Specify that Supplemental Detail contains either the event namespace or the event local name as the search criteria.

    8. Click Search.

    9. Use additional information such as the time interval or data in the payload to identify the specific event message of interest.

      The following sample shows a portion of a server log file containing information about event publishing with a timestamp of 2011-03-22T11:52:36.968-07:00.

      [2011-03-22T11:52:36.968-07:00] [soa_server1] [TRACE] [SOA-31000]
      [oracle.integration.platform.blocks.event.saq] [tid:
      [ACTIVE].ExecuteThread: '2' for queue: 'weblogic.kernel.Default
      (self-tuning)'] [userId: <anonymous>] [ecid:
      5fc0ca821d51e919:3d214296:12ebaa2c996:-8000-00000000000c2b83,0:1] [SRC_
      CLASS:
      oracle.integration.platform.blocks.event.saq.SAQBusinessEventBusMessages]
      [WEBSERVICE_PORT.name: execute_pt] [APP: soa-infra] [composite_name:
      MediatorPubSub] [component_name: PublishEvent] [component_instance_id:
      8E0411C054B511E0AF455DABE1395E7B] [J2EE_MODULE.name: fabric] [SRC_METHOD:
      fineEventPublished] [WEBSERVICE.name: PublishEvent_ep] [J2EE_APP.name:
      soa-infra] [composite_instance_id: 90087] Received event: Subject: null 
      Sender: default/MediatorPubSub!2.0*soa_
      58454bff-3b36-4e29-a883-949085d85719/default/MediatorPubSub!2.0*soa_
      58454bff-3b36-4e29-a883-949085d85719/PublishEvent
      Event:[[
      <business-event xmlns:ns="http://schemas.oracle.com/events/edl/MyEventDefn"
      xmlns="http://oracle.com/fabric/businessEvent">
        <name>ns:MyEvent</name>
        <id>a7ae9d28-9530-4049-8385-e0ebfb0eea50</id>
        <tracking>
       <ecid>5fc0ca821d51e919:3d214296:12ebaa2c996:-8000-00000000000c2b83</ecid>
           <compositeInstanceId>90087</compositeInstanceId>
      
      <parentComponentInstanceId>mediator:8E0411C054B511E0AF455DABE1395E7B</paren
      tComponentInstanceId>
        </tracking>
        <content>
           <inp1:singleString
      xmlns:inp1="http://xmlns.oracle.com/singleString">PO123</inp1:singleString>
        </content>
      </business-event>
      
      ]]
      

      The following sample shows a portion of a server log file containing information about an event dequeued by EDN with a timestamp of 2011-03-22T11:52:37.038-07:00.

      [2011-03-22T11:52:37.038-07:00] [soa_server1] [TRACE] [SOA-31010]
      [oracle.integration.platform.blocks.event.saq] [tid:
      weblogic.work.j2ee.J2EEWorkManager$WorkWithListener@96bab0] [userId:
      <anonymous>] [ecid:
      5fc0ca821d51e919:3d214296:12ebaa2c996:-8000-00000000000c2b83,0:1:100000140]
      [SRC_CLASS:
      oracle.integration.platform.blocks.event.saq.SAQBusinessEventBusMessages]
      [APP: soa-infra] [composite_name: MediatorPubSub] [component_name:
      PublishEvent] [component_instance_id: 8E0411C054B511E0AF455DABE1395E7B]
      [SRC_METHOD: fineDequeuedEvent] [composite_instance_id: 90087] Dequeued
      event, Subject: null [source type "J"]:[[
      <business-event xmlns:ns="http://schemas.oracle.com/events/edl/MyEventDefn"
      xmlns="http://oracle.com/fabric/businessEvent">
        <name>ns:MyEvent</name>
        <id>a7ae9d28-9530-4049-8385-e0ebfb0eea50</id>
      
      <source>default/MediatorPubSub!2.0*soa_
      58454bff-3b36-4e29-a883-949085d85719/default/MediatorPubSub!2.0*soa_
      58454bff-3b36-4e29-a883-949085d85719/PublishEvent</source>
       <tracking>
        <ecid>5fc0ca821d51e919:3d214296:12ebaa2c996:-8000-00000000000c2b83</ecid>
            <compositeInstanceId>90087</compositeInstanceId>
        <parentComponentInstanceId>mediator:8E0411C054B511E0AF455DABE1395E7B
        </parentComponentInstanceId>
       </tracking>
         <content>
           <inp1:singleString
      xmlns:inp1="http://xmlns.oracle.com/singleString">PO123</inp1:singleString>
         </content>
      </business-event>
      
      ]]
      

      The following sample shows a portion of a server log file containing information of an event sent to a subscriber by EDN with a timestamp of 2011-03-22T11:52:37.150-07:00.

      [2011-03-22T11:52:37.150-07:00] [soa_server1] [TRACE] [SOA-31033]
      [oracle.integration.platform.blocks.event.saq] [tid:
      weblogic.work.j2ee.J2EEWorkManager$WorkWithListener@b402db] [userId:
      <anonymous>] [ecid:
      5fc0ca821d51e919:3d214296:12ebaa2c996:-8000-00000000000c2b83,0:1:100000141]
      [SRC_CLASS:
      oracle.integration.platform.blocks.event.saq.SAQBusinessEventBusMessages]
      [APP: soa-infra] [SRC_METHOD: fineSentOAOOEvent] Sent OAOO event [QName:
      "{http://schemas.oracle.com/events/edl/MyEventDefn}MyEvent" to target:
      "default/MediatorPubSub!2.0*soa_
      58454bff-3b36-4e29-a883-949085d85719/SubsEvent"]:[[
      <business-event xmlns:ns="http://schemas.oracle.com/events/edl/MyEventDefn"
      xmlns="http://oracle.com/fabric/businessEvent">
        <name>ns:MyEvent</name>
        <id>a7ae9d28-9530-4049-8385-e0ebfb0eea50</id>
      <source>default/MediatorPubSub!2.0*soa_
       58454bff-3b36-4e29-a883-949085d85719/default/MediatorPubSub!2.0*soa_
       58454bff-3b36-4e29-a883-949085d85719/PublishEvent</source>
      <tracking>
      <ecid>5fc0ca821d51e919:3d214296:12ebaa2c996:-8000-00000000000c2b83</ecid>
           <compositeInstanceId>90087</compositeInstanceId>
      
      <parentComponentInstanceId>mediator:8E0411C054B511E0AF455DABE1395E7B</paren
      tComponentInstanceId>
      </tracking>
        <content>
           <inp1:singleString
      xmlns:inp1="http://xmlns.oracle.com/singleString">PO123</inp1:singleString>
        </content>
      </business-event>
      ]]
      
  5. If the delay comes from the event publishing side, then check the following:

    1. If the remote EDN API is used to publish events from, for example, an ADF component to the SOA server, and the following event connection factory lookup code is used:

      BusinessEventConnectionFactory BusinessEventConnectionFactorySupport.
      findRelevantBusinessEventConnectionFactory(boolean forceRetry)
      

      The forceRetry parameter may need to be set to true to cache the BusinessEventConnectionFactory object after it is found, and avoid forced retries of JNDI lookups that can cause a significant delay.

    2. If multiple events are published with a loop statement in a batch fashion, the above event connection factory lookup may need to be moved outside the loop to avoid a lookup per event.

  6. If the delay comes from event dequeuing after the event is published, then check the following:

    Ensure That... Description

    The SOA server is up running, and EDN has been configured with the correct amount of dequeuer threads through an EDNConfig MBean.

    To examine the configuration of the EDNConfig MBean in Fusion Applications Control:

    1. Go to the navigation pane.

    2. Right-click soa-infra.

    3. Select SOA Infrastructure then, Administration and then, System MBean Browser.

    4. Expand Application Defined MBeans then, oracle.as.soainfra.config then, Server: soa_server-x then, EDNConfig and then, edn.

    5. Ensure that the NumberOfThreads attribute (for EDN dequeuer threads) is set to an appropriate number (the default is 3).

    Set the number of EDN dequeuer threads (the default is 3) to a value that matches the number of events published. If there are a large number of events published which cause event backlog, this can be verified by navigating to the following URL: http://host_name:port/soa-infra/events/edn-db-backlog. Note that the EDN dequeuer threads come from a thread pool that is provided by the SOA server and shared with other SOA processes. Therefore, when the number of EDN dequeuer threads is increased, it may potentially affect server performance for other SOA functionality.

    The backing store of EDN is functioning properly.

    For example, if the backing store of EDN is Oracle AQ, and there are a significant amount of dead events stuck in the AQ that are not cleared, then event dequeuing by EDN may slow down significantly.

  7. If the delay comes from event consumption by its subscriber after the event is dequeued, then check the following:

    1. Ensure that all the event subscribing components such as Oracle Mediator or a BPEL process can consume and process the event within the expected time frame. If not, investigate why there is a delay.

    2. If the event delivery is configured with an OAOO delivery guarantee, then EDN delivers the event to its subscriber in a global transaction context with built-in retry logics, should the transaction fail to commit. Retries may delay overall event processing. If the transaction fails to commit, ensure that the root cause of transaction failure is researched.

For more information about setting logging levels for Oracle SOA Suite, see section Setting Logging Levels for Troubleshooting in Administering Oracle SOA Suite and Oracle Business Process Management Suite.

13.3.4 Events Are Consumed by Multiple Revisions of the Same Composites

Problem

Events are consumed by multiple revisions of the same composites.

Solution

By design, different composites can subscribe to the same event. However, it is an error if multiple revisions of the same composite subscribe to the same event. This occurs when multiple versions of the composite are active possibly as a result of a patch failure.

Perform the following steps to identify whether there are multiple, active revisions of the same composite and to retire the composite revision that should not be active:

  1. Go to Fusion Applications Control.
  2. Click SOA then, soa-infra.

    In the Deployed Composites section of the Dashboard tab, a list of deployed composite names , revisions, and modes (for example, active) is seen.

  3. Identify composites with the same name and with an active mode, but with different revisions.
  4. Click the composite revision that should not be active.
  5. Click the Retire button.

13.3.5 Rolled Back OAOO Event Delivery Messages Are Displayed in the Log Files

Problem

If the Java debug level is set to TRACE:16 (FINER) or a lower value, log messages such as the following may be seen :

Began XA for OAOO
Rolled back XA for OAOO

Solution

These are normal messages of OAOO event delivery when there are no events waiting to be delivered. These are not error conditions. These messages can be turned off by setting the Java logging level to TRACE:1 (FINE) or a higher value.

13.3.6 Application Transaction Does Not Complete and the Underlying Composite Is Stuck in a Running State

Problem

An application transaction is not completing. For example, a purchase order status may remain processing. Checking the composite instance shows that the composite is stuck in the running state. In this case, the component is probably not running. Instead, it has likely faulted and may need recovery.

Faults may occur for various reasons:

  • A BPEL activity faulted with an error (for example, a business error, security authorization error, or some other error).

  • A BPEL activity invoked an external web service that was unavailable.

  • A BPEL activity has already been terminated by the administrator using Fusion Applications Control.

  • A BPEL activity invoked an asynchronous ADF service and the message is stuck in the AQ/JMS queue.

  • A BPEL activity invoked an asynchronous ADF service, but because SOA was unavailable, the callback message did not arrive.

  • A BPEL activity invoked a synchronous ADF service, which is taking a long time (or is hanging).

  • A network error occurred.

Solution

  1. Log in to Fusion Applications Control.

  2. In the navigator pane, go to domain_name and then, SOA.

  3. Click soa-infra (SOA_cluster_name).

  4. Click the Instances tab.

  5. Search for the composite instance, and click the instance ID.

    The Flow Trace page appears.

    If the instance is not visible (and the Audit Level is not set to Off in the SOA Infrastructure Common Properties page), this implies that the message is stuck outside of SOA. Check the ADF log (if invoked through an ADF service) to find out if it is stuck in the AQ/JMS queue.

    If the message has reached Oracle Mediator, but not instantiated the BPEL flow, the BPEL instance may have been rolled back from the start due to an error.

    If the BPEL flow exists, the Faults section of the Flow Trace page typically shows the faulted service that can trace the root cause.

  6. In the Trace section, click the BPEL process.

  7. Expand the BPEL audit trail to see the exact point at which the service faulted.

    This information is also available in the Faults tab of the BPEL flow trace. It also indicates whether the fault can be recovered.

  8. Click the View Raw XML link.

    The same information is also available through this link, where the error can be seen. For example:

    ...
    <message>Faulted while invoking operation "modifyUserRoles" on provider
     "UserService". </message><details>
    ...
    <tns:message>JBO-27023: Failed to validate all rows in a
     transaction.</tns:message>
    <tns:severity>SEVERITY_ERROR</tns:severity>
    ...
    <message>The transaction was rolled back. The work performed for bpel instance
     "451042" was rolled back to the previous dehydration point, but the audit
     trail has been saved.
    The instance can be recovered from the recovery console by resubmitting the
     callback message or activity for execution.</message
    

    Since the instance was rolled back to its previous dehydration point, the status remains as Running.

  9. In the Audit Trail and Faults tabs, make a note of the following:

    • Composite name (for example, HcmUsersSpmlComposite)

    • Component (for example, UpdateGuid BPEL process)

    • BPEL instance ID (for example, bpel:451042)

    This is all used in the recovery of the instance, if it is recoverable. Note that the audit trail window may mark the error as a nonrecoverable business fault, but the recoverability of the message can be found in the Recovery tab of the BPEL process service engine.

  10. To attempt to recover the instance, right-click soa-infra (SOA_cluster_name), and choose Service Engines then, BPEL.

  11. Click the Recovery tab.

  12. From the Type list, select Activity.

  13. Specify the composite and component names captured in step 9, and click Search.

  14. Find the specific BPEL instance ID. Faults marked as Recoverable can be recovered.

  15. Check the other recovery options in the Type list (for example, Invoke and Callback), if they exist.

    It is also possible to search for recoverable messages from the Faults and Rejected Messages tab of the SOA Infrastructure by clicking the message and selecting the appropriate action from the Recovery Actions list.

  16. If the instance is not marked as recoverable, then reinvoking the service is not allowed (most probably because it is not idempotent). In some cases, diagnostic information may need to be provided to Oracle Support Services to resolve issues with nonrecoverable, nonidempotent transactions.

  17. If the BPEL activity has invoked an asynchronous ADF service and the message is stuck in the AQ JMS queue, the server.log and server-diagnostic.log files can be viewed to see the logging of the message metadata logged by the JRF web services infrastructure.

    In addition, the ADF diagnostic logs are also available to debug, if needed.

    1. Use the ECID field to correlate and track ADF service logging corresponding with the SOA composite that invoked it.

    2. When viewing the log in Fusion Applications Control, click the Broaden Target Scope dropdown list and select the farm_name/domain_name (Oracle WebLogic Domain) to view messages across the domain.

    3. In the Log Messages page for the Oracle WebLogic Server domain, in the Selected Targets section, ensure that the search includes the ECID field with the value noted in step 17.a and the Component Name field is set to adf-bc.

    4. Search and view log records for the Oracle Application Development Framework (Oracle ADF) Business Component (BC) and the ECID and note any issues.

      For a specific ECID, find several root instances (top level clients). Drill down to the appropriate instance to find a specific fault.

    5. Observe if the Oracle ADF Business Components completed successfully or completed with an error. See section Viewing and Searching Log Files in the Administering Oracle Fusion Middleware.

      For more details on diagnosing Oracle ADF-BC asynchronous web service calls, see BPEL Process Received No Response from an ADF Asynchronous Service.

See the Administering Oracle SOA Suite and Oracle Business Process Management Suite for the various ways to recover transactions and messages:

  • Managing SOA Composite Application Instances section to recover from the SOA composite application page in Fusion Applications Control.

  • Managing BPEL Process Service Components and Engines section to recover from the BPEL process service component and BPEL process service engine message recovery pages.

13.3.7 BPEL Process Received No Response from an ADF Asynchronous Service

Problem

A BPEL activity has invoked an asynchronous ADF service and not received a response. The message may be stuck in the request or response queues.

Solution

  1. Check if the reply address is valid, the server is running, and the name of the server and port match with the server on which the BPEL process is running.

  2. Verify that the policy on the callback receive activity matches with the policy advertised in the WSDL for the response port type/binding.

  3. Look at the server-name_diagnostic.log file and check for all status messages of the request.

    1. Go to Fusion Applications Control.

    2. Right-click soa-infra.

    3. Choose Logs > View Log Messages.

    4. Click Target Log Files.

    5. Select the server diagnostic file to view, and click View Log File.

      Every log contains the message ID and other details, such as ECID, that can help isolate it from other messages. After finding the message ID (that is, MessageID: urn:uuid:ac1a4a81-39df-45b1-a741-e16e752d5d33), search for the same ID in the log file. Messages such as the following should be seen for each successful asynchronous operation.

      If the following log is not available, this means the asynchronous operation was never called on this server:

      [2010-12-17T12:27:13.537-08:00] [AdminServer] [NOTIFICATION] []
       [oracle.j2ee.ws.common.jaxws.JAXWSMessages] 
      [tid: [ACTIVE].ExecuteThread: '2' for queue: 'weblogic.kernel.Default
       (self-tuning)'] [userId: <anonymous>]
      [ecid: 0000Inq0wfa76EWLHyo2yf1D2wUW000000,0:1] 
      [WEBSERVICE_PORT.name: AsyncEjbPort] [APP: AsyncEjb] [J2EE_MODULE.name:
       AsyncEjb-ejb] [WEBSERVICE.name: AsyncEjbService] [J2EE_APP.name: AsyncEjb]
      *[MessageID: urn:uuid:ac1a4a81-39df-45b1-a741-e16e752d5d33] Sending message
       to JMS queue* 
      "oracle.j2ee.ws.server.async.NonDefaultRequestQueue" for async processing
       of service "1d7551aa-73d9-4624-ad52-c15e35b5b25dRequest"
      

      If the following log is not available, this means the asynchronous operation was never called on this server:

      [2010-12-17T12:27:13.783-08:00] [AdminServer] [NOTIFICATION] []
       [oracle.j2ee.ws.common.jaxws.JAXWSMessages] 
      [tid: [ACTIVE].ExecuteThread: '2' for queue: 'weblogic.kernel.Default
       (self-tuning)'] [userId: <anonymous>] 
      [ecid: 0000Inq0wfa76EWLHyo2yf1D2wUW000000,0:1] 
      [WEBSERVICE_PORT.name: AsyncEjbPort] [APP: AsyncEjb] [J2EE_MODULE.name:
       AsyncEjb-ejb] [WEBSERVICE.name: AsyncEjbService] [J2EE_APP.name: AsyncEjb]
      *[MessageID: urn:uuid:ac1a4a81-39df-45b1-a741-e16e752d5d33] An asynchronous
       request message is received*
      and successfully recorded for service "AsyncEjbService" with a replyTo
      address as
      "http://adc2180314:7001/AsyncEjbCallback/AsyncEjbResponseImplService"
       
      [2010-12-17T12:27:13.986-08:00] [AdminServer] [NOTIFICATION] []
       [oracle.j2ee.ws.common.jaxws.JAXWSMessages] 
      [tid: [ACTIVE].ExecuteThread: '0' for queue: 'weblogic.kernel.Default
       (self-tuning)'] [userId: weblogic] 
      [ecid: 0000Inq0wfa76EWLHyo2yf1D2wUW000000,0] [APP: AsyncEjb]  
      *[MessageID: urn:uuid:ac1a4a81-39df-45b1-a741-e16e752d5d33]
       Startedasynchronous request processing for the service* 
      "AsyncEjbService" with the message selector
       "1d7551aa-73d9-4624-ad52-c15e35b5b25dRequest". Transaction enabled: "true"
       
      [2010-12-17T12:27:14.296-08:00] [AdminServer] [NOTIFICATION] []
       [oracle.j2ee.ws.common.jaxws.JAXWSMessages] 
      [tid: [ACTIVE].ExecuteThread: '0' for queue: 'weblogic.kernel.Default
       (self-tuning)'] [userId: weblogic] 
      [ecid: 0000Inq0wfa76EWLHyo2yf1D2wUW000000,0] [APP: AsyncEjb]  
      *[MessageID: urn:uuid:ac1a4a81-39df-45b1-a741-e16e752d5d33] Completed
       asynchronous request processing. A response will be sent to the client.*
       
      [2010-12-17T12:27:14.312-08:00] [AdminServer] [NOTIFICATION] []
       [oracle.j2ee.ws.common.jaxws.JAXWSMessages] 
      [tid: [ACTIVE].ExecuteThread: '2' for queue: 'weblogic.kernel.Default
       (self-tuning)'] [userId: weblogic] 
      [ecid: 0000Inq0wfa76EWLHyo2yf1D2wUW000000,0] [APP: AsyncEjb]  
      *[MessageID: urn:uuid:ac1a4a81-39df-45b1-a741-e16e752d5d33]
       Startedasynchronous response processing for the service* 
      "AsyncEjbService" with the message selector
      "1d7551aa-73d9-4624-ad52-c15e35b5b25dResponse".
       
      [2010-12-17T12:27:15.018-08:00] [AdminServer] [NOTIFICATION] []
      [oracle.j2ee.ws.common.jaxws.JAXWSMessages] 
      [tid: [ACTIVE].ExecuteThread: '2' for queue: 'weblogic.kernel.Default
      (self-tuning)'] [userId: weblogic] 
      [ecid: 77e271e3-afd5-48e8-a83d-9b326860f3f2-0000000000000018,0] [APP:
      AsyncEjb] *[MessageID: urn:uuid:ac1a4a81-39df-45b1-a741-e16e752d5d33]
      Completed asynchronous response processing successfully. Client must have
      received the response by now.*
      

    To monitor the traffic to the asynchronous ADF web services, monitor the Oracle AQ queues that are used for each family. The queue names for each family are shown in the following table:

    Family AQ Name

    Oracle Fusion Customer Relationship Management Product

    CRM_AsyncWS_Request and CRM_AsyncWS_Response

    Oracle Fusion Human Capital Management Product

    HCM_AsyncWS_Request and HCM_AsyncWS_Response

    Oracle Fusion Financials Product

    FIN_AsyncWS_Request and Fin_AsyncWS_Response

    Oracle Fusion Procurement Product

    PRC_AsyncWS_Request and PRC_AsyncWS_Response

    Oracle Fusion Project Product

    PRJ_AsyncWS_Request and PRJ_AsyncWS_Response

    Oracle Fusion Supply Chain Management Product

    SCM_AsyncWS_Request and SCM_AsyncWS_Response

    Oracle Fusion Setup Product

    COMMON_AsyncWS_Request and COMMON_AsyncWS_Response

    IC

    IC_AsyncWS_Request and IC_AsyncWS_Response

    For more information about the different types of loggers to set, see section Setting Logging Levels for Troubleshooting in the Administering Oracle SOA Suite and Oracle Business Process Management Suite.

13.3.8 Business Event Is Picked Up Twice (Or More) By SOA Server

Problem

Business events are raised from Fusion J2EE applications and are picked up more than once. Expected behavior is that they should be picked up only once.

Solution

If a patch fails, it may be possible for two versions of a given composite to be active (that is, the older version has not been retired). When multiple versions of a composite are active, they all become subscribers and the event is picked up more than once. This should not happen under normal scenarios. Reapply the patch and ensure that the deployed composite only has one active version.

13.3.9 Long Running, Synchronous Calls To Remote Web Services Error Out or Asynchronous Transactions Return with an Error after a Long Time

Problem

Long running synchronous calls to remote web services end with JTA transaction rolled-back errors. When executing a transaction making an asynchronous call (for example, to the SOA server), the application returns with an error. Server logs show JTA transaction timeouts, which can cause this behavior.

Solution

Check the JTA transaction timeout in Oracle WebLogic Administration Console.

  1. Log in to Oracle WebLogic Server Administration Console.

  2. In the Domain Structure, select Services then, JTA to check the timeout value.

    If the transaction is always timing out beyond 30 seconds and is a custom composite synchronous client invocation, then the design approach may need to be revisited. It may be best for the external web service to be invoked as an asynchronous transaction.

    Increasing the JTA for supporting long running synchronous transactions is simply an interim mechanism.

  3. If synchronous client invocations to Oracle Fusion Applications code take a long time, check for any performance issues with the system and try to resolve them.

  4. Check for appropriate values for the syncMaxWaitTime property and BPEL's EJB transaction timeout settings in relation to the JTA timeout settings and only then increase the value of the JTA timeout, if needed.

  5. To view and change the BPEL EJB transaction timeout settings, perform the following steps:

    1. Log in to Oracle WebLogic Server Administration Console.

    2. In the Domain Structure, click Deployments.

    3. Expand soa-infra > EJBs.

    4. Update the following EJBs:

      - BPELActivityManagerBean

      - BPELDeliveryBean

      - BPELDispatcherBean

      - BPELEngineBean

      - BPELFinderBean

      - BPELInstanceManagerBean

      - BPELProcessManagerBean

      - BPELSensorValuesBean

      - BPELServerManagerBean

    5. Click Save.

    6. Restart Oracle WebLogic Server.

  6. For asynchronous transactions, check the values for both the BPEL EJB transaction timeout and the JTA transaction timeout and adjust as needed.

The following documentation provides additional information about the topics discussed in this section:

  • For information about changing the JTA transaction timeout setting, see section Resolving Connection Timeouts in theAdministering Oracle SOA Suite and Oracle Business Process Management Suite.

  • For information about viewing and changing the syncMaxWaitTime property, see section Configuring BPEL Process Service Engine Properties in the Administering Oracle SOA Suite and Oracle Business Process Management Suite.

13.3.10 Some Messages Are Lost Between EDN and Composites or Composites Across Clusters

Problem

Messages primarily get lost for the following reasons:

  1. The EDN message was not delivered.

  2. The target asynchronous service did not respond.

  3. The message was roll backed (though it was not lost; it is still seen in Fusion Applications Control).

Solution

Identify where the messages are supposed to be and diagnose the path, is what this issue typically requires.

  • If the calling component is an ADF web service invoking a SOA composite, then check for any client errors in the ADF logs.

  • Because ADF invokes SOA composites using EDN, check the JMS/AQ and XA data source configurations to ensure that events are being fired. For more information about EDN issues, see Business Event Subscriptions Are Not Firing.

  • Check if the Oracle WSM Policy Manager security configurations allow the client to invoke the SOA composite.

  • Verify that the transaction is not transient (nonpersistent).

    Oracle BPEL Process Manager uses the dehydration store database to maintain long-running, asynchronous processes and their current state information in a database while they wait for asynchronous callbacks. Storing the process in a database preserves the process and prevents any loss of state or reliability if a system shuts down or a network problem occurs. There are two types of processes in Oracle BPEL Process Manager. These processes affect the dehydration store database in different ways.

    • Transient processes: This process type does not incur any intermediate dehydration points during process execution. If there are unhandled faults or there is system downtime during process execution, the instances of a transient process do not leave a trace in the system. Instances of transient processes cannot be saved in-flight (whether they complete normally or abnormally). Transient processes are typically short-lived, request-response style processes. The synchronous process designed in JDeveloper is an example of a transient process.

    • Durable processes: This process type incurs one or more dehydration points in the database during execution because of the following activities:

      • Receive activity

      • OnMessage branch of a pick activity

      • OnAlarm branch of a pick activity

      • Wait activity

      Instances of durable processes can be saved in-flight (whether they complete normally or abnormally). These processes are typically long-living and initiated through a one-way invocation. Because of out-of-memory and system downtime issues, durable processes cannot be memory-optimized.

  • If a composite instance is not visible in Fusion Applications Control and the SOA Infrastructure is running, check that the Audit Level is not set to Off in the SOA Infrastructure Common Properties page. This can be checked in Fusion Applications Control:

    1. Right-click soa-infra (SOA_cluster_name).

    2. Choose SOA Administration and then, Common Properties.

  • Check the ADF logs to see if there was a bad/malformed message or incorrect SOAP headers (if invoking from an external web service). The transaction may have rolled back before being dehydrated due to an internal error. Again, the SOA logs can identify the cause of this issue.

  • If the composite instance is available, check the bpel.config.oneWayDeliveryPolicy BPEL property value. The value can be checked in Fusion Applications Control:

    1. In the navigation pane, expand soa-infra (SOA_cluster_name).

    2. Expand the partition, and select the composite.

      The Dashboard page for the composite is displayed.

    3. In the upper right corner, click the Show XML Definition icon.

      The contents of composite.xml for that composite are displayed.

    If this is set to async.cache, messages may be lost. Set it to async.persist for reliable messages. This is typically specified in the BPEL process service component section of the composite.xml file, so this can be set for custom composites. If the value is not set in composite.xml, the value for oneWayDeliveryPolicy in the System MBean Browser in Fusion Applications Control is used. The following values are possible:

    • async.persist: Messages are persisted in the database hash map.

    • async.cache: Messages are stored in memory.

    • sync: Direct invocation occurs on the same thread.

    It is also possible that the transaction has invoked a target asynchronous service that has not responded back. In this case, the composite instance flow shows the call to the target asynchronous service.

  • Check if the instance has rolled back and the message is in recovery.

    1. Log in to Fusion Applications Control.

    2. Right-click soa-infra (SOA_cluster_name), and choose Service Engines then, BPEL.

    3. Click the Recovery tab.

    This may occur if any external references receiving the message are not reachable (for example, an external web service, enterprise applications such as Siebel, and so on).

The following documentation provides additional information about the topics discussed in this section:

  • For information about oneWayDeliveryPolicy property settings, see sections Deployment Descriptor Properties appendix and Transaction and Fault Propagation Semantics in BPEL Processes in the Developing SOA Applications with Oracle SOA Suite.

  • For information about setting the oneWayDeliveryPolicy property in the System MBean Browser, see section Configuring BPEL Process Service Engine Properties in the Administering Oracle SOA Suite and Oracle Business Process Management Suite.

13.3.11 Some Composites Are Being Retried Multiple Times on Failure

Problem

When a BPEL process flow errors out, it is retried with all its invocations. This is undesirable in some cases.

Solution

The property GlobalTxMaxRetry (default value is 3) specifies how many retries are performed if an error is identified as a retriable one. For example, after several web service invocations, if dehydration fails due to a data source error, then this is identified as a retriable error and all activities from the prior dehydration state are retried. If the activities being retried are not idempotent (that is, their state can change with each retry and is not guaranteed to give the same behavior), then multiple retries can be problematic.

To rectify this, customize the composite by specifically marking the nonidempotent activities with idempotentset set to false in the partner link settings section of the composite.xml file to prevent retries.

<property name="bpel.partnerLink.partner_link_name.idempotent">false</property>

The idempotentset property cannot be set in Fusion Applications Control.

GlobalTxMaxRetry can also be set to 0 in the Systems MBean Browser.

  1. Right-click soa-infra (SOA_cluster_name).
  2. Choose SOA Administration then, Common Properties.
  3. Click More SOA Infra Advanced Configuration Properties.
  4. Click GlobalTxMaxRetry.
  5. In the Value field, enter an appropriate value.
  6. Click Apply.

For information about the idempotent property, see the Tuning BPEL Properties Set Inside a Composite section of Tuning Performance.

For information about Oracle SOA Suite customizations in JDeveloper, see the Customizing and Extending SOA Components section in the Oracle Applications Cloud Customizing the Applications for Functional Administrators.

13.3.12 Some Fusion Applications Control Features Are Missing the No Recover Button or Export Composite Capability

Problem

Fusion Applications Control is missing features needed for diagnostics and recovery. For example, the Recovery tab for the BPEL process service engine shows a BPEL instance as recoverable along with instructions to click the Recover button. However, there is no Recover button available. In addition, the ability to export a composite is not available.

Solution

Check that you are logged in as a user with administrator privileges and are not logged in as a read-only user. Read-only users do not see administrative features such as the Recover button or the ability to export composites.

See section Roles and Privileges for Oracle SOA Suite Users in Oracle Enterprise Manager appendix of Administering Oracle SOA Suite and Oracle Business Process Management Suite.

13.3.13 Automatic Recovery of BPEL Instances is Not Recovering A Specific Instance

Problem

BPEL processes have an automatic recovery feature that attempts to automatically recover activities that are recoverable such as unresolved invoke/callback messages, activities not completed over a provided threshold time, and so on. However, the automatic recovery feature only tries to recover a few instances and only retries a fixed number of times. If some instances are not being automatically recovered, they are likely not being picked up because of the configuration of the automatic recovery parameters.

Solution

  • Set the maximum number of messages to automatically recover.

    By default, the automatic recovery feature of Oracle BPEL Process Manager processes fifty messages to submit for each recovery attempt. This is controlled by the maxMessageRaiseSize property.

    1. In the navigation pane, right-click soa-infra (SOA_cluster_name).

    2. Choose SOA Administration, then BPEL Properties, then More BPEL Configuration Properties, and then RecoveryConfig.

    3. Expand both RecurringScheduleConfig, then maxMessageRaiseSize and StartupScheduleConfig, and then maxMessageRaiseSize.

      The default value is 50 for each. A negative value causes all messages selected from the database to be submitted for recovery. A value of 0 causes no messages to be selected from the database (effectively disabling recovery). To recover more than fifty messages, set the property value to that value. Use this property to limit the impact of recovery on the server.

  • Set the maximum number of automatic recovery attempts on a given message.

    The number of automatic recovery attempts can also be configured to submit in the same recoverable instance. The value provided, specifies the maximum number of times that invoke and callback messages are recovered. If the value is 0 (the default value), it recovers all messages. After the number of recovery attempts on a message exceeds the specified value, a message is marked as nonrecoverable.

    Follow these steps to configure automatic recovery attempts for invoke and callback messages in Fusion Applications Control.

    1. In the navigation pane, right-click soa-infra (SOA_cluster_name).

    2. Choose SOA Administration, then BPEL Properties, and then More BPEL Configuration Properties.

    3. Select MaxRecoverAttempt, and enter a value in the Value field.

    4. Click Apply.

      It may not be desirable in all cases to use automatic recovery. If services are not idempotent, then corruption can occur. Moreover, the automatic recovery restores the composite to the last save point that can be immediately after an asynchronous invoke, wait, and so on. Therefore, it is important to understand the process behavior and what it does next before performing mass recoveries. Attempt mass automatic recovery only after the root cause of the composite failures has been fixed (for example, a service that was unavailable is now available, a database running out of space was fixed, and so on). Automatic recovery can also trigger an unexpected load during failure scenarios. This causes more threads to block on a remote server that can induce hangs in the SOA server in a cascading fashion.

      For more information, see section Some Composites Are Being Retried Multiple Times on Failure and section Configuring Automatic Recovery for Oracle BPEL Process Manager in the Administering Oracle SOA Suite and Oracle Business Process Management Suite.

13.3.14 SOA Runtime Fails with a "Cannot read WSDL" Error

Problem

The following error is displayed if either the endpoint is not available for a reference or a composite is deployed with an incorrect deployment plan file.

oracle.fabric.common.FabricException: Cannot read WSDL

Solution

  1. Ensure that the endpoint for the reference is up and running.

    The WSDL or endpoint is stated in the error. The service can then be looked up from Fusion Applications Control to check if it is active. After the service is active and the endpoint is reachable, search for the SOA instance and retry through the Recovery tab for the BPEL process service engine in Fusion Applications Control.

  2. For extensions/customizations, ensure that the correct URL is updated in the deployment configuration plan.

    For information about deployment plans, including examples of using sca_extractPlan to extract plans, see sections Customizing Your Application for the Target Environment Before Deployment of Developing SOA Applications with Oracle SOA Suite and Customizing SOA Composite Applications with JDeveloper of Oracle Applications Cloud Customizing the Applications for Functional Administrators.

13.3.15 Upload a Composite for Oracle Support Services

Problem

Oracle Support Services has requested the composite to be uploaded to review the flow and associated configuration files.

Solution

  1. Log in to Fusion Applications Control as a user with administrator privileges, and not as a read-only user.
  2. In the navigation pane, expand soa-infra (SOA_cluster_name).
  3. Expand the partition in which the composite is located (for example, default).
  4. Right-click the composite and choose Export.
  5. Accept the default selections, and save the resulting JAR file.
  6. Provide the JAR file to Oracle Support Services so that it can be imported for review in JDeveloper by selecting File then, Import.

13.3.16 Confirm SOA Component Configuration Properties for Oracle Support Services

Problem

Oracle Support Services has requested the configuration properties of various SOA components to be confirmed.

Solution

  1. In the navigation pane, right-click soa-infra (SOA_cluster_name).
  2. Choose Administration then, MDS Configuration and then, Export.
  3. Upload the resulting file to Oracle Support Services for review.

13.4 Security and Oracle WSM Policy Manager Configuration

For information about troubleshooting Oracle WSM Policy Manager, see section Diagnosing Problems in the Administering Web Services.

13.4.1 Cannot Invoke Service Due To Oracle WSM Policy Manager Security Configuration or Access

Problem

It is not possible to invoke a service due to access issues or policy configurations. Most common issues with Oracle WSM Policy Manager involve keystore and credential store framework (CSF) configuration, which can result in the following types of errors:

WSM-00138 : The path to the certificate is invalid due to exception

This error occurs on the client side, when the client is trying to validate the certificate advertised in the server's WSDL file. Ensure that the server's certificate or server's issuer certificate is present in the client's keystore.

WSM-00056 : The key, orakey, is not retrieved

This error occurs for many reasons. Set up the keystore and CSF entries properly and ensure that passwords are correct. If an UnrecoverableKeyException error is seen in the details, that usually means there is a wrong password.

WSM-00015 : The user name is missing

This error occurs because Oracle WSM Policy Manager cannot locate the user name in the CSF. Either the map is missing, it is in an incorrect map, or the CSF key entry is missing.

Solution

To resolve this issue, perform the following steps:

  1. Diagnose Oracle WSM Policy Manager configuration issues:

    • Ensure Oracle WSM Policy Manager is configured by checking the validation URL.

      http://host:port/wsm-pm/validator
      
    • Verify that the keystore and credential store are correctly set up on each Oracle WebLogic Server domain.

    • Enable trace level diagnostic logging and message logging in Oracle Web Services Manager and review the diagnostic log for WSM-00xxx errors.

    • To debug issues with signature and encryption failure, or with interoperability, enable message logging and use one of the following:

      • WireShark/Ethereal/tShark to capture messages (Wireshark preserves binary message faithfully)

      • JDeveloper's HTTP Analyzer

      • tcpmon another type of SOAP testing tool such as SOAPUI

    For more help with diagnosing Oracle Web Services Manager issues, see section Diagnosing Problems in the Administering Web Services.

  2. Set up trust relationships properly for calling third party web services

    For calling third party web services, verify that the external web service public certificate is imported in the keystore and the composite.xml property keystore.recipient.alias points to it. When a web service client talks to a web service, the service advertises its certificate in the WSDL file. The client checks whether it trusts this certificate before talking to the server. Ensure that either the server's certificate or its issuer in the client's keystore (it does not matter which alias is used for these) have been included. The keystore.recipient.alias property is a mechanism to tell the client which certificate to use to encrypt the response to the service. It is ignored if the service already advertises a certificate in the WSDL file. If keystore.recipient.alias is not defined and it is not in the service's WSDL file, then it defaults to orakey.

  3. Resolve credential store issues.

    Oracle WSM Policy Manager only reads from one CSF map, which is typically oracle.wsm.security. Oracle WSM Policy Manager does not read from any other maps. More specifically, Oracle Fusion Applications use a oracle.apps.security map. If an AppID defined in oracle.apps.security in Oracle WSM Policy Manager is needed, it must be duplicated in oracle.wsm.security.

    For more information, see Administering Web Services.

13.4.2 Service Invocation Errors Due To SOAP Fault "PolicySet Invalid"

Problem

A service invocation errors as follows.

javax.xml.ws.soap.SOAPFaultException: PolicySet Invalid: WSM-06102 PolicyReference The policy reference URI "oracle/wss_saml_or_username_token_service_policy" is not valid.

If a policy cannot be found, either the policy name is misspelled or it cannot contact the Oracle WSM Policy Manager.

Solution

An Oracle Web Services Manager policy is not available when Oracle Web Services Manager tries to access it. The following tips can help resolve the issue.

  1. Verify Oracle WSM Policy Manager application is active on Oracle WebLogic Server Administration Console. In the Domain Structure section, click Deployments, which lists all application deployments and their states.

  2. Verify if the MDS-Oracle WSM Policy Manager data source connection is reachable and available.

    1. In the Domain Structure section of Oracle WebLogic Server Administration Console, click Services, and then Data Sources, which lists all JDBC data sources.

    2. Select the data source.

    3. View the connection details by selecting Configuration, and then Connection Pool.

    4. To check if the data source connection is reachable, select Monitoring, and then Testing tab.

    5. Select the data source and click Test Data Source.

  3. Verify wsm-pm/validator has this policy available.

    http://host:port/wsm-pm/validator
    
  4. Check if the user is in a role that has the correct permission granted.

13.4.3 Service Invocation Fails with "ADFC-0619: Authorization check failed" Error

Problem

This is not typically a problem, but instead is intended behavior (for example, the system was unable to authorize the user for the action that user is attempting). To debug this issue, check the calling application log for the authorization error (the ADF logs if it is called from ADF or the soa-diagnostic.log if the service is being invoked from SOA composite). The error may look similar to the following:

JpsAuth Check Permission
    PolicyContext: <context e.g. log#V2.0>
    Resource/Target:
 oracle.apps.scm.shipping.coreSetup.parameters.ui.pageDefs.ParametersPageDef
    Action: view
    Permission Class: oracle.adf.share.security.authorization.RegionPermission
    Evaluator: ACC
    Result: FAILED
    Failed ProtectionDomain:null

Errors such as the following can also be encountered:

java.security.AccessControlException: access denied
 (oracle.wsm.security.WSFunctionPermission)

Solution

Check the policy context in the system-jazn-data.xml file in the following directories:

  • UNIX

    DOMAIN_HOME/config/fmwconfig
    
  • Windows

    DOMAIN_HOME\config\fmwconfig
    

The file should contain an application stripe with the context name mentioned in the error above and the permission being checked exists in the file. If the policy stripe does not exist or the permission exits under a different stripe, then the permissions are incorrectly set up and must be corrected. For more details, see section Users, Groups, and Security Roles in the Securing Resources Using Roles and Policies for Oracle WebLogic Server.

13.4.4 Service Invocation Fails with Error "WSM-00060 : error in timestamp validation" or Due to "clockSkew"

Problem

This problem either manifests itself as a timestamp validation or clockSkew error as shown below:

Caused By: FAULT CODE: InvalidSecurityToken FAULT MESSAGE: Found invalid condition "on or after" in SAML assertion.
Current Time:Fri Feb 11 22:16:42 IST 2011, clockSkew:300000 milli seconds, NotOnOrAfter Time:Fri Feb 11 14:21:42 IST 2011.

This problem typically occurs if the server and client clocks are more than five minutes apart after they are converted to the same time zone.

Solution

Change the client or server clock so that they are within five minutes, both set to the correct time. For example, using a command such as follows:

sudo date -s "Fri Feb 11 14:32:05 IST 2011"

Or use an ntp server to maintain the time.

13.4.5 Web Service Invocation Throws "Attaching multiple authentication security policies is not supported" Error

Problem

During any web service invocation, the following error is thrown.

Solution

As the error message shows, there are two policies that are attached to the same resource type, for example, a Web service, on the domain. This can occur when the MDS-Oracle Web Services Manager repository has two policy sets: one with the domain set as * and the other with the domain set as your-domain-name. The following example shows this scenario.

wls:/soa_domain/serverConfig> displayPolicySet('default-domain-ws-fusion_domain_
gpa')
 
Policy Set Details:
Name: default-domain-ws-fusion_domain_gpa
Type of Resources: Web Service Endpoint
Scope of Resources: Domain("* fusion_domain_gpa")
Description: Global policy attachments for Web Service Endpoint resources.
Enabled: true
Policy Reference: security : oracle/wss_saml_or_username_token_service_policy,
enabled=true
 
wls:/soa_domain/serverConfig> displayPolicySet('default-domain-ws-fusion_domain')
 
Policy Set Details:
Name: default-domain-ws-fusion_domain
Type of Resources: Web Service Endpoint
Scope of Resources: Domain("* * ")
Description: Global policy attachments for Web Service Endpoint resources.
Enabled: true
Policy Reference: security : oracle/wss_saml_or_username_token_service_policy,
enabled=true.

In this example, the domain where the web service invocation error is occurring is fusion_domain_gpa. This is because there are two policy sets with different names pointing to the same resource type on the domain.

To resolve this, delete one of the above policy sets. It may be better to delete the one with Domain("*") since proper provisioning should create a policy set for each domain. To delete policy sets, use the following commands.

beginRepositorySession()
listPolicySets()
deletePolicySet('default-domain-ws-fusion_domain')
commitRepositorySession()

13.5 Human Workflow

This section contains the following topics that describe common problems and solutions for human workflow:

13.5.1 Recover Human Task Instances Stuck in the Alerted State

Problem

If a human task instance fails due to a business error, the task status stays in the alerted state.

Solution

This can happen if, for example, the following occurs:

  • The assigned user does not exist.

  • The manager is not defined.

  • No applicable rule is found.

In these cases, the task is set to alerted and is assigned to the process owner or the error assignee (if defined in the task metadata).

The administrator or process owner must go to Oracle BPM Worklist and reassign these tasks to the correct users for the workflow to continue forward.

13.5.2 Worklist: Notifications and Approvals Region Contains No Data

Problem

If the Worklist: Notifications and Approvals region in the Welcome dashboard on the Oracle Fusion Applications home page does not contain data, it is likely the connection from Oracle BPM Worklist to the SOA Managed Server is timing out.

Solution

  1. Ensure the SOA Managed Servers are running in the CommonDomain domain with Fusion Applications Control:

    1. From the navigation pane, expand the farm, WebLogic Domain, CommonDomain, FS_SOACluster.

    2. Click FS_SOACluster to display the Oracle WebLogic Server Cluster Home page.

    3. In the Servers section, view the Status column of the SOA Managed Server, for example, soa_server1.

      If the Managed Server is not running, restart it.

  2. Locate the HomePageServer_n-Diagnostic.log diagnostic log files on the CommonDomain domain. This log file is typically stored in the following locations:

    (UNIX) DOMAIN_HOME/servers/server_name/logs/HomePageServer_n-Diagnostic.log
    

    These log files may be stored in a different location if the log file was reconfigured.

  3. Review the HomePageServer_n-Diagnostic.log diagnostic log for the following exception:

    [HomePageServer_1] [ERROR] []
    [oracle.soa.services.workflow.worklist] [tid: [ACTIVE].ExecuteThread: '24'
    for queue: 'weblogic.kernel.Default (self-tuning)'] [userId: username]
    [ecid: ecidvalue] [APP: HomePageApp#V2.0] [URI:
    /homePage/faces/AtkHomePageWelcome] TimeoutException occurred for
    server='null'.[[
    oracle.bpel.services.common.concurrent.TimeoutException: Execution timeout
         service : FederetedWorklistService
    
  4. Modify default timeout interval in the profile:

    1. Log in to the Setup UI application.

    2. From the Administration menu in the work area, choose Setup and Maintenance.

      The Overview page displays.

    3. Click the All Tasks tab.

    4. In the Name field, enter Profiles and click Search.

    5. In the Search Results table, in the Manage Administrator Profile Values table, click the Go to Task.

      Figure 13-2 Search Results Table



      From the Manage Administrator Profile Values page, in the Profile Display Name field, enter Welcome Dashboard Worklist Timeout Interval, and then click Search.

    6. In the Search Results table, select ATK_HOME_PAGE_WORKLIST_TIMEOUT.

    7. In the ATK_HOME_PAGE_WORKLIST_TIMEOUT: Profile Values table, modify the Profile Value field.

      Increase the default timeout of 5 seconds to a larger value such as 10 seconds. A larger timeout value increases the amount of time that home page server waits for response from background SOA web services for all users and it might adversely affect home page performance when there are many concurrent users. Increasing this value should be a temporary change until the root cause for the delay in SOA federated worklist response time can be found.

    8. Click Save.

    9. Run a session, and check that the Worklist: Notifications and Approvals region in the Welcome dashboard on the Oracle Fusion Applications home page contain data.

For information about starting managed servers, see the Start Administration Servers and Managed Servers section.

13.5.3 Task Detail Page is Not Available

Problem

When clicking the human task in Oracle BPM Worklist, the following message is displayed:

Task detail is not available

Solution

This problem typically occurs during the deployment of the ADF J2EE application containing the task details page definition. Therefore, the URI for the details page is not registered with the SOA cluster.

To confirm whether the task details page was registered in Fusion Applications Control:

  1. Log in to the domain where the composite with the subscription is deployed.

  2. In the navigation pane, right-click SOA then, soa-infra (SOA_cluster_name).

  3. Choose Service Engines then, Human Workflow.

  4. In the Components section, click the appropriate task.

  5. Click the Administration tab to see a URI for the task details page.

    If there is no URI displayed, then check the log files for any errors during deployment.

    A possible problem may be incorrect entries in the wf_client_config.xml file. The wf_client_config.xml file resides in the exploded EAR file's APP-INF/classes directory. For example:

    APPLICATIONS_BASE/fusionapps/applications/fin/deploy/EarFinPayables.ear/
    APP-INF/classes/wf_client_config.xml
    

    The file contains the cluster URL information for the local SOA runtime of that particular Oracle WebLogic Server domain. If the cluster name is wrong or that cluster does not exist in the domain, then a problem exists with the deployment and configuration of the environment.

    As a workaround, the task details page URI can be directly entered in Fusion Applications Control. For the values, enter the following:

    Field Value

    Application Name

    worklist

    Host Name

    The server host name for SOA

    HTTP Port

    The HTTP server port used for SOA if SSL is disabled.

    HTTPS Port

    The HTTPS server port used for SOA if SSL is enabled.

    URI

    For example, for financials:

    /payables/faces/adf.task-flow?_id=FinApInvoiceApprovalTaskFlow&_
    document=WEB-INF/oracle/apps/financials/payables/invoices/transact
    ions/ui/invoiceApprovalTask/flow/FinApInvoiceApprovalTaskFlow.xml
    

    For information about the task details page URI in Fusion Applications Control, see the Managing the URI of the Human Task Service Component Task Details Application section in the Administering Oracle SOA Suite and Oracle Business Process Management Suite.

13.5.4 Task Chooses an Incorrect User If Several Rules Are Defined or Errors with "Ruleset returned lists with different list builder"

Problem

At runtime, when a human workflow task tries to fetch the list of users, it errors with the following message:

Ruleset returned lists with different list builder

This can be seen in the Task Detail Comments field. Alternately, it may select a user or approver, which may not seem to be the correct or expected one. This is primarily caused by having overlapping rules with different list builders. When participants of a task are specified using business rules, it is expected that business rules return list builders of the same type.

Moreover, only one rule from a ruleset should be applicable for a transaction. In case a number of rules are true, the actions associated with the applicable rule with the highest priority get executed. If multiple applicable rules have the same priority, then the first rule in the list is picked and its actions are executed.

Solution

To resolve this issue, avoid writing overlapping rules. Constraints from different list builders are different and cannot be mixed. If more than one rule gets triggered with a different list builder, this error occurs. Moreover, only one set of constraints is honored.

Check that all rules in the ruleset have priorities defined so that multiple rules with the same priority are not applicable for the same transaction. For more details, see the Using Approval Management section in the Developing Business Processes with Oracle Business Process Management Studio.

13.5.5 Document Is Stuck in Pending Approval and Logs Show Error "Unable to walk hierarchy for user user_name"

Problem

The document is stuck pending approval and the logs show the following error:

"Unable to walk hierarchy for user username'

This occurs when the hierarchy for the given user has not been set up correctly. For example, assume there are approval rules set up so that the rule getting fired uses the supervisory hierarchy and it is expected to route to USER01 then, USER02 then, USER03 and so on up to USER10 (ten level hierarchy). If the supervisory/management hierarchy of USER01 has not been set up, then the approval task throws an error stating the inability to go through the hierarchy for USER01.

Solution

Since the user level hierarchy does not exist for the user_name, verify the Human Capital Management (HCM) setup by manually running the HCM service to which workflow-identity-config.xml is pointing. If it does not return any result, then configure the correct hierarchy for the user in HCM.

Run the HCM service, select the fetchManager(s) API (for supervisory), and provide the following payload, where <ns2:Id>DD7A1614BBFAA0F0A4511ACD96D2C88D</ns2:Id> is the GUID of the user whose manager is being searched. The supervisory hierarchy and position hierarchy services can be found under HcmCore. The name is HierarchyProviderService. The corresponding WSDLs are as follows:

  • Supervisory hierarchy:

    http://host:port/hcmEmploymentCoreApprovalHierarchy/HierarchyProviderService?wsdl
    
  • Position hierarchy:

    http://host:port/hcmTreesModel/HierarchyProviderService?wsdl
    
<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">
<soap:Header>
<wsse:Security soap:mustUnderstand="1"
xmlns:wsse="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-sec
ext-1.0.xsd">
<wsse:UsernameToken>
<wsse:Username>FUSION_APPS_AMX_APPID</wsse:Username>
<wsse:Password
Type="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-username-token-profi
le-1.0#PasswordText">Password</wsse:Password>
</wsse:UsernameToken>
</wsse:Security>
</soap:Header>
<soap:Body
xmlns:ns1="http://xmlns.oracle.com/apps/hcm/employment/core/approvalHierarchyServi
ce/types/">
<ns1:fetchManagers>
<ns1:principal
xmlns:ns2="http://xmlns.oracle.com/apps/hcm/employment/core/approvalHierarchyServi
ce/">
<ns2:Id>DD7A1614BBFAA0F0A4511ACD96D2C88D</ns2:Id>
</ns1:principal>
<ns1:level>2</ns1:level>
</ns1:fetchManagers>
</soap:Body>
</soap:Envelope> 

The following example shows the workflow-identity-config.xml file used in a development environment:

<?xml version='1.0' encoding='UTF-8'?>
<ISConfiguration xmlns="http://www.oracle.com/pcbpel/identityservice/isconfig/">
<configurations>
<configuration realmName="myrealm">
<provider name="JpsProvider" providerType="JPS" service="Identity">
<property name="jpsContextName" value="default"/>
<property name="IdentityServiceExtension" value="HCMIdentityServiceExtension"/>
</provider>
</configuration>
</configurations>
<property name="caseSensitive" value="false"/>
<property name="caseSensitiveGroups" value="true"/>
<serviceExtensions>
<serviceExtension name="HCMIdentityServiceExtension">
<serviceProvider
classname="oracle.bpel.services.identity.hierarchy.providers.hcm.HCMHierarchyProvi
der" type="supervisoryHierarchyProvider">
<initializationParameter name="wsdlUrl"
value="http://example.com:20619/hcmEmploymentCoreApprovalHierarchy/Hie
rarchyProviderService?WSDL"/>
<initializationParameter name="csf-key-name" value="FUSION_APPS_AMX_APPID-KEY"/>
<initializationParameter name="http-read-timeout" value="30000"/>
<initializationParameter name="securityPolicyName" value="oracle/wss_username_
token_client_policy"/>
</serviceProvider>
<serviceProvider
classname="oracle.bpel.services.identity.hierarchy.providers.hcm.HCMHierarchyProvi
der" type="jobLevelHierarchyProvider">
<initializationParameter name="wsdlUrl"
value="http://example.com:20619/hcmEmploymentCoreApprovalHierarchy/Hie
rarchyProviderService?WSDL"/>
<initializationParameter name="csf-key-name" value="FUSION_APPS_AMX_APPID-KEY"/>
<initializationParameter name="http-read-timeout" value="30000"/>
<initializationParameter name="securityPolicyName" value="oracle/wss_username_
token_client_policy"/>
</serviceProvider>
<serviceProvider
classname="oracle.bpel.services.identity.hierarchy.providers.hcm.HCMPositionHierar
chyProvider" type="positionHierarchyProvider">
<initializationParameter name="wsdlUrl"
value="http://example.com:20619/hcmTreesModel/HierarchyProviderService
?WSDL"/>
<initializationParameter name="csf-key-name" value="FUSION_APPS_AMX_APPID-KEY"/>
<initializationParameter name="http-read-timeout" value="30000"/>
<initializationParameter name="securityPolicyName" value="oracle/wss_username_
token_client_policy"/>
</serviceProvider>
<serviceProvider
classname="oracle.bpel.services.identity.position.provider.hcm.PositionLookupServi
ceProvider" type="positionLookupProvider">
<initializationParameter name="wsdlUrl"
value="http://example.com:20619/hcmEmploymentCore/positionLookupServic
e?WSDL"/>
<initializationParameter name="csf-key-name" value="FUSION_APPS_AMX_APPID-KEY"/>
<initializationParameter name="http-read-timeout" value="30000"/>
<initializationParameter name="securityPolicyName" value="oracle/wss_username_
token_client_policy"/>
</serviceProvider>
<serviceProvider
classname="oracle.bpel.services.identity.position.provider.hcm.PositionDisplayName
Provider" type="positionDisplayNameProvider">
<initializationParameter name="wsdlUrl"
value="http://example.com:20619/hcmTreesModel/HierarchyProviderService
?WSDL"/>
<initializationParameter name="csf-key-name" value="FUSION_APPS_AMX_APPID-KEY"/>
<initializationParameter name="http-read-timeout" value="30000"/>
<initializationParameter name="securityPolicyName" value="oracle/wss_username_
token_client_policy"/>
</serviceProvider>
</serviceExtension>
</serviceExtensions>
</ISConfiguration>

The workflow-identity-config.xml file is in the MDS repository. For information about how to export the workflow-identity-config.xml file from MDS, see Hierarchy List Builders Display an Error Due to Security Configuration Issues and Log Report Errors in Authentication or Authorization with HCM Services.

13.5.6 Task History: Cannot Remove or Move a Participant After Yourself

Problem

A participant that was added through future participant editing cannot be removed or moved. This is because the participant was anchored to you and you are the current assignee.

Solution

This feature is not supported.

13.5.7 Hierarchy List Builders Display an Error Due to Security Configuration Issues and Log Report Errors in Authentication or Authorization with HCM Services

Problem

Hierarchy list builders (for example, supervisory, job-level, and position) used in rules are not working as expected and are throwing security configuration-related errors. For example:

SOAPFaultException: FailedAuthorization

Hierarchy services are protected services using Oracle Web Services Manager policies (for example, supervisory, job-level, and position services). Elevated privileges are used for authentication. These privileges must be configured in Fusion Applications Control and in configuration files.

Solution

To resolve this problem:

  1. Check the MDS store to see if workflow-identity-config.xml and workflow-config.xml are set up with the correct information (pointing to HCM services and the JAZN name).

    1. Run the following script to connect to the WLST shell on Linux operating systems.

      $MW_HOME/oracle_common/common/bin/wlst.sh
      
    2. Run connect(). This takes to the prompt as shown in the following example:

      wls:/offline> connect()
      Please enter your username [weblogic] :weblogic
      Please enter your password [weblogic] :
      Please enter your server URL [t3://localhost:7001]
      :t3://example.com:9401
      
    3. Run the following command after connecting:

      exportMetadata(application='soa-infra',server='soa_server1',toLocation='any
      Location on
      server',docs='/soa/configuration/default/workflow-identity-config.xml')
      

      The file is stored in the soa/configuration/default directory in the location given in the toLocation attribute. After verifying, the file can be uploaded with the following command.

      importMetadata(application='soa-infra',server='soa_
      server1',fromLocation='any Location on
      server',docs='/soa/configuration/default/workflow-identity-config.xml')
      
  2. Verify that the csf-keys are specified as initialization parameters.

    1. Ensure that the csf-key-name value is FUSION_APPS_AMX_APPID-KEY in workflow-identity-config.xml, as described in Document Is Stuck in Pending Approval and Logs Show Error "Unable to walk hierarchy for user user_name".

  3. Check in Fusion Applications Control that the keys defined for the services have the correct values for authentication.

    1. Retrieve a credential with a given map and key by using scripting to invoke the MBean operation JpsCredentialMXBean.getPortableCredential(map, key).

      (map="oracle.wsm.security", key="FUSION_APPS_AMX_APPID-KEY")
      

      For more information about this MBean, see the Managing Credentials with OPSS Scripts section of Oracle Fusion Middleware Applications Security Guide.

13.5.8 HCM Services are Timing Out or Getting Stuck

Problem

Hierarchy services sometimes get overloaded and do not respond (for example, supervisory, job-level, and position services).

Solution

Check that the workflow-identity-config.xml file for the problematic service has correct timeout settings defined as initialization parameters. The timeout parameter is http-read-timeout. For an example of the configuration file, see Document Is Stuck in Pending Approval and Logs Show Error "Unable to walk hierarchy for user user_name". Note that increasing the timeout may cause errors, such as other timeouts and only puts more load on an already overloaded server.

13.5.9 Error/Warning Reported in Retrieving the Position for a User

Problem

Not all LDAP users are defined as people within Oracle Fusion HCM. For example, users may be defined in LDAP for Oracle Fusion Supply Chain Management that are not defined as people with positions in Oracle Fusion HCM. Therefore, the position lookup can generate a message that the user does not have positions.

Solution

This is a tolerated condition and the warning can be ignored if the user name specified in the warning is not an HCM user. If this is an HCM user, the problem is on the HCM side. Add a position to these users in the HCM application.

13.5.10 Users See No Approvals in the Inbox when Using Position Hierarchy

Problem

This issue may be noticed by organizations using position hierarchy such as governments and universities. After users log in, they do not see any approvals in their inbox. This is caused by a failure to look up the position. This can be caused by network issues when accessing the HCM services. Sometimes due to load balancing or network setup, HCM services may not be accessible and Oracle BPM Worklist has errors such as the following:

WSDL port is not accessible

or

Could not find the host

Solution

  1. Check the network setup and ensure that the HCM services are accessible and WSDL ports can be accessed in the browser. Tools like ping and traceroute can also diagnose the problem.
  2. If the services are not available, bring up the services and retry.
  3. Restart the HCM server and SOA server. For information, see the Starting and Stopping Managed Servers Using Fusion Middleware Control section in Administering Oracle Fusion Middleware.

13.5.11 Task Escalation Does Not Follow Job Level, Supervisory, or Position Hierarchies

Problem

This feature is not supported. Escalation does not follow the job level, supervisory, or position hierarchies.

Solution

Build a customized plug-in. For more details, see Developing SOA Applications with Oracle SOA Suite.

13.5.12 User Is Not Allowed to Perform an Action on a Human Workflow Task

For troubleshooting information about this issue, see section Task Action Issues in the Administering Oracle SOA Suite and Oracle Business Process Management Suite.

13.5.13 Email Notification Is Not Being Sent Out

For troubleshooting information about this issue, see section Notification Issues in the Administering Oracle SOA Suite and Oracle Business Process Management Suite.

13.5.14 Notifications Sent Are Not Actionable

For troubleshooting information about this issue, see section Notification Issues in the Administering Oracle SOA Suite and Oracle Business Process Management Suite. This section describes how to make the task actionable in the Human Task Editor during design time.

In addition, if notifications are sent, but are not actionable, the administrator may have configured the notification to be nonactionable through Oracle BPM Worklist. To make notifications actionable, select the Make notification actionable checkbox under the Event Driven subtab of the Task Configuration tab.

13.5.15 Actionable Notifications Are Sent But No Action is Taken After Responding

For troubleshooting information about this issue, see section Notification Issues in the Administering Oracle SOA Suite and Oracle Business Process Management Suite.

13.5.16 After LDAP Configuration with Oracle WebLogic Server, Users Appear in the Console, But a "No Role found matching the criteria" Error Appears

For troubleshooting information about this issue, see section Identity Service Issues in the Administering Oracle SOA Suite and Oracle Business Process Management Suite.

13.5.17 Only a Subset of Users in LDAP Can Log In to Oracle BPM Worklist

For troubleshooting information about this issue, see section Identity Service Issues in the Administering Oracle SOA Suite and Oracle Business Process Management Suite.

13.5.18 "Unknown Macro" Exception Appears when Myrealm Is Passed as a Parameter to the Identity Context To Identity Service APIs

For troubleshooting information about this issue, see section Identity Service Issues in the Administering Oracle SOA Suite and Oracle Business Process Management Suite.

13.5.19 Add Participant Button in Oracle BPM Worklist Is Disabled

For troubleshooting information about this issue, see section Task History Issues in the Administering Oracle SOA Suite and Oracle Business Process Management Suite.

13.5.20 Task Modifications Made in a Runtime Tool Are Not Appearing for the Task

For troubleshooting information about this issue, see section Design Time at Runtime Issues in the Administering Oracle SOA Suite and Oracle Business Process Management Suite.

13.5.21 How Can I Set Commonly Used Human Workflow Configuration Parameters?

For troubleshooting information about this issue, see section Human Workflow Service/System MBean Browser Issues in the Administering Oracle SOA Suite and Oracle Business Process Management Suite.

13.5.22 Set Human Workflow Configuration Parameters Not Available in the Fusion Applications Control Properties Pages

For troubleshooting information about this issue, see section Human Workflow Service/System MBean Browser Issues in the Administering Oracle SOA Suite and Oracle Business Process Management Suite.

13.5.23 System MBean Browser Does Not Reflect My Changes After Editing the Human Workflow Config MBeans

For troubleshooting information about this issue, see section Human Workflow Service/System MBean Browser Issues in the Administering Oracle SOA Suite and Oracle Business Process Management Suite.

13.5.24 Human Workflow Services Are Not Locating Resource Bundles or Classes Located at the Workflow Customizations Class Path URL

For troubleshooting information about this issue, see section Human Workflow Service/System MBean Browser Issues in the Administering Oracle SOA Suite and Oracle Business Process Management Suite.

13.5.25 Manually Set the URL for Displaying Task Details for a Particular Human Workflow Task Component

For troubleshooting information about this issue, see section Human Workflow Service/System MBean Browser Issues in the Administering Oracle SOA Suite and Oracle Business Process Management Suite.

13.5.26 Test the Health of the Installed Server

For troubleshooting information about this issue, see section Test-to-Production Issues in the Administering Oracle SOA Suite and Oracle Business Process Management Suite.

13.5.27 User Authentication Error (in this example, the user is FMW_USERID and identityContext is jazn.com)

For troubleshooting information about this issue, see section Test-to-Production Issues in the Administering Oracle SOA Suite and Oracle Business Process Management Suite.

13.5.28 Error During Import of Task Payload Mapped Attribute Mappings

For troubleshooting information about this issue, see section Test-to-Production Issues in the Administering Oracle SOA Suite and Oracle Business Process Management Suite.

13.5.29 Error During Rule Migration

For troubleshooting information about this issue, see section Test-to-Production Issues in the Administering Oracle SOA Suite and Oracle Business Process Management Suite.

13.5.30 When Defining a Rule Based on the Approval Group List Builder During Runtime, a Message Says the Group Does Not Exist

For troubleshooting information about this issue, see section AMX Extension Issues in the Administering Oracle SOA Suite and Oracle Business Process Management Suite.

13.6 Patching and Deployment

For troubleshooting information about patching and deployment issues, see the Troubleshooting Patching Sessions for SOA Composites section in the Oracle Fusion Applications Patching Guide.

13.7 Performance

This section contains the following topics that describe common problems and solutions for Oracle SOA Suite performance:

13.7.1 SOA Transactions are Failing and Logs Indicate the SOA Database is Running Out of Space

Problem

SOA transactions are failing and logs indicate that the database is running out of space. The problem may occur with the SOA dehydration store or MDS store running out of space due to a high volume of transactions. In the latter example, the following errors are seen:

java.sql.SQLException: ORA-01653: unable to extend table SH_MDS.CUBE_INSTANCE by
16 in tablespace FUSION_TS_TOOLS 

This indicates that the tablespace is full and the database cannot extend it.

Solution

  1. Purge the SOA dehydration store tables periodically, taking into account the appropriate record retention policies and ensuring that the applications have no dependencies on runtime data.

    The purge should be followed by commands to coalesce the space. For the purging strategy to work, it is important to understand how long to retain the data in the database. Factors that drive the retention policy include the following:

    • Legal requirements

    • Line of business requirements

    • Overall company policy on retention of data

    The longer the retention policy, the greater the volume of data that must be stored and, correspondingly, the higher the disk capacity requirements.

  2. Ensure that the database hardware has sufficient resources to handle the demands of Oracle Database partitioning before configuring the tables for partitioning.

    For the SOA dehydration store, database partitioning using range partitioning and hash partitioning is an optimal solution. Partitioning by definition means storing data in multiple tables to reduce bigger data sets into smaller, more manageable data sets. Partitioning strategies play a large role in easing maintenance overheads (dropping and pruning the partition) and improving performance. Partitioning should at least be done for tables having high activity. This plays a large role in balancing disk I/O and preventing hot disks. One important requirement that must be met before configuring the tables for partitioning is to ensure that the database hardware has sufficient resources to handle the demands of Oracle Database partitioning. If preproduction testing has indicated that the installation is large, Oracle expects that the environment (CPU, memory, and disk space) has been sized correctly to take advantage of the partitioning features.

  3. Tune database parameters for memory, tablespace, and partitions to get maximum performance.
  4. For other tablespaces running out of space, use the following query to check for free tablespace:
    SELECT Total.tablespace_name "Tablespace Name", Free_space, (total_space-Free_
    space) Used_space, total_space, round((Free_space*100/total_space),2) "Free %"
    FROM (select tablespace_name, sum(bytes/1024/1024) Free_Space from sys.dba_
    free_space group by tablespace_name) Free,
    (select tablespace_name, sum(bytes/1024/1024) TOTAL_SPACE from sys.dba_data_
    files group by tablespace_name) Total
    WHERE Free.Tablespace_name = Total.tablespace_name AND Total.tablespace_name =
     '<tablespacename>'
    ORDER BY 5;
    
  5. To increase tablespace settings, use the administrator account. For example:
    alter tablespace tablespace_name add datafile 'datafile_name' size 500m
    autoextend on;
    

The following documentation provides additional information about the topics discussed in this section:

  • For information tablespace settings, see the Resolving Message Failure Caused by Too Many Open Files section in the Administering Oracle SOA Suite and Oracle Business Process Management Suite.

  • For information about creating a purging strategy, see the Managing Database Growth section in the Administering Oracle SOA Suite and Oracle Business Process Management Suite.

  • For information about tuning parameters, see the Tuning Database Parameters section in the Tuning Performance.

13.7.2 Slow Application Performance Such as Longer Time to Serve Pages or Finish Transactions

Problem

Slow application performance and/or memory trashing. For example, it may take longer to load and serve pages or to complete composite transactions. Response time may seem slower compared to normal behavior.

There are various reasons for slow performance. It may be due to a large number of servers running on the same host, or there may be a large number of records/sessions/locking at the database. Thread contention can also be a reason for poor performance.

All configuration changes in Fusion Applications Control may be unavailable due to this problem.

Solution

  1. Check the CPU utilization to see if it is saturated due to a heavy load or an excessive number of processes in relation to CPU capacity.

    If CPU utilization is at 100% during normal load hours (the target should be 70-80%), there is no capacity to handle a peak load and the hardware resources are insufficient. Add scale-out servers to handle the additional load.

  2. Check applications using Fusion Applications Control to report on performance. Check the performance of ADF services and the invoke/response times in the BPEL process audit trail to identify if the issue is in Oracle Fusion Applications.

  3. To maximize performance, it is recommended not to set the logging level higher than the default INFO level.

    For debugging purposes, the logging level must be set to the FINEST level. However, after issues are resolved, reset the logging level to the default level for best performance. It is also recommended to set Audit Level to Production in the SOA Infrastructure Common Properties page. This can be set in Fusion Applications Control as follows:

    1. Right-click soa-infra (SOA_cluster_name).

    2. Choose SOA Administration then, Common Properties.

    3. Set Audit Level to Production.

  4. Purge periodically based on retention requirements to maintain the service level agreements (SLAs).

  5. Check the memory/IO/paging/swapping/CPU usage load statistics using Top or Glance or another monitoring tool.

  6. Optimize the JVM to avoid full garbage collection or out-of-memory errors.

    Frequent garbage collection can be either due to higher memory usage or memory leaks.

    1. Ensure that the sum of the maximum heap size of all the JVMs running on the system does not exceed the amount of available physical RAM to avoid operating system level paging activity.

    2. Use the JRockit mission control memory profiling tools to get thread dumps and memory snapshots, which helps Oracle Support Services debug any code issues.

  7. Optimize threads to avoid contention. Get a thread dump to investigate and submit it to Oracle Support Services.

  8. Check the JVM and thread dumps for methods invoking the database to identify if database performance is a bottleneck.

  9. Run database Automatic Workload Repository (AWR) snapshots to identify causes of database performance issues.

  10. Ensure that database statistics are updated at regular intervals and other tunable parameters for memory, tablespace, and partitions are used effectively to obtain maximum performance.

    Here are some common tuning recommendations:

    • Put indexes and tables in as physically separate disk areas if possible.

    • Never put rollback segments with data or index segments.

    • Separate highly active tables and indexes into their own tablespaces.

    • Partition high activity tables and indexes to help balance disk I/O and prevent hot disks.

    • Have processes in place to generate database table statistics at regular intervals.

  11. Tune database tables to control the high watermark (HWM) contention of large objects. Tune database advanced queues (AQ) to control high watermark (HWM) contention and ensure consistent performance of producing and consuming messages from AQ.

    Specifically, the AQs to be aware of are as follows:

    Family AQ Queue Name

    EDN

    EDN_EVENT_QUEUE_TABLE and EDN_OAOO_DELIVERY_TABLE

    CRM

    CRM_AsyncWS_Request and CRM_AsyncWS_Response

    HCM

    HCM_AsyncWS_Request and HCM_AsyncWS_Response

    FIN

    FIN_AsyncWS_Request and Fin_AsyncWS_Response

    PRC

    PRC_AsyncWS_Request and PRC_AsyncWS_Response

    PRJ

    PRJ_AsyncWS_Request and PRJ_AsyncWS_Response

    SCM

    SCM_AsyncWS_Request and SCM_AsyncWS_Response

    COMMON

    COMMON_AsyncWS_Request and COMMON_AsyncWS_Response

    IC

    IC_AsyncWS_Request and IC_AsyncWS_Response

    Cross Family Business Event Subscriptions

    ACR_XFAMILY_EVENT_Q and ACR_XFAMILY_EVENT_QT

  12. Tune the BPEL and EDN thread counts to ensure optimal settings (for example, the Dispatcher Invoke Threads and Dispatcher Engine Threads properties on the BPEL Service Engine Properties page in Fusion Applications Control). If the thread configuration is too high, the servers run out of memory. If they are too low, the messages start backing up.

  13. Tune the BPEL properties to reduce overhead (for example, disable the ValidateXML and StatsLastN (statistics gathering batch size) properties on the BPEL Service Engine Properties page in Fusion Applications Control) if they are not needed.

  14. In case of integration with packaged applications (for example, Siebel), check if the issue lies with the legacy applications.

The following documentation provides additional information about the topics discussed in this section:

  • For information about performance tuning the various components, see the Top Performance Areas and the SOA Suite Components section in the Tuning Performance.

  • For information about setting properties on the BPEL Service Engine Properties page, see the Configuring BPEL Process Service Engine Properties section in the Administering Oracle SOA Suite and Oracle Business Process Management Suite.

  • For information about identifying the tables where data growth may lead to performance issues, see the Identifying Tables Impacted By Instance Data Growth section in the Tuning Performance.

  • For information about tuning, see the Tuning Database Parameters section in the Tuning Performance.

  • For information about the use of the purge scripts, see the Managing Database Growth section in the Administering Oracle SOA Suite and Oracle Business Process Management Suite.

13.7.3 Slow Fusion Applications Control Performance

Problem

Fusion Applications Control pages are loading very slowly.

Solution

To improve Fusion Applications Control page load times on pages with instance and fault metrics, set the SOA Infrastructure Display Data Counts properties.

  1. Right-click soa-infra (SOA_cluster_name).
  2. Choose SOA Administration then, Common Properties.
  3. In the Display Data Counts section, deselect the Disable fetching of instance and fault count metrics checkbox.
  4. Reduce the Duration Details value.
  5. Click Apply.

In addition to setting this property, it is also useful to scope queries by time where available (for example, only show items occurring in the last hour).

For more information, see the Optimizing the Loading of Pages with Instance and Fault Metrics section in the Administering Oracle SOA Suite and Oracle Business Process Management Suite.

13.8 Maintenance

This section contains the following topics that describe common problems and solutions for Oracle SOA Suite maintenance:

13.8.1 JVM is Suspended If Any In-use Log Directories are Deleted

Problem

JRockit writes log information (called flight recorder files) under /tmp when using JRockit Mission Control. When it rotates to a new flight recorder file, the JVM is suspended until it completes. If the old directories in use under /tmp are deleted (for example, a cleanup or custom maintenance script to run to clear /tmp when it is close to full to avoid server downtime), the domain may go into a suspended state because the JVM may wait for a directory that no longer exists.

Solution

  1. Change any cleanup scripts/procedures to first shut down the domain cleanly.
  2. Perform a cleanup of /tmp.
  3. Restart the domain.

To recover existing, suspended JVMs without restarting them, the directories that the JVM was trying to use must be recreated.

13.8.2 Server Start Script Does Not Work for Scale-Out (Postprovisioning) Servers

Problem

Scale-out servers, created after provisioning, cannot be started using back-end commands. The script start_fusion_Allservers.sh only starts servers that are created during provisioning time.

Solution

To start scale-out servers, use Fusion Applications Control. See the Start and Stop an Oracle WebLogic Server Cluster in a Product Family for a Configuration Change section.

13.8.3 SOA Server Does Not Start

Problem

The SOA server (soa_infra) does not start.

Solution

There can be various reasons for server startup issues. A discovery-based approach to find the root cause is required. Check the server and diagnostic logs as a first attempt to diagnose the issue. In addition, check the following:

  1. Check if the database is not available or there are not enough connections available. Some failures with SOA runtime can result from database outage/connectivity issues. Perform the following steps:

    1. Log in to Oracle WebLogic Server Administration Console.

    2. In the Domain Structure, view the status by selecting Services then, Data Sources then, SOADatasource then, Monitoring and then, Testing to test the data source. This can also be checked from a SQL prompt.

  2. Check the list of ports used for port conflicts.

  3. Check if the MDS repository is unable to load shared documents (incorrect MDS configuration or the database that holds the MDS schema is not reachable).

  4. Check the Coherence configuration if using a SOA cluster (use of unicast versus multicast).

    This issue only applies after provisioning is complete. Clustering of SOA servers may fail if there are port conflicts (used by Coherence). For example, one SOA server may be picking up the deployment, but the other server is not. In some cases, this may only present the following error:

    [soa_server1] [ERROR] [] [Coherence] [tid: Logger@352821903 3.6.0.4] 
    [ecid: 46f620208907e045:63f295ec:12dd091ec2e:-8000-0000000000000003,1:27187] 
    [APP: soa-infra] 2011-01-28 23:06:19.463/414.816 Oracle Coherence GE 3.6.0.4 
    <Error> (thread=[ACTIVE] ExecuteThread: '0' for queue: 'weblogic.kernel.Default
     (self-tuning)', member=n/a): 
    Error while starting cluster: com.tangosol.net.RequestTimeoutException: Timeout
     during service start: ServiceInfo(Id=0, Name=Cluster, Type=Cluster[[...
    

    In this example, Coherence timeouts are prominently available. However, sometimes it presents itself with an unrelated error, such as the following:

    Error creating bean with name 'SensorManager' defined in ServletContext
    resource
    

    The root cause of this is still primarily related to Coherence configuration.

  5. Check if both the Administration Server and Managed Server ports are open and accessible.

  6. Check if Managed Server startup failed because the Administration Server is not reachable.

  7. Check network issues (for example, IP routing filtering/rules that may be causing issues).

  8. Check Oracle WebLogic Server LDAP security corruption.

    The Managed Server may report that policies for the application System MBeans Browser already exist or do not exist.

For more information, see sections Setting the Frontend URL for the Administration Console and Setting Redirection Preferences and Setting the Frontend HTTP Host and Port in Enterprise Deployment Guide for Oracle SOA Suite.

13.8.4 SOA Server Is Not Responding To Administrative Commands

Problem

The SOA server (soa_infra) is not responding to administrative commands. This problem can be due to the environment using a load balancer, and the default listener address or channel is local-only. Therefore, the connection cannot be made from the external client or server.

Solution

To resolve this problem, perform the following steps from the Oracle WebLogic Server Administration Console:

  1. Ensure that the listener address is correctly defined and accessible.

    1. From the Domain Structure, expand Environment and select Servers.

    2. From the Servers table, click AdminServer(admin).

    3. From the Settings for AdminServer page, click the Protocols tab.

    4. Click the HTTP subtab.

    5. Set the Frontend Host property to the load balancer address.

  2. Similarly, set the Frontend HTTP Host and Frontend HTTP Port properties for the SOA cluster:

    1. From the Domain Structure, expand Environment and select Clusters.

    2. From the Clusters table, click domain_SOACluster

    3. From the Settings for the domain_SOACluster page, click the HTTP subtab.

    4. Set the Frontend Host property to the load balancer address.

    5. Change the Frontend HTTP Host and Frontend HTTP Port properties.

For more information, see sections Setting the Frontend URL for the Administration Console and Setting Redirection Preferences and Setting the Frontend HTTP Host and Port section in the Enterprise Deployment Guide for Oracle SOA Suite.

13.8.5 Delete a Composite Left in an Inconsistent State Due to a Failed Patch

For troubleshooting information about this issue, see Troubleshoot SOA Composite Deployment Failures in the Oracle Fusion Applications Patching Guide.

13.8.6 Increased Load Observed on RAC Instances when Using Multiple Oracle RAC Servers

Problem

An increased load is seen on Oracle Real Application Clusters (Oracle RAC) instances when using multiple Oracle RAC servers.

Solution

Use a multidata source against Oracle RAC instances using load balancing rather than failover. This ensures that the load is evenly distributed rather than all load staying on one node until it fails over, at which point all the connections are failed over to the other node.

Ensure thatthe Connection Test Frequency Seconds property at the multidata source level are set to a nonzero value. A value that is too low means more load on the listeners/RAC instances when multiple servers attempt to reconnect at the same time.

The Oracle Fusion Applications default configuration for the these settings has been tuned for best performance. Only change these settings when the configuration has not been set out-of-the-box by Oracle Fusion Applications.

For more information about configuring JDBC multidata sources, see Administering JDBC Data Sources for Oracle WebLogic Server.

13.8.7 List of SOA Composite State Values

Problem

Get a list of all composite state values from the *_SOAINFRA.COMPOSITE_INSTANCE state table (for diagnosis).

Solution

Table 13-2 shows the composite state values.

Table 13-2 Composite State Values

State Description

0

Running

1

Completed

2

Running with faults

3

Completed with faults

4

Running with recovery required

5

Completed with recovery required

6

Running with faults and recovery required

7

Completed with faults and recovery required

8

Running with suspended

9

Completed with suspended

10

Running with faults and suspended

11

Completed with faults and suspended

12

Running with recovery required and suspended

13

Completed with recovery required and suspended

14

Running with faults, recovery required, and suspended

15

Completed with faults, recovery required, and suspended

16

Running with terminated

17

Completed with terminated

18

Running with faults and terminated

19

Completed with faults and terminated

20

Running with recovery required and terminated

21

Completed with recovery required and terminated

22

Running with faults, recovery required, and terminated

23

Completed with faults, recovery required, and terminated

24

Running with suspended and terminated

25

Completed with suspended and terminated

26

Running with faulted, suspended, and terminated

27

Completed with faulted, suspended, and terminated

28

Running with recovery required, suspended, and terminated

29

Completed with recovery required, suspended, and terminated

30

Running with faulted, recovery required, suspended, and terminated

31

Completed with faulted, recovery required, suspended, and terminated

32

Unknown

64

State

13.8.8 Log Files Have Been Deleted or Are Missing

Problem

The SOA log files are getting deleted. This is typically due to the retention policy set in Fusion Applications Control.

Solution

Change the retention policy for the odl-handler to the appropriate value in Fusion Applications Control:

  1. Right-click soa-infra.
  2. Choose Logs then, Log Configuration.

13.9 Custom Development (Extensibility)

This section contains the following topics that describe common problems and solutions for Oracle SOA Suite runtime:

13.9.1 Unable to Use Layered Customization on Specific Artifacts

Problem

Only certain artifacts allow layered customization in Oracle JDeveloper because it requires editors that use XMLEF to make delta changes to the underlying Document Object Model (DOM). XMLEF is the XML Editing Framework. XMLEF is an Oracle JDeveloper framework that supports flexible editing of XML documents and is used extensively in layered customizations.

Solution

The following SOA artifact types are customizable:

  • Composite (composite.xml)

  • BPEL process (.bpel)

  • Oracle Mediator (.mplan)

The following SOA artifact types are not customizable:

  • XSL map (.xsl)

  • Human task (.task)

  • Decision service (.decs)

  • Rules (.rules)

  • Event definition (.edl)

  • Domain value map (.dvm)

The following common artifact types are not customizable because Oracle XDK/WSDL APIs do not support customization (although their editors do use XMLEF to make delta changes to the underlying DOM):

  • XSD schema (.xsd)

  • WSDL document (.wsdl)

Noncustomizable artifacts are not sensitive to a customization context. Any changes to those artifacts from any customization context are visible to other customization contexts.

For more information about customizations in Oracle JDeveloper and runtime tools (such as Oracle SOA Composer and Oracle BPM Worklist), see the Customizing and Extending SOA Components section in the Oracle Applications Cloud Customizing the Applications for Functional Administrators.

13.9.2 New or Deleted Artifacts Do Not Appear as a Layered Customization

Problem

Because MDS customization does not capture artifact creations or deletions as deltas in the customization role, artifact creations and deletions in one customization context are visible to other customization contexts.

Solution

Artifact creations and deletions are not customization context sensitive. Therefore, only existing artifact customizations are supported in layers. Because new artifacts cannot be added as part of a layer, the artifacts are added to the project like any other base artifact. Any component artifacts that are added to the project are not incorporated into the runtime composite model unless the composite.xml file has explicitly referred to it. Therefore, if a customization did not alter composite.xml to include the newly added component, the new artifacts have no impact. Of course, the new artifacts are saved along with the base artifacts.

Additions of any new artifact introduced in the composite definition as a customization (for example, XSLT artifacts) must be named appropriately to prevent collisions with base XSLT artifacts. References to the new XSLT files must be made within the Oracle BPEL Process Manager/Oracle Mediator artifacts (through a layer).

13.9.3 Warnings Regarding xml:id when Building or Deploying a Customized Composite

Problem

When building or deploying the customized composite, warnings similar to this may appear because the xml:id element is not supported:

[scac] [WARNING] Line [13] Column [29] Schema validation failed for
 C:\customizationdemo\project1\composite.xml
<Line 13, Column 29>: XML-24535: (Error) Attribute
 'http://www.w3.org/XML/1998/namespace:id' not expected.

Solution

This warning can be ignored and should not prevent the composite successfully from deploying.

13.9.4 Distributed Queue Topic Messages Are Retrieved Multiple Times by Subscribers

Problem

In a clustered environment, a queue topic is being retrieved multiple times by the subscribers. SOA clusters are typically homogenous (that is, each node has the same services running). Therefore, if a queue topic has multiple subscribers (for example, an error queue is subscribed to by a fallout notification service and a trouble ticketing service), then in a clustered environment, each service is running on every node. If it is a four-node cluster, then there are four instances of the fallout notification service and four instances of the trouble ticketing service, each of which retrieve the topic message. This is not desirable.

Solution

Set the consuming service singleton property to ensure that in a multi-node environment, only one of the subscriber instances can consume the topic message. In the example above, the fallout notification service and the trouble ticketing service each should set their singleton property so that each of them consumes the message only once by any one of the four instances.

<service name="ConsumeFaultMessage" ui:wsdlLocation="ConsumeFaultMessage.wsdl">
<interface.wsdl
interface="http://xmlns.oracle.com/pcbpel/adapter/jms/EH/AIAReadJMSNotificationPro
cess/ConsumeFaultMessage/#wsdl.interface(Consume_Message_ptt)"/>
<binding.jca config="ConsumeFaultMessage_jms.jca">
  <property name="singleton">true</property>
</binding.jca>
</service>

13.9.5 Internal Key is Displayed Instead of a Translated String

Problem

An internal key is displayed instead of a translated string in the human task title, human task outcome, email subject and body, and human task mapped attributes displayed in Oracle BPM Worklist.

Solution

To resolve this problem:

  1. Check the SOA server-diagnostic.log for errors for each server in the cluster. If a resource bundle or the key is not found, a similar error stack that contains the composite name and resource bundle name is seen.

    2010-09-29T23:45:46.702-07:00 soa_server1 ERROR \[\]
     oracle.soa.services.workflow.soa tid: orabpel.invoke.pool-4.thread-7 userId:
     weblogic
    ecid:59ab739a26595dc1:-38d33932:12b614ddb44,0:1:100000026
    APP: soa-infra composite_name: RC3HumanTaskComposite component_name: Humantask1
     component_instance_id: composite_instance_id: 310003
    <WorkflowServiceEngine.request> Operation 'initiateTask' failed with exception
       'EJB Exception: : java.util.MissingResourceException:
    Can't find bundleforbase name
       oracle.apps.hcm.people.soa.resource.HcmPeopleTopSoaBundleDummy, locale
     en\[\[
    at
    java.util.ResourceBundle.throwMissingResourceException(ResourceBundle.java:1427
    )
    at java.util.ResourceBundle.getBundleImpl(ResourceBundle.java:1250)
    at java.util.ResourceBundle.getBundle(ResourceBundle.java:952)
    
  2. Confirm that the resource bundle has been deployed to the correct location in SOA MDS by first exporting the contents of SOA MDS and confirming that the resource bundle class is defined under /apps/resource. Follow these steps to export the metadata contents from Fusion Applications Control:

    1. From the navigation pane, expand SOA and select soa-infra.

    2. From the SOA Infrastructure menu, choose Administration then, MDS Configuration.

    3. Select Export metadata documents to an archive on the machine where the web browser is running.

    4. Click Export.

  3. If the resource bundle is not defined in SOA MDS or is in the wrong location in SOA MDS, then an error during patching may have been encountered or there is a problem with the resource bundle definition.

    If the resource bundle is properly defined in SOA MDS and the string that is not translated is a mapped attribute that appears in the column heading of the worklist, then perform the followings steps to:

    • Set the System MBean Browser WorkflowCustomClasspathURL property to a value of "".

    • Apply the changes.

    • Set WorkflowCustomClasspathURL to "oramds:///apps/resource/".

    • Apply the changes in Fusion Applications Control.

    1. Log in to Fusion Applications Control in the domain where the JAR file was deployed.

    2. From the navigation pane, expand SOA and select soa-infra.

    3. From the SOA Infrastructure menu, choose SOA Administration then, System MBean Browser.

    4. Go to Application Defined MBeans then, oracle.as.soainfra.config then, Server: SOA_cluster_name then, WorkflowConfig and then, human-workflow.

    5. Remove the value in the Value column for the WorkflowCustomClasspathURL attribute.

    6. Click Apply.

    7. Enter oramds:///apps/resource/ in the Value column of the WorkflowCustomClasspathURL attribute.

    8. Click Apply.

    If the resource bundle is properly defined in SOA MDS and the string that is not translated is not a mapped attribute that appears in the column heading of the worklist, then stop and restart the composite that references the resource bundle by following these steps:

    1. Log in to Fusion Applications Control in the domain where the JAR file was deployed.

    2. From the navigation pane, expand SOA and select soa-infra.

    3. Click Shut Down.

    4. Click Yes in the confirmation window.

    5. Click Start Up.

    6. Click Yes in the confirmation window.

  4. Retest the transaction flow.

13.9.6 BPEL Activity Errors and the Log Shows Error "com.oracle.bpel.entity.dataprovider.EntityVarMgrException:zero Item"

Problem

If entity variables are used in Oracle BPEL Process Manager, this error may be thrown at runtime:

com.oracle.bpel.entity.dataprovider.EntityVarMgrException:zero item

When the entity variable tries to bind the key provided to it at runtime in Oracle BPEL Process Manager and if it cannot find the key in the database, it throws this error. This may be due to human error. Either the developer has passed an incorrect primary key value to bind to the entity variable or the composite has been deployed to the wrong business component (BC) URL in the deployment plan. To resolve, ensure that the primary key value that gets bound to the entity variable at runtime exists in the database used by the BC service.

13.9.7 BPEL Activity Errors and Log Shows Error "XPath variable or expression <expression> is empty"

Problem

If the payload node used in an activity such as an assign activity in BPEL is empty/null, then it throws this error.

The XPath variable or expression
/ns4:findDtsPurchasingDeliverable1FindByDelStatusResponse/ns4:resultns2:Deliverabl
eId=$DeliverableIdVar/ns2:BatchId is empty at line 344. selectionFailure:
 com.oracle.bpel.client.BPELFault: faultName:
 {{http://schemas.xmlsoap.org/ws/2003/03/business-process/}selectionFailure}

Solution

This error is thrown when a selection operation performed either in a function or in an assignment encounters an error. If there is a possibility of getting a null/empty value for a payload element at runtime, then it is possible to get around this error by enclosing this element in a switch case with a condition check of (string-length(payload_element) > 0) or a bpelx:assert element to test for null conditions in their code. If these errors are encountered at runtime, there is information in the log and the BPEL audit trail flow.

13.9.8 Unavailable Composite Errors Occurring Even Though the Target Service Is Up and Running

Problem

When a BPEL process has partner links targeted to external servers, during start up of the SOA server or activation of the BPEL composite, the BPEL service engine recognizes that the target server is down and marks the BPEL composite as unavailable. Even after the target server becomes available, there is no way to make the BPEL process available without restarting the complete SOA server or redeploying the BPEL process. Until then, the BPEL composite is not listed in the navigation pane of Fusion Applications Control and is only visible through the Deployed Composites tab. Even though the composite is displayed here (sometimes as active), if the process is clicked on, this error is received:

The composite <Process Name>[ <Version> ] is not available. This could happen
because either the composite has been undeployed or EM has not yet discovered
this composite.

Solution

The issue is caused by using a concrete WSDL file in the BPEL definition. Using an abstract WSDL prevents the BPEL composite/process from becoming inactive or its state from becoming retired when the target server or service is down.

Oracle Fusion Applications develop composites with oramds:// references to WSDL files at design time for both the binding and the WSDL location. At deployment, the binding's concrete location (which is only used at runtime) is fixed.

Follow these steps to use an abstract WSDL by making a local copy of the target WSDL file in the BPEL project.

  1. When creating a web service partner link in a composite in the Create Web Service dialog, select the copy WSDL and its dependent artifacts into the project checkbox.
  2. After the web service has been created and the partner link is wired (connected) with the BPEL process service component, two WSDL files are seen in the Application Navigator of Oracle JDeveloper:
    • Webservice.WSDL (the local copy of the target WSDL)

    • WebserviceRef.WSDL

  3. Redeploy the SOA composite.
  4. Retest the scenario.

13.9.9 High-Volume Cross Reference (XREF_DATA) Table Impacts Performance and Maintenance

Problem

When the volume of data in the XREF Oracle SOA schemas grows very large, maintaining the database can become difficult. It may have an impact on performance and may be identified in AWR snapshots.

Solution

To address this maintenance challenge, Oracle SOA 11g has been instrumented with partition keys that enable database administrators (DBAs) to take advantage of the Oracle RDBMS partitioning features and capabilities. Even thought multiple types of partitioning are possible, the list partitioning strategy is the preferred one for partitioning the cross reference data table.

List partitioning allows greater flexibility in the mapping of rows to partitions than range or hash partitioning. Because the cross reference data (XREF_DATA) is distributed based on discrete column values, unordered and unrelated sets of data can be grouped with no relationship between the partitions. For this table, the list partitioning is based on the column XREF_TABLE_NAME. Because the list of entities that have cross reference data is known, this strategy is ideal. The only caveat is that this activity must be repeated if a new entity gets added to the system.

Better understanding of data distribution can lead to further refinement and space management by employment of composite partitioning strategies such as list - list and list - range schemes. For information about partitioning, see the Oracle Database Performance Tuning Guide.

In addition to this partitioning strategy, the Oracle Mediator's feature by which custom database tables can be created to store cross reference data for certain high volume entities can also be used. For more information, see Developing SOA Applications with Oracle SOA Suite.

13.9.10 Access Denied Error While Invoking an Oracle ADF BC Service from BPEL

Problem

A common case in Oracle Fusion Applications is Oracle ADF BC service invocations from various SOA components. If the user context attached with the SOA composite instance or identity switching used in a SOA reference does not have proper permission to access the Oracle ADF BC service, then an access denied error is displayed.

Solution

Common causes for this error are as follows. These must be resolved.

  • The Oracle ADF BC service does not have required permissions in jazn-data.xml.

  • The permissions provided in jazn-data.xml are not properly reflected in system-jazn-data.xml.

  • The ejb-jar.xml file does not have the <interceptors> tag added or it has an incorrect application name. An example of ejb-jar.xml with the correct tags is as follows:

    <ejb-jar xsi:schemaLocation="http://java.sun.com/xml/ns/javaee
     [http://java.sun.com/xml/ns/j2ee/ejb-jar_3_0.xsd]"version="3.0">
    <enterprise-beans>
    <session>
    <ejb-name>oracle.apps.financials.payables.invoices.transactions.invoiceApproval
    Service.InvoiceApprovalBCServiceBean</ejb-name>
    <resource-ref><res-ref-name>jdbc/ApplicationDBDS</res-ref-name><res-type>javax.
    sql.DataSource</res-type><res-auth>Container</res-auth></resource-ref>
    <resource-ref><res-ref-name>jdbc/ApplicationServiceDBDS</res-ref-name><res-type
    >javax.sql.DataSource</res-type><res-auth>Container</res-auth></resource-ref>
    </session>
    </enterprise-beans>
    &nbsp;
    <interceptors> <interceptor>
    <interceptor-class>oracle.security.jps.ee.ejb.JpsInterceptor</interceptor-class
    >
    <env-entry> <env-entry-name>application.name</env-entry-name>
     <env-entry-type>java.lang.String</env-entry-type>
     <env-entry-value>fscm</env-entry-value>
    <injection-target>
    <injection-target-class>oracle.security.jps.ee.ejb.JpsInterceptor</injection-ta
    rget-class>
    <injection-target-name>application_name</injection-target-name>
    </injection-target>
    </env-entry>
    </interceptor> </interceptors>
    &nbsp;
    <assembly-descriptor>
    <interceptor-binding>
    <ejb-name>*</ejb-name><interceptor-class>oracle.security.jps.ee.ejb.JpsIntercep
    tor</interceptor-class> </interceptor-binding>
    </assembly-descriptor>
    &nbsp;
    </ejb-jar>
    

13.9.11 Click Manage Approvals Page Gives a "SOA server may be down" or "No data to display" Error

Problem

At runtime, when clicking the Manage Approvals page (for both a requisition and purchase order), a SOA server may be down error may be received among other errors. The page may also show a No data to display error.

Solution

Verify if wf_client_config.xml is pointing to the correct SOA server. Oracle Fusion Applications environments are all multidomain and applications that must query their local SOA runtime must do so through the wf_client_config.xml file configuration.

For more information about the wf_client_config.xml file, see Task Detail Page is Not Available.

13.9.12 Synchronous Service Invocation Errors Due to WS-Addressing

Problem

When integrating with external web services, there may be issues related to the WS-Addressing headers in the request and response XML documents used in synchronous request-response scenarios. This may even occur if there is a dynamic endpoint that resolves to an external web service that does not support WS-Addressing.

  • A SOA composite acting as a client fails to invoke a service provider that does not support WS-Addressing headers in the request message for synchronous interactions.

  • An external service consumer that does not support WS-Addressing headers in the response message fails to invoke a synchronous operation of a SOA composite.

  • A service provider throws a wsa:InvalidAddressingHeader error when SOAPAction is defined in the WSDL <binding> element of the service provider interface.

Solution

The WS binding component of Oracle Fusion Middleware 11g generates WS-Addressing headers by default, which is as per the specification, but may be incompatible with some web services. This behavior can be overwritten using properties that make possible to control the generation of WS-Addressing header information for interoperability purposes.

  • A SOA composite acting as a client fails to invoke a service provider that does not support WS-Addressing headers in the request message for synchronous interactions.

    When the Oracle SOA Suite components act as service clients (consumers) and invoke synchronous operations of external web services, the invocation fails. The invocation failure is due to the WS-Addressing headers included in the request message when invoking the service provider.

    The stack trace displays the following information:

    NSGetCustomer (faulted)
    Nov 10, 2009 4:26:40 PM Faulted while invoking operation "get" on provider
    "NetSuite2009_PL".
    <payload>
    Nov 10, 2009 4:26:40 PM
    "{urn:platform_2009_1.webservices.netsuite.com}UnexpectedErrorFault" has been
    thrown.
    <payload>
    Nov 10, 2009 4:26:40 PM There is a system exception while performing the BPEL
    instance, the reason is "Invalid SOAP Header: '<ns1:To
    xmlns:ns1="http://www.w3.org/2005/08/addressing">https://webservices.netsuite.c
    om/services/NetSuitePort_2009_1</ns1:To>'. Value is
    'https://webservices.netsuite.com/services/NetSuitePort_2009_1'."
    <payload>
    

    In Oracle SOA Suite 11g, the WS-Binding component includes the following WS-Addressing headers:

    • wsa:to

    • wsa:replyTo

    • wsa:action

    These headers are included by default regardless of interacting with synchronous or asynchronous web service operations. Although the SOAP message generated by 11g is fully specification compliant, there are service provider implementations that do not understand these WS-Addressing headers when included in the request message for synchronous operations. This is why the invocation fails.

    Oracle Fusion Middleware 11g uses new standards, WS-Addressing (wsa) and WS-I Basic profile, which demand that WS-Addressing headers be added by default to the request message.

    to increase interoperability, the property oracle.soa.ws.outbound.omitWSA has been introduced for the <binding.ws> element in the composite.xml file. This property makes possible to optionally suppress generation of WS-Addressing headers in the request message when set to true. The default value is false.

    1. Manually add the following property to the <binding.ws> element in the composite.xml file.

      [snippet]
      <binding.ws
      ......
          <property name="oracle.soa.ws.outbound.omitWSA" type="xs:boolean"
      many="false" override="may">true</property>
      </binding.ws>
      [/snippet]
      
    2. Redeploy the composite.

  • An external service consumer that does not support WS-Addressing headers in the response message fails to invoke a synchronous operation of a SOA composite.

    When external services invoke the endpoints of Oracle SOA Suite composites, which expose synchronous operation(s) acting as a server (service provider), the external web service fails with invocation errors. This is commonly due to the WS-Addressing headers included in the response message, which are not supported by some web service implementations.

    In SOA Suite 11g, the WS-Binding component includes the WS-Addressing headers by default in the response messages. Although the SOAP message generated by 11g is fully specification compliant, there are service consumer implementations that do not understand the WS-Addressing headers when included in the response message in synchronous request-response scenarios. This is why the invocation fails.

    To increase interoperability with clients (consumers) that do not support WS-Addressing headers, a property named oracle.soa.addressing.response.enabled has been introduced. This property can be used within the <binding.ws> element in the composite.xml file. This property makes possible to optionally suppress generation of WS-Addressing headers in the response message when set to true. The default value is false.This means that in a synchronous request-response scenario, in which the Oracle SOA Suite composite acts as a service provider, WS-Addressing headers are included in the response message by default. If the property is set to false, no WS-Addressing-related headers are returned in the response message.

    1. Set the property in the composite.xml file as follows:

      [snippet]
      <binding.ws>
      ......
      <property name="oracle.soa.addressing.response.enabled" type="xs:boolean"
      many="false" override="may">false</property>
      </binding.ws>
      [/snippet]
      
  • A service provider throws a wsa:InvalidAddressingHeader error when SOAPAction is defined in the WSDL <binding> element of the service provider interface.

    When invoking a web service provider with a synchronous interface from a composite deployed on 11.1.1.1, a wsa:InvalidAddressingHeader message is returned. This happens when both of the following conditions are met:

    • The service interface (WSDL) of the service provider does not include the wsa:Action element in the WSDL input message for the port operations

      and

    • The soapAction attribute in the WSDL binding section of the service provider interface is specified.

    The difference with the first scenario is that the service provider interface may accept WS-Addressing headers for synchronous endpoint operations by using the WS-Addressing extensibility attribute wsa:UsingAddressing in the WSDL binding section. A WSDL binding section sample is shown as follows:

    <wsdl:binding name="mySoapBinding"
    type="impl:myService">
      <wsaw:UsingAddressing wsdl:required="false"
     xmlns:wsaw="http://www.w3.org/2006/05/addressing/wsdl"/>
      <wsdlsoap:binding style="document"
     transport="http://schemas.xmlsoap.org/soap/http"/>
      <wsdl:operation name="myOperation">
        <wsdlsoap:operation soapAction="myAction"/>
        <wsdl:input name="myRequestMsg">
          <wsdlsoap:body use="literal"/>
        </wsdl:input>
        <wsdl:output name="myResponseMsg">
          <wsdlsoap:body use="literal"/>
        </wsdl:output>
      </wsdl:operation>
    </wsdl:binding>
    

    As the following code sample shows, neither the input message nor the output message (as defined in the service provider WSDL) contain a <wsa:Action> element:

    ....
    <wsdl:message name="myRequestMsg">
      <wsdl:part name="parameters" 
    element="impl:myRequestElement"/>
    </wsdl:message>
    .....
    <wsdl:message name="myresponseMsg">
      <wsdl:part name="parameters" 
    element="impl:myResponseElement"/>
    </wsdl:message>
    

    The problem has been observed when integrating with synchronous web services deployed on the IBM WebSphere 6.1 Application Server.

    The stack trace looks similar to the following code example:

    ......
    oracle.fabric.common.FabricInvocationException:
    javax.xml.ws.soap.SOAPFaultException: A header representing a Message
    Addressing Property is not valid and the message cannot be processed
    at
    oracle.integration.platform.blocks.soap.WebServiceExternalBindingComponent.thro
    wFabricInvocationException(WebServiceExternalBindingComponent.java:415)
    at
    oracle.integration.platform.blocks.soap.WebServiceExternalBindingComponent.thro
    wFabricInvocationExceptionForSoapFault(WebServiceExternalBindingComponent.java:
    411)
    at
    oracle.integration.platform.blocks.soap.WebServiceExternalBindingComponent.proc
    essSOAPFault(WebServiceExternalBindingComponent.java:394)
    at
    oracle.integration.platform.blocks.soap.WebServiceExternalBindingComponent.proc
    essOutboundMessage(WebServiceExternalBindingComponent.java:253)
    at
    oracle.integration.platform.blocks.soap.WebServiceExternalBindingComponent.send
    SOAPMessage(WebServiceExternalBindingComponent.java:644)
    at
    oracle.integration.platform.blocks.soap.WebServiceExternalBindingComponent.requ
    est(WebServiceExternalBindingComponent.java:526)
    at
    oracle.integration.platform.blocks.mesh.SynchronousMessageHandler.doRequest(Syn
    chronousMessageHandler.java:139)
    at
    oracle.integration.platform.blocks.mesh.MessageRouter.request(MessageRouter.jav
    a:179)
    at
    oracle.integration.platform.blocks.mesh.MeshImpl.request(MeshImpl.java:144)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at
    ......
    

    If HTTP Analyzer or Apache TCP Monitor are used to trace the message exchange, it is observed that the issue is related to the <wsa:action> element in the request SOAP header, which is not the same as SOAPAction in the HTTP header. The response message looks like the following code sample:

    <soapenv:Envelope>
    .......
      <soapenv:Header>
         <wsa:FaultDetail xmlns:wsa="http://www.w3.org/2005/08/addressing">
            <wsa:ProblemHeaderQName>wsa:Action</wsa:ProblemHeaderQName>
         </wsa:FaultDetail>
      </soapenv:Header>
      <soapenv:Body>
        <soapenv:Fault>
          <faultcode>wsa:InvalidAddressingHeader</faultcode>
          <faultstring>
            <![CDATA[A header representing a Message Addressing Property is not
            valid and the message cannot be processed]]></faultstring>
        </soapenv:Fault>
       </soapenv:Body>
    </soapenv:Envelope>
    

    As mentioned in the previous sections, the WS Binding component of Oracle Fusion Middleware 11g generates WS-Addressing headers by default. According to the W3C specification (Web Services Addressing 1.0 - WSDL Binding W3C Candidate Recommendation 29 May 2006), Section 4.4.1 Explicit Association:

    "In the absence of a wsa:Action attribute on a WSDL input element where a SOAPAction value is specified, the value of the [action] property for the input message is the value of the SOAPAction specified."

    The generated value for the <wsa:Action> element of the input message matches the value of the SOAPAction element, if that is specified in the WSDL binding section. Otherwise, it generates a default value for the <wsa:Action> element.

    A sample of the generated request is as follows (provided WSDL <binding> and <messages> section, as shown previously).

    POST /currencyratesapi/services/myAction HTTP/1.1
    Host: <host>:<port>
    Connection: TE
    TE: trailers, deflate, gzip, compress
    User-Agent: Oracle HTTPClient Version 10h
    SOAPAction: "myAction"
    Accept-Encoding: gzip, x-gzip, compress, x-compress
    ECID-Context: 1.0000IUhXOGw3R9BpNWK6ye1BPi6A0002Wk;kYhgp8TLo0hgv0
    Content-type: text/xml; charset=UTF-8
    Content-Length: 1473
     
    <env:Envelope xmlns:env="http://schemas.xmlsoap.org/soap/envelope/"
    xmlns:wsa="http://www.w3.org/2005/08/addressing">
    <env:Header>
     
    <wsa:To>http://<host>:<port>/currencyratesapi/services/myAction</wsa:To>
    <wsa:Action>myAction</wsa:Action>
    <wsa:MessageID>...</wsa:MessageID>
    <wsa:RelatesTo>...</wsa:RelatesTo>
    <wsa:ReplyTo>
    <wsa:Address>http://www.w3.org/2005/08/addressing/anonymous</wsa:Address>
    <wsa:ReferenceParameters>
    ......
    </wsa:ReferenceParameters>
    </wsa:ReplyTo>
    </env:Header>
    <env:Body>
    ......
    </env:Body>
    </env:Envelope> 
    

13.9.13 Deploy Human Workflow Application Throws "Unable to resolve 'TaskQueryService'" Error

Problem

Almost all Oracle Fusion Applications have the hwtaskflow.xml file with the IntegrateTaskFlowWithTask entry in the web.xml file to register the notification projects. When deploying the J2EE EAR file, it throws the following error if the foreign JNDI connection or wf_client_config.xml were not configured with a valid SOA environment.

javax.naming.NameNotFoundException:Unable to resolve 'TaskQueryService'. Resolved
''; remaining name 'TaskQueryService'

Solution

If the SOA server is not up and running, then start the SOA server using Fusion Applications Control. If it is up and the problem exists, then check that the wf_client_config.xml file has a valid SOA environment. If possible, avoid foreign JNDI references because the JNDI resources get bound into all servers in the domain that causes BindException errors for servers in which the actual service exists when source and target JNDI names are the same. Oracle Fusion Applications do not use foreign JNDI references, instead bundling a correctly configured wf_client_config.xml file in the EAR file or using APIs at runtime to generate the Java Architecture for XML Binding (JAXB) for the human workflow APIs.

Use wf_client_config.xml (bundled at the application level) for all ADF worklist client applications communicating with Oracle SOA Suite. Ensure that the correct URL is specified in the file configuration.

<?xml version="1.0" encoding="UTF-8" ?>
 
<workflowServicesClientConfiguration
 xmlns="http://xmlns.oracle.com/bpel/services/client">
 <server name="default" default="true" clientType="REMOTE">
 <localClient>
  <participateInClientTransaction>false</participateInClientTransaction>
  </localClient>
  <remoteClient>
  <serverURL>t3:cluster://CRMSoaCluster</serverURL>
<initialContextFactory>weblogic.jndi.WLInitialContextFactory</initialContextFa
ctory>
  <participateInClientTransaction>false</participateInClientTransaction>
  </remoteClient>
 <soapClient>
<rootEndPointURL>http://adc60048fems.us.example.com:6361/soa-infra</rootEndPointURL
>
  </soapClient>
  </server>
</workflowServicesClientConfiguration>

13.9.14 "Invalid Subject" Error Thrown with Human Workflow API or Notification

Problem

When Oracle SOA Suite is installed on Domain1 and ADF on Domain2 and if any remote calls are performed between them for any human workflow API use or for notifications, errors similar to the following are thrown if the domain trust is not set.

javax.servlet.ServletException:
javax.servlet.ServletException:java.lang.SecurityException: Security:090398Invalid
Subject:principals=CVBUYER01, AR_MANAGER_VISION_OPERATIONS_DATA, AR_ACCOUNTS_
RECEIVABLE_MANAGER_JOB, FBI_TRANSACTIONAL_BI_WORKER

Solution

Set the domain trust password on both domains (global trust).

  1. Log in to Oracle WebLogic Server Administration Console.
  2. In the Domain Structure, click the domain name.
  3. Click the Security tab, and then click Advanced.
  4. Set the password in the Credential and Confirm Credential fields.

Oracle Fusion Applications do not support RMI across domains. That is, all remote calls between ADF and SOA are always within the same domain. When cross domain communication is required, SOAP is used. The scenario described in this section may be encountered in the development environment. For example, the ADF task flow for human tasks may be running in the JDeveloper-integrated Oracle WebLogic Server and running the composite in an independent standalone SOA server. Both are in different domains.

13.9.15 Task is Assigned to the Group/Role When It Is Expected to Go to Every User in the Group/Role Individually

For troubleshooting information about this issue, see section Task Assignment/Routing/Escalation Issues in Administering Oracle SOA Suite and Oracle Business Process Management Suite.

13.9.16 Task Completes Without Any Assignment Occurring

For troubleshooting information about this issue, see section Task Assignment/Routing/Escalation Issues in Administering Oracle SOA Suite and Oracle Business Process Management Suite.

13.9.17 Parallel Assignees Must Approve or Reject the Task Even Though the Parallel Completion Criteria is Met

For troubleshooting information about this issue, see section Task Assignment/Routing/Escalation Issues in Administering Oracle SOA Suite and Oracle Business Process Management Suite.

13.9.18 All Added Adhoc Participants Disappear After a Page Refresh

For troubleshooting information about this issue, see section Task History Issues in Administering Oracle SOA Suite and Oracle Business Process Management Suite.

13.9.19 Future Approvers Are Not Visible in the History Table

For troubleshooting information about this issue, see section Task History Issues in Administering Oracle SOA Suite and Oracle Business Process Management Suite.

13.9.20 Message Appears in the History Table About a Correlation ID Not Being Passed or Any Exception Related to the Correlation ID

For troubleshooting information about this issue, see section Task History Issues in Administering Oracle SOA Suite and Oracle Business Process Management Suite.

13.9.21 Edit Toolbar Is Disabled or Not Shown

For troubleshooting information about this issue, see section Task History Issues in Administering Oracle SOA Suite and Oracle Business Process Management Suite.

13.9.22 oracle.jrf.UnknownPlatformException Error When Customizing an Oracle Mediator

Problem

The following error can be received when making customization modifications to an Oracle Mediator service component in a SOA application.

For example, assume the following steps are performed:

  1. Log in to JDeveloper with the Fusion Application Developer role.
  2. Create a SOA application and project with the Customizable option selected.
  3. Add appropriate JAR files under the Libraries and Classpath section of the Project Properties dialog for the project.
  4. Under Application Resources then, Descriptors then, ADF META-INF and then, adf-config.xml, add appropriate customization classes.
  5. Add an Oracle Mediator service component to the application.
  6. Save the application and restart JDeveloper.
  7. Add appropriate routing rule and XSL transformations to the Oracle Mediator service component.

    The following error is displayed in the command prompt window:

    oracle.jrf.UnknownPlatformException: JRF is unable to determine the current
    application server platform.
    
    

Solution

This error can be ignored. After this error occurs, everything still works correctly.

13.9.23 java.lang.NullPointerException When Customizing an Oracle Mediator

Problem

The following error can be received when making a customization modification to an Oracle Mediator service component in a SOA application.

For example, assume the following steps are performed:

  1. Log in to JDeveloper with the Fusion Application Developer role.
  2. Create a SOA application and project with the Customizable option selected.
  3. Add appropriate JAR files under the Libraries and Classpath section of the Project Properties dialog for the project.
  4. Under Application Resources then, Descriptors then, ADF META-INF and then, adf-config.xml, add customization classes.
  5. Add an Oracle Mediator service component to the application.
  6. Add a routing rule to the Oracle Mediator service component.

    The following error is displayed in the command prompt window:

    java.lang.NullPointerException
    
    

Solution

If no alerts indicating that a WSDL file cannot be found or parsed are seen, then this exception in the log/console can be ignored.

13.9.24 JDeveloper Compilation Error in a SOA Project with SOA MDS Service Location

Problem

  1. Start JDeveloper with the Fusion Application Developer role.
  2. Create a SOA application.
  3. Create and deploy a SOA bundle to the server.
  4. Create another SOA application.
  5. Create an Oracle Mediator service component.
  6. Create a reference web service and access the SOA MDS connection and browser for the service of the SOA application that was created in Step 2.
  7. Wire the components.
  8. Update the empty port and location values in the composite.xml file. For the location value, enter the oramds path. For example:
    <reference name="Service1"
                
    ui:wsdlLocation="oramds:/apps/CalleeProject/CalleeBPELProcess.wsdl">
        <interface.wsdl
    interface="http://xmlns.oracle.com/Comp2Comp_
    EDGApp/CalleeProject/CalleeBPELProcess#wsdl.interface(CalleeBPELProcess)"/>
        <binding.ws
    port="http://xmlns.oracle.com/Comp2Comp_
    EDGApp/CalleeProject/CalleeBPELProcess#wsdl.endpoint(calleebpelprocess_client_
    ep/CalleeBPELProcess_pt)"
        location="oramds:/apps/CalleeProject/CalleeBPELProcess.WSDL"/>
      </reference>
    
  9. Compile the application.

    The following error message is received.

    Warning(26,76): Failed to Find Binding
    
        
    

Solution

This is only a warning message thrown by the compiler. Runtime works fine. Having a reference from SOA MDS in a composite makes the port and location values empty in the bindings. To resolve this warning message:

  • Explicitly enter the corresponding details. For example, replace the binding.ws location value with the concrete WSDL file.

  • Deploy the composite using the configuration plan, which replaces the port and oramds location with the concrete WSDL file.