25 Oracle SOA Suite and Oracle BPM Suite Common Functionality

This chapter describes runtime and common functionality issues associated with Oracle SOA Suite and Oracle Business Process Management (BPM) Suite. It includes the following topics:

25.1 General Issues and Workarounds

This section describes general issue and workarounds. It includes the following topics:

25.1.1 Making the OSSO Identity Assertion Provider Available for Selection

The OSSOIdentityAsserter authentication provider does not display by default for selection in the Type list of the Create a New Authentication Provider pane in Oracle WebLogic Server Administration Console.

To make this provider available for selection, perform the following steps:

  1. Open the FMW_Home\user_projects\domains\soainfra\bin\setDomainEnv.bat file on Windows operating systems.

    where FMW_Home is the Oracle Fusion Middleware home and soainfra is the domain name.

  2. Find the setting for –Dweblogic.alternateTypesDir.

    ORACLE_HOME points to SOA_HOME and the modules subdirectory does not include the providers. This must be set to JRF_HOME (oracle_common home).

  3. Change the following:

    ALT_TYPES_DIR="${ORACLE_HOME}/modules/oracle.ossoiap_11.1.1,${ORACLE_HOME}
     /modules/oracle.oamprovider_11.1.1" 
    

    to the following:

    ALT_TYPES_DIR="${COMMON_COMPONENTS_HOME}/modules/oracle.ossoiap_11.1.1,$
    {COMMON_COMPONENTS _HOME}/modules/oracle.oamprovider_11.1.1"
    
  4. Save and close the file.

  5. Restart the servers

  6. Log in to Oracle WebLogic Server Administration Console.

  7. Select Security Realms > myrealm > Providers.

  8. In the Authentication Providers pane, click the New tab to add a new provider.

    Note that OSSOIdentityAsserter now displays in the Type list.

25.1.2 Releasing Locks to Resolve ADF Task Form EAR File Deployment Errors

If you deploy a SOA composite application JAR file and ADF task form EAR file, and the SOA JAR file is deployed successfully, but while deploying the EAR file, the following errors are displayed:

[wldeploy] weblogic.management.ManagementException: [Deployer:149163]The
domain edit lock is owned by another session in non-exclusive mode - this
deployment operation requires exclusive access to the edit lock and hence
cannot proceed. If you are using "Automatically Aquire Lock and Activate
Changes" in the console, then the lock will expire shortly so retry this
operation.

This means you must first release the lock from Oracle WebLogic Server Administration Console to successfully deploy the EAR file.

  1. Log in to the Oracle WebLogic Server Administration Console.

  2. Below the console banner at the top of the page, click Preferences > User Preferences.

  3. Deselect Automatically Acquire Lock and Activate Changes.

  4. Click Save and note that buttons such as Lock and Edit and Release Configuration are visible.

    Note the following description that is displayed in the Oracle WebLogic Server Administration Console:

    Automatically acquire the lock that enables configuration editing and
    automatically activate changes as the user modifies, adds and deletes items
     (for example, when the user clicks the 'Save' button). This feature is not
     available in production mode.
    

Note that this error can occur regardless of the deployment method you are using (for example, deploying through Oracle JDeveloper or through ant scripts).

25.1.3 Ignore the REST Enabled Property When Using the HTTP Binding Service

If you use the new HTTP binding service in a SOA composite application, ignore and do not change the REST Enabled property setting for this service in the Properties tab in Oracle Enterprise Manager Fusion Middleware Control Console.

Do not confuse the HTTP binding service with the existing web service binding component. Both of these binding components have a REST Enabled property. However, web services are different from the HTTP binding services. For web services, you can change the REST Enabled property.

The Properties tab is accessible by right-clicking soa-infra in the navigator, and selecting Services and References.

For more information about configuring binding components, see Chapter "Configuring Service and Reference Binding Components" of Oracle Fusion Middleware Administrator's Guide for Oracle SOA Suite and Oracle BPM Suite.

25.1.4 Deployment Error with Nondefault Project Version in Customization Role

When running Oracle JDeveloper in the customization mode, you receive an error when you deploy a BPEL project that is not the default version.

As a workaround, redeploy the same version from Oracle JDeveloper again; this time, the project deploys successfully.

25.1.5 Executing Multiple Test Cases in a Single Test Run Shows Multiple Flow Traces

If you execute multiple test cases in a single test run in the Unit Tests tab of Oracle Enterprise Manager Fusion Middleware Control Console, instances are created for each one of the test cases. If you open the flow trace for any of the test instances, the flow traces for all the instances created as part of the test run are shown as part of the flow trace.

This happens only when multiple test cases are executed as part of a single test run.

25.1.6 Flow Trace Link Is Enabled When the Composite State Is Off for Oracle Mediator

The flow trace link for the Oracle Mediator service component is enabled when the composite state is off. This is the opposite behavior of the Oracle BPEL Process Manager service component.

For example, perform the following steps for a deployed SOA composite application that includes Oracle Mediator.

  1. Set the audit level to the following values:

    • Set to Off at the SOA Infrastructure level.

    • Set to Production at the Oracle Mediator service engine level.

    • Set to Inherit at the SOA composite application level.

  2. Invoke an instance of the composite.

    Since the SOA Infrastructure level is set to Off, the SOA composite application ID is not generated; only the service component instance ID is generated.

  3. Go to the Oracle Mediator service component page.

  4. Click the service component ID, which displays the audit trail page.

    Note that the Flow Trace link in the upper left part of the page is enabled for Oracle Mediator. If you click this link, you receive a java.lang.IllegalArgumentException.

25.1.7 Reference Binding Components Not Displaying on Dashboard Page

Reference binding components included in a SOA composite application do not display in the References subsection of the Routing Statistics section of the Dashboard page of Oracle BPEL Process Manager and Oracle Mediator service components.

25.1.8 SOA Infrastructure State in Oracle WebLogic Server Administration Console

The state of the SOA Infrastructure application displays as Warning in the Oracle WebLogic Server Administration Console. However, there is no loss of functionality because of this state being displayed.

25.1.9 Oracle JDeveloper Issues with SSL-enabled Oracle WebLogic Server

If your Oracle WebLogic Server is configured to use SSL, you cannot perform the following tasks from Oracle JDeveloper:

  • Browse SOA artifacts on the SSL-enabled Oracle WebLogic Server.

  • Deploy SOA archives to the SSL-enabled Oracle WebLogic Server.

As a workaround, perform these tasks with the following tools:

  • For browsing, use Oracle Enterprise Manager Fusion Middleware Control Console to obtain the information needed.

  • For deployment, use the ant-sca-deploy.xml build file to deploy SOA archives to an SSL-enabled server.

25.1.10 Importing Shared Schema from MDS Does Not Copy the Schema Imports

If you import shared schema from MDS (with schema imports within), only the base schema is copied and the schema imports are ignored.

As a workaround, manually localize the schema.

25.1.11 Use of Microsoft SQL Server Causes Conflicts with Cross References Page

If you are using Microsoft SQL Server as your repository database, then navigating to the Cross References page in Oracle Enterprise Manager Fusion Middleware Control Console by right-clicking soa-infra and selecting SOA Administration > Cross References, or performing any action on the Cross References page causes an exception error to be displayed.

If you want to purge the cross reference tables, then directly log in to the database and delete the data.

25.1.12 Setting the SOA Infrastructure Audit Level on Microsoft SQL Server

If you are using Microsoft SQL Server as your repository database, it is recommended that you not set the Audit Level to Development on the SOA Infrastructure Common Properties page in Oracle Enterprise Manager Fusion Middleware Control Console. Otherwise, you may encounter a Web Invocation failed error with the following exception:

java.lang.Exception:
oracle.sysman.emSDK.webservices.wsdlapi.SoapTestException:

As a workaround, set the Audit Level to Production on the SOA Infrastructure Common Properties page and the Composite Audit Level to Development on the home page of the SOA composite application.

25.1.13 Composites Calling Other Composites with Concrete WSDL Files

If you use concrete WSDL files, be aware that the order of startup for SOA composite applications is not guaranteed.

For example, if one SOA composite application calls a second SOA composite application with a concrete WSDL file, and the first SOA composite application gets started before the second SOA composite application, an error occurs. This is because the first SOA composite application cannot load the second SOA composite application's WSDL file.

25.1.14 XPath Value in the Task Parameters Dialog of the Create Human Task Dialog

In the Task Parameters dialog that you access from the Task Parameter table of the Create Human Task dialog, the XPath selection only displays in the XPath field when you select the leaf node. For example, perform the following steps.

  1. Create a SOA composite application with a human task.

  2. Wire the human task with a service binding component, such as a web service.

  3. In the Data section of the Human Task Editor, create a task parameter for the payload.

  4. Create a BPEL process in the SOA composite application.

  5. Double-click the BPEL process to display the Oracle BPEL Designer.

  6. Drag a Human Task icon into the process. The Create Human Task dialog appears.

  7. In the Task Definition dropdown list, select the human task. The dialog refreshes to display additional fields.

  8. Click the Browse icon for the payload in the Task Parameter table. The Task Parameters dialog appears.

    Note that you can select a leaf node, but selecting anything above the leaf node does not cause that selection to display in the XPath field at the bottom of the dialog.

    As a workaround, perform the following steps.

    1. Select the leaf node to display the entire path in the XPath field (for example, /client:processResponse/client:result).

    2. In the XPath field, edit the path to remove unnecessary information (for example, remove /client:result from /client:processResponse).

    3. Click OK.

25.1.15 Composite-to-Composite Calls Through an EJB Reference Binding Component

If you have a SOA composite application that calls a second SOA composite application through an EJB reference binding component, the EJB reference is bound to the default revision of the second SOA composite application. If the default revision of the second SOA composite application changes (for example, a new revision of the second SOA composite application is deployed as the default), the first SOA composite application still calls the original revision of the second SOA composite application to which the EJB reference is bound.

As a workaround, restart the SOA server. This action binds the EJB reference to the new default revision.

25.1.16 Instance States of Service Components and SOA Composite Applications

Assume you have a SOA composite application with multiple service components (for example, two BPEL process service components). If these service components are marked with the following instance states:

  • Instance state of one BPEL process is marked as completed.

  • Instance state of the other BPEL process is marked as faulted.

This results in the overall composite instance state being marked as faulted. This behavior differs from Release 11g PS1, in which the same scenario resulted in the overall composite instance state being marked as completed.

Assume you have a parent SOA composite application that calls a child SOA composite application, and a fault occurs in the child composite (and is handled by the parent composite). This results in the following instance states:

  • The instance state of the child composite is marked as faulted.

  • The instance state of the parent composite is marked as completed.

25.1.17 Composites with Large While Loop Cases Cause Time Outs and Memory Errors

If your SOA composite application includes large while loop cases, you can receive time outs and out-of-memory errors due to large numbers of audit events accumulating. To support these environments, you can decouple the audit trail from the BPEL process service engine transaction by tuning the following properties at the BPEL process service engine level:

  • auditFlushEventThreshold: Controls how often the service engine flushes the audit events. When the audit event limit is reached, the service engine triggers a store call. Tune this size based on the application. The default value is 300 audit events.

  • auditFlushByteThreshold: Controls the approximate size of the batch. After each event, the size is calculated, including the details size. If the sum of the batch byte size exceeds the value of this property, a flush is triggered. The default value is 2 MB.

To set this property at the BPEL process service engine level:

  1. Right-click soa-infra and select SOA Administration > BPEL Properties.

  2. Click More BPEL Configuration Properties.

  3. Click the properties described above.

  4. In the Value field, specify an appropriate value and click Apply.

Note:

These properties only impact the BPEL process audit trail. Human workflow, business rules, and Oracle Mediator are not affected by these settings.

25.1.18 Extra Business Event with Oracle Database 11.2.0.1 and One and Only One Level

If you subscribe to a business event with an Oracle Mediator, select a consistency level of one and only one, and use a release 11.2.0.1 Oracle database for the SOA Infrastructure schema, the first event published produces two business events.

For example, if 20 messages are published, the subscriber receives 21messages.

This issue occurs only with release 11.2.0.1 of the Oracle database and only one time after a restart of both the SOA Infrastructure database and the SOA Server. After that, the correct number of business events are inserted.

25.1.19 Inconsistent States for SOA Composite Application Instances in Recovery

When a SOA composite application instance is being recovered, callback messages and activities are displayed as Running, but invocation messages are displayed as Faulted in the State column of the Dashboard tab of a SOA composite application.

25.1.20 Manual Recovery of Wait and OnAlarm Branch of Pick Activities Is Unsupported

You cannot manually recover wait activities or the OnAlarm branch of pick activities from the Recovery tab of the BPEL process service engine in Oracle Enterprise Manager Fusion Middleware Control Console. There is nothing restricting you from retrieving these pending activities and then attempting a recovery. However, recovery is not successful.

Instead, these pending activities are automatically scheduled and retried by the BPEL process service engine as part of the daily auto recovery or by restarting the SOA server.

25.1.21 Recovery of Callback Messages in Both Resolved and Undelivered States

You can recover callback messages that are in both resolved and undelivered states. This is the expected behavior.

These messages can display for recovery when you execute a search criteria in which you select Callback from the Type list and select either Resolved or Undelivered from the Message State list on the Recovery tab of the BPEL process service engine in Oracle Enterprise Manager Fusion Middleware Control Console.

When a callback message first enters the BPEL process service engine, its state is undelivered. When the callback message is resolved to the target BPEL process instance either through matching a conversation ID or through a correlation, the state is switched to resolved. In both of these states, the messages have not yet been consumed. Messages in these two states can be recovered (redelivered into the BPEL process service engine for consumption).

In other situations, the callback messages can become stranded in both of these states. Messages in these states can also be recovered. However, there is no guarantee that stranded callback messages always remain in a state of undelivered.

25.1.22 Last Modified Date Not Displaying for Invoked, Undelivered Recovery Messages

If you select Invoke from the Type list and Undelivered from the Message State list, and then click Recovery on the Recovery tab of the BPEL process service engine in Oracle Enterprise Manager Fusion Middleware Control Console, a recovery is performed. However, the Last Modified Date column remains empty for this instance on the Dashboard page of the Oracle BPEL Process Manager service component or service engine.

This is the expected behavior. The last modified date does not display because the initial Oracle BPEL Process Manager instance (for example, bpel:70004) is created by the first invocation (that is, it is created, but has not yet been modified). The recovery of the undelivered invocation message always creates a new instance (for example, bpel:70005). The previously created instance (bpel:70004) is not used and remains permanently in the same status (the Last Modified Date column is empty). This information is provided for auditing purposes only.

25.1.23 Recovery Error Message Displayed in the Audit Trail

The following error message appears when a transaction is displayed as rolled back in the Audit Trail tab of Oracle Enterprise Manager Fusion Middleware Control Console.

The transaction was rolled back. The work performed for bpel instance "instance_
number" was rolled back to the previous dehydration point, but the audit trail has
been saved. You can recover the instance from the recovery console by
resubmitting the callback message or activity for execution

This message does not specifically state whether recovery should happen on either the activity or the callback. This is the intended behavior. Oracle recommends that you do not recover each instance through the audit messages. Instead, set up automatic recovery to recover these instances.

25.1.24 Activity Faults Not Shown for Oracle BPEL Process Manager and Oracle BPM

If a fault occurs when processing activities, the activity location of the fault is not shown in most cases in the Activity column of the Faults tab of the Instance of service_component_name page in Oracle Enterprise Manager Fusion Middleware Control Console.

  • For Oracle BPEL Process Manager, this column only shows a receive activity that has timed out. In all other cases, this column is empty.

  • For Oracle BPM, this column is always empty.

This is the expected behavior.

25.1.25 Problem Accessing Web-based Applications

Logins to Web-based applications may fail when using Oracle Internet Directory (OID) authentication. This is caused when the Oracle WebLogic Server configuration is set to use the OID authentication before default authentication.

This may produce the following error:

"@ User "weblogic" is not found in configuration "jazn.com" Check if the user
 exists in the repository specified by the configurations. Check the error stack
 and fix the cause of the error. Contact oracle support if error is not fixable."

The order of the security providers should be:

  1. Default authentication

  2. OID/LDAP authentication

25.1.26 SOAP 1.2 <stackTrace> Fault Element is Not Returned to the Caller

A fault from a SOAP 1.2 Web service contains a <stackTrace> element as part of the <exception> element. The <stackTrace> element provides debug information and assistance in understanding a fault. If you invoke a Web service directly from a client and a fault occurs, the <stackTrace> element is provided.

However, if a SOA composite application invokes a Web service (for example, through a BPEL process or an Oracle Mediator) and a fault occurs, the <stackTrace> element is not passed back to the caller.

This is the expected behavior.

25.1.27 Outbound HTTP Binding Cannot Access Multibyte URLs on Non-UTF8 Servers

The following table describes different verb, payload type, and operation name configurations for an inbound HTTP binding service of a SOA composite application, deployment issues with the use of multibyte names with this service, and workarounds.

Verb Payload Type Operation Name Deployment Environment Workaround
post url-encoded Request-Response The service uses a multibyte service name, and the project is deployed on a non-UTF-8-encoding server.

When the outbound HTTP binding with the same verb, payload type, and operation name configuration on the UTF-8-encoding server invokes the inbound HTTP binding service, the invocation receives the following error:

javax.xml.ws.WebServiceException:
javax.xml.soap.SOAPException: Bad
response: 503 Service Unavailable
from url
Use the English service name.
get url-encoded Request-Response The service uses a multibyte service name, multibyte operation name, or multibyte schema element name, and the project is deployed on a non-UTF-8-encoding server.

When the outbound HTTP binding with the same verb, payload type, and operation name configuration on a UTF-8-encoding server invokes the inbound HTTP binding service, the invocation receives the following error:

Bad response: 404
Use the English service name, English operation name, or English schema element name.
get url-encoded Request-Response The service uses a multibyte service name, multibyte operation name, or multibyte schema element name, and the project is deployed on a UTF-8-encoding server.

When the outbound HTTP binding with the same verb, payload type, and operation name configuration on a non-UTF-8-encoding server invokes the inbound HTTP binding service, the invocation receives the following error:

Bad response: 404
Use the English service name, English operation name, and schema element name.
post xml Request-Response The service uses the multibyte service name, and the project is deployed on a non-UTF-8-encoding server.

When the outbound HTTP binding with the same verb, payload type, and operation name configuration on the UTF-8-encoding server invokes the inbound HTTP binding service, the invocation receives the following error:

javax.xml.soap.SOAPException: Bad response: 503 Service Unavailable from url
Use the English service name.

25.1.28 Multibyte Character Issues with Microsoft SQL Server and Cross References

If you are using Microsoft SQL Server as your repository database and define a custom database table to optimize cross references (XREFs), the DDL generated by the CREATE TABLE command on Microsoft SQL Server has problems with multibyte characters.

As a workaround, perform the following steps to change the original SQL script:

  1. Change the data type from TIMESTAMP to DATETIME.

  2. Change the data type from VARCHAR to NVARCHAR.

  3. Change the table and column names to uppercase.

    For example, changing the following syntax:

    CREATE TABLE xref_untitled1 (
        ROW_ID VARCHAR(48) NOT NULL,
        system1 VARCHAR(100),
        system2 VARCHAR(100),
        LAST_MODIFIED TIMESTAMP NOT NULL
    
    );
    
    CREATE INDEX ROW_ID_IDX ON xref_untitled1(ROW_ID);
    CREATE INDEX system1_idx ON xref_untitled1(system1);
    CREATE INDEX system2_idx ON xref_untitled1(system2); 
    

    To this syntax, eliminates these problems:

    CREATE TABLE XREF_UNTITLED1 (
        ROW_ID NVARCHAR(48) NOT NULL,
        SYSTEM1 NVARCHAR(100),
        SYSTEM2 NVARCHAR(100),
        LAST_MODIFIED DATETIME NOT NULL
    );
    
    CREATE INDEX ROW_ID_IDX ON XREF_UNTITLED1(ROW_ID);
    CREATE INDEX SYSTEM1_IDX ON XREF_UNTITLED1(SYSTEM1);
    CREATE INDEX SYSTEM2_IDX ON XREF_UNTITLED1(SYSTEM2); 
    

For more information about cross references and custom database tables, see Section "Creating Custom Database Tables" of the Oracle Fusion Middleware Developer's Guide for Oracle SOA Suite.

25.1.29 Setting an Identity for J2SE Clients Invoking Direct Binding

J2SE clients can set an identity while invoking direct binding, as shown in the following example:

public static void main(String[] args) throws Exception {
       Invoker invoker = new Invoker();
       String payloadXML="<ns1:process
xmlns:ns1=\"http://xmlns.oracle.com/DirectBinding_jws/EchoBPEL/BPELProcess1\">
" +"\n" +
             "<ns1:input>wew</ns1:input>" + "\n"+
              "</ns1:process>" ;

     String serviceAddress = "soadirect:/default/EchoBPEL!1.0/DService1";
    System.out.println("***** test Sync ****");
     DirectConnectionFactory factory =
JNDIDirectConnectionFactory.newInstance();

     Message<Element> m = getAsyncRequest(payloadXML);
     Map<String, Object> props = new HashMap<String, Object>();
     props.put(Context.INITIAL_CONTEXT_FACTORY,
"weblogic.jndi.WLInitialContextFactory");
     props.put(Context.PROVIDER_URL, "t3://" + hostname + ':' + portname);
    props.put(Context.SECURITY_PRINCIPAL,"xtest-soa1-user");
 props.put(Context.SECURITY_CREDENTIALS,"welcome1");

     DirectConnection conn = factory.createConnection(serviceAddress,
props);

     DirectConnection conn = getConnection(serviceAddress);
     Document doc = DirectBindingXMLUtil.getDocumentFromString(payloadXML);
            Element element = doc.getDocumentElement();
            Map<String, Element> payload = new HashMap<String, Element>();
            payload.put("payload", element);

     Message<Element> m =
XMLMessageFactory.getInstance().createMessage(payload);
     List<Element> headers =
createWSAHeaders("payload:BPELSyncTest:msgID:1234567");
     for( Element e : headers)
         m.addHeader(e);

try {
               ctx = new InitialContext(props);
               conn.request("process", m);
           }
           finally
           {
               if (null != ctx) ctx.close();
           }

    //System.out.println(ret);

   } 

The key points in the above example are as follows:

25.1.30 URL Files Attached in Oracle BPM Worklist Not Sent as E-mail Attachments

If you attach a URL file in Oracle BPM Worklist (for example, http://www.oracle.com/technology/products/oem/management_partners/snmpwp6.gif), it is not sent as an e-mail attachment. Instead, it appears as a hyperlink in the task details of the e-mail notification. However, if a desktop file is attached, it can be seen as a separate attachment in the task notification.

25.1.31 Faulted Instances Waiting for Manual Recovery are Shown as Running

Faulted instances that are waiting for manual recovery are shown when you search for running instances. For example, if you go to the Instances page of the SOA composite application and specify a search criteria to find running instances, the faulted instances waiting for manual recovery are shown.

25.1.32 Invocation of Composite with Spring Component Fails with ant Deployment

A SOA composite application that includes a spring context service component can fail during invocation when deployed using the ant deployment script. You can receive the following NullPointerException error:

<oracle.integration.platform.blocks.java> <SOA-31701> <Failed to convert Java 
payload to XML.  Exception follows.  [Interface=myservice.EchoPortType 
Method=echoText]> 
<Feb 26, 2010 4:02:29 PM PST> <Warning> 
<oracle.integration.platform.blocks.java> <BEA-000000> <Detail: 
java.lang.NullPointerException 
        at 
weblogic.wsee.databinding.spi.util.WsRuntimeWrapper.init(WsRuntimeWrapper.java 
:32)
. . .
. . .

This error occurs because the JAXB classes are not being compiled in the SAR file.

As a workaround, touch the package-info.java file before compilation:

<target name="composite-compile"  if="spring.deployment" > 
   <echo message="compiling ${my.project}/${compositeName}/src" /> 
 <!--    CHANGE THAT CAUSES TEST TO SUCCEED --> 
   <touch> 
 <fileset dir="${my.project}/${compositeName}/src/myservice" 
 includes="**/package-info.java"/> 
 </touch> 
   <javac destdir="${my.project}/${compositeName}/SCA-INF/classes" 
    fork="yes" debug="on" compiler="javac1.6"  > 
        <src path="${my.project}/${compositeName}/src/myservice" /> 
        <src path="${my.project}/${compositeName}/src/springws" /> 
 . 
   </javac> 

25.1.33 Transactional Adapter Status Displays as Complete Even If Rollback Occurs

If a transaction rollback occurs because of a business fault or exception, the instance trial for a transactional adapter does not indicate whether or not there was a rollback.

For example, assume you have an asynchronous BPEL process invoking a database adapter service. An assert expression is defined in the invoke activity. If the assert expression returns false, then all transactional invocations should roll back. However, the flow trace shows a status of completed for the database adapter service.

25.1.34 Flow Diagram Does Not Display The First Time on Some Lower End Hosts

The flow diagram for an instance ID of a deployed SOA composite application in Oracle Enterprise Manager Fusion Middleware Control Console may not display the first time on some lower end hosts. Instead, you receive a failed to load resource message.

As a workaround, close the flow trace page and click the instance ID to return to the flow trace page.

25.1.35 Limitation on Using the Safari Browser to View WSDL File Content

If you are using the Safari browser, note the following limitation and workaround for viewing WSDL file contents in Oracle Enterprise Manager Fusion Middleware Control Console. Note also that Mozilla Firefox works correctly and does not require this workaround.

  1. Go to the home page for a SOA composite application.

  2. Click the Show WSDL and endpoint URI link at the top of the page.

  3. Click the WSDL link that is displayed.

    This opens a blank page that does not display the contents of the selected WSDL. As a workaround, perform the following additional steps.

  4. In the upper right corner of this page, click the Display a menu for the current page icon.

  5. Select View Source from the menu that is displayed.

    This displays the contents of the selected WSDL in another page.

25.1.36 Limitations on Programmatic, Bulk Deployments of Composites

If you deploy multiple SOA composite applications programmatically in bulk using oracle.integration.platform.blocks.deploy.servlet.CompositeDeployerClient, after the successful deployment of approximately 85 composites, out-of-memory errors are displayed in the SOA server log files for the remaining composite deployments, and the SOA server hangs.

25.1.37 Accessing Components from SSO-Enabled Oracle Enterprise Manager

If you log in to an SSO-enabled Oracle Enterprise Manager Fusion Middleware Control Console and click the links to the following components, you are directed to non-SSO URLs for these components, and prompted to log in again.

  • Oracle BPM Worklist

  • Oracle B2B

  • Oracle BAM

  • SOA Composer

25.1.38 Composite State Not Updated After BPEL Recovery Of Faulted Instance

The state of a failed SOA composite application instance is not updated after you successfully perform a recovery from the Recovery page of the BPEL service engine. For example, assume you perform the following steps.

  1. Enable payload validation on the SOA Infrastructure Common Properties page in Oracle Enterprise Manager Fusion Middleware Control Console.

  2. Invoke an instance of a SOA composite application. If payload validation fails (for example, because required elements in the schema are missing), a failure occurs at the BPEL service component level during execution of an invoke activity.

    The instance is displayed as faulted in the Dashboard and Instances pages of the composite.

  3. Go to the Recovery page of the BPEL service engine and note that the same instance is pending recovery.

  4. Disable payload validation on the SOA Infrastructure Common Properties page.

  5. From the Recovery page of the BPEL service engine, select the instance and click Recover. This recovers the instance.

  6. View the completed instance in the flow trace. However, note that the instance state is not updated and is still shown as faulted, whereas the instance has actually recovered and completed successfully.

    This is the expected behavior. BPEL recovery created a new BPEL instance, which completed successfully. However, the previous BPEL instance (the one that failed schema validation) is still shown as faulted. The overall composite instance is counted as faulted, since one of its two component instances (the previous BPEL instance) is faulted.

25.1.39 Saving Physical Directory Property Changes in the System MBean Browser

Changing the physical directory property for the file or FTP adapter in the System MBean Browser does not take effect until you select the save attribute under the Operations tab, as described in Steps 8 and 9. Ensure that you perform all of the following steps.

  1. In the navigator, right-click soa-infra and select Administration > System MBean Browser.

  2. Navigate to Application Defined MBeans > oracle.soa.config > Server: server_name > SCAComposite > deployed_SOA_composite_application_name > SCAComposite.SCAReference.SCABinding > AdapterBinding.

  3. Click the Attributes tab.

  4. Click Properties.

  5. Expand the element_number folders that include the correct adapter endpoint values (for example, element0, element_1, and element_2).

  6. Change the physical directory value in each, and click Apply.

  7. Click Return.

  8. Click the Operations tab.

  9. Click save. This action persists the changes.

25.1.40 Removing Extra Set Text Dialog Characters

Adding &amp; to the Text field of the Edit Text dialog in Oracle JDeveloper adds extra characters to the XSL file. For example, perform the following steps:

  1. In the XSLT Mapper, right-click a string element in the target pane.

  2. Select Set Text > Enter Text.

  3. In the Edit Text dialog, enter &amp; in the Text field, and click OK.

  4. Go to the Source view of the XSL file, and see that an extra amp; is appended.

    <xsl:text disable-output-escaping="no">&amp;amp;</xsl:text>
    

As a workaround, in Source view of the XSL file, remove the extra character amp; that was appended in the previous steps. The source view now looks as follows:

<xsl:text disable-output-escaping="no">&amp;</xsl:text>

25.1.41 Failure to Add and Update WSDL Binding After Migration

When you open Oracle JDeveloper and attempt to migrate a 10.1.3 application that includes WSIF binding information to version 11g, migration creates a web service reference with no WSDL binding information (binding.wsif) in the composite.xml file. When you then attempt to update the reference with the same WSDL in Oracle JDeveloper, the binding information is not saved, and you receive a compilation error.

This is because Oracle JDeveloper is handling the typical migration use case in which the reference is updated with a new WSDL location (same WSDL, but in a different location). Therefore, when you do not change the WSDL location, nothing happens.

As a workaround, perform either of the following steps:

  1. Delete the reference and create a new one using the same WSDL.

  2. (Easiest) Copy the WSDL to a different file name, but do not change its contents. Then, update the reference using this WSDL copy. This changes the location of the WSDL and correctly creates the binding.ws.

25.1.42 Storing Artifacts in Source Control and Deploying Them with the ant Utility

If you store application artifacts in a source control system that you later want to reuse for deployment with ant, the following changes are required if the application has metadata service (MDS)-based references.

Assume the original Oracle JDeveloper application has file-based MDS references, such as the following:

<metadata-store-usage id="mstore-usage_1"> 
            <metadata-store 
class-name="oracle.mds.persistence.stores.file.FileMetadataStore">
              <property value="${oracle.home}/integration" 
                        name="metadata-path"/>   
              <property value="seed" name="partition-name"/> 
            </metadata-store> 

Modify this code to use database-based MDS references in the Application_Directory/.adf/META-INF/adf-config.xml file, as shown below:

<metadata-store-usage id="mstore-usage_1"> 
            <metadata-store 
class-name="oracle.mds.persistence.stores.db.DBMetadataStore"> 
              <property name="jdbc-userid" value="${mdsuser}"/> 
 <property name="jdbc-password" value="${mdspassword}"/> 
              <property name="jdbc-url" 
value="jdbc:oracle:thin:@${db.host.name}:${db.host.port}:${db.sid}"/> 
               <property name="partition-name" value="soa-infra"/> 
            </metadata-store> 

Check the modified application with these adf-config.xml entries into a source control system. The following concrete example of a modified adf-config.xml file is provided.

 <metadata-store-usage id="mstore-usage_1"> 
            <metadata-store 
class-name="oracle.mds.persistence.stores.db.DBMetadataStore"> 
              <property name="jdbc-userid" value="soainfra_mds"/> 
              <property name="jdbc-password" value="soainfra_mds"/> 
              <property name="jdbc-url" 
value="jdbc:oracle:thin:@myhost56.us.oracle.com:15739:db2825"/> 
              <property name="partition-name" value="soa-infra"/> 
            </metadata-store> 

You can use a variable for the user ID and password and replace the values prior to ant deployment in the application.

If the MDS database has a JNDI name, then use the following entries in adf-config.xml:

<metadata-store 
  class-name="oracle.mds.persistence.stores.db.DBMetadataStore"> 
     <property name="jndi-datasource" value="${db.jndi.name}"/> 
     <property name="partition-name" value="soa-infra"/> 
</metadata-store> 

25.1.43 Understanding BPEL Global Transaction and Adapter Local Transaction Issues

BPEL processes run in global transactions, while other Oracle SOA Suite components, such as adapters, run in local transactions. This can cause inconsistencies with the information displayed in Oracle Enterprise Manager Fusion Middleware Control Console.

For example, assume you have a main synchronous BPEL process that invokes an asynchronous BPEL process. There is one database adapter insert in the main synchronous BPEL process before the invocation of the asynchronous BPEL process. There is a second database adapter insert in the asynchronous BPEL process, at which point a fault is expected to be thrown.

The expected behavior is as follows:

  • An initial insert into the database is performed from the main process that completes successfully as expected.

  • The second insert also executes in the asynchronous process, but after encountering the fault, the BPEL process rolls back the initial insert.

However, in Oracle Enterprise Manager Fusion Middleware Control Console, the second database insert also shows as having completed successfully, instead of the having faulted.

This is because the database adapter invocation is logged (instance tracked) in a local transaction that is not part of the global BPEL JTA transaction. Therefore, the database adapter invocation completes successfully, but the subsequent BPEL process incurs a global rollback.

<invoke name="Invoke_1" inputVariable="Invoke_1_insert_InputVariable" 
   partnerLink="db" portType="ns1:db_ptt" operation="insert"/> 
. . .
. . .
   <throw name="Throw_2" faultName="bpelx:rollback"/>

At that point, instance tracking has already recorded the outbound invocation as successful (in a local transaction). If the adapter throws an exception, instance tracking logs this as a fault. Also note that some partner links may invoke a file adapter, which cannot be rolled back, even if the BPEL process later throws a bpelx:rollback.

25.1.44 Descriptions for Data Source JNDI Fields are Interchanged

In the SOA Infrastructure Common Properties page of Oracle Enterprise Manager Fusion Middleware Control Console, the descriptions for Server Data Source JNDI and Server Transaction Data Source JNDI are interchanged. However, the Configure links go to the correct locations.

25.1.45 Granting the Same Role to the Same User Twice Causes Unclear WLST Message

  1. Create a domain with Oracle WebCache and extend it with Oracle SOA Suite.

  2. Associate the Oracle WebCache application with LDAP and grant the admin role to a user (for example, user name test) in Oracle Internet Directory using the WebLogic Scripting Tool (WLST).

  3. Grant the same role (admin role) to the same user again (test).

    You expect to see a WLST error message such as the following:

    This particular user already has admin role to access your application
    

    Instead, you receive the following message, which is inaccurate:

    Command FAILED, Reason: Cannot add principal to application role
    

25.1.46 Fault Policy Retry Action May Not Execute with Multiple Faults in Same Flow

The fault policy retry action may not execute with multiple faults in the same flow. This may be because the retry count has already been reached for any of the previous faults.

For example, assume you define a fault policy with two fault conditions: fault1 and fault2. For both fault conditions, the retry action is specified with a retry count of three. Assume fault1 occurs and the retry action executes three times. You correct the problem for fault1 by modifying the payload, but ensure that fault2 is to be raised when the instance is resubmitted. You then resubmit the faulted instance using Oracle Enterprise Manager Fusion Middleware Control Console. You expect the second fault condition, fault2, to retry three times as per the fault policy specification. However, this does not occur because the maximum number of retries was already executed for the previous fault1 fault condition.

25.1.47 Mediator Instances Can Display as Running After Transaction Completion

A mediator service component relies on a successful commit of a local transaction to know whether an instance is recoverable. Even if a graceful shutdown is correctly implemented, and all transactions are allowed to complete (within the given time out window), there can still be a local transaction that is denied because it fails to occur within the time out window. For example, assume the following:

  1. A database adapter posts a message.

  2. A mediator service component receives the message, sets its state to running, and invokes a BPEL process service component, whose state is also set to running.

  3. A JMS adapter is invoked, and encounters and throws an exception. The reference fault tables are updated.

  4. The BPEL process receives the exception, marks its state as completed with a fault, and rethrows the exception to the mediator.

  5. The BPEL process triggers an asynchronous persistence of its audit information as the global transaction is rolled back.

  6. The mediator receives the exception and persists the fault information in its error tables (in a separate local transaction).

  7. The mediator sets its state to faulted.

If the server is shut down before the transaction can complete (for example, between Steps 5 through 7), the mediator instance can remain in a running state. The corresponding composite instance whose state is inferred from the components also displays as running. As the global transaction is rolled back, the message can be retried and reprocessed by the inbound adapter. Note that in this scenario, no mediator instances are lost.

25.1.48 Handling Business and Remote Faults in the Calling BPEL Processes

Oracle recommends that you handle both business and remote faults in BPEL processes during design time. If remote exceptions are not handled in the calling BPEL process, you can see discrepancies in the overall SOA composite application instance state and the server component instance states associated with the composite. For example, a situation may occur in which the composite instance is in a faulted state, while the service component instances are in a completed state. If the caller handles the remote exceptions, then the states of composite and component instances are accurate.

25.2 Configuration Issues and Workarounds

This section describes configuration issues and their workarounds. It includes the following topics:

25.2.1 Explicitly Defining the ora-java Option in the Fault Policies File

Assume you invoke a SOA composite application with a fault policy/binding defined and see a recoverable fault in Oracle Enterprise Manager Fusion Middleware Control Console. After you perform a successful fault recovery retry, note that there is no ora-java option available for selection by default in the After Successful Retry list of the Faults tab of the Instance of process_name page.

This is the expected behavior. For the ora-java option to display, you must explicitly define it in the fault-policies.xml file during design-time. For example, perform the following steps.

  1. Create a fault-policies.xml file in which you explicitly add retrySuccessAction ref="ora-java"/> to the fault-policies.xml file.

    <Action id="ora-retry">
       <Retry>
          <retryCount>3</retryCount>
          <retryInterval>2</retryInterval>
          <exponentialBackoff/>
          <retryFailureAction ref="ora-java"/>
          <retrySuccessAction ref="ora-java"/>
       </Retry>
    </Action> 
    
  2. Deploy the composite and create an instance.

  3. Click the composite instance to invoke the instance trace of the composite.Click the component in which there is a recoverable fault (for example, Oracle BPEL Process Manager, Oracle Mediator, or Oracle BPM).Go to the Faults tab.

  4. Select the Retry option to successfully retry the fault.

    If fault recovery is successful, the After Successful Retry list is displayed.

  5. Select the list and note that the ora-java option is now listed.

25.2.2 Resolving Database Connection Pool Timeout Errors

If you deploy a SOA composite application and create multiple instances that use multiple connection threads (for example, numerous threads for worklist approvals in Oracle BPM Worklist), you may receive many connection pool timeout errors, such as the following.

[EL Warning]: 2009-05-02 21:27:08.101--UnitOfWork(58549762)--Exception
[EclipseLink-4002] (Eclipse Persistence Services - 1.1.1.v20090407-r3867):
org.eclipse.persistence.exceptions.DatabaseException
Internal Exception: java.sql.SQLException: Internal error: Cannot obtain
@ XAConnection weblogic.common.resourcepool.ResourceDeadException:
@ 0:weblogic.common.ResourceException: Got minus one from a read call
Error Code: 0
Query:
InsertObjectQuery(com.collaxa.cube.persistence.dto.DeliveryDocumentRef@8cf1b90
) 

When these errors occur, the database terminates its connection.

As a workaround, set the oracle.net.CONNECT_TIMEOUT property that is defined for SOADataSource to a larger value (for example, 20000 milliseconds) in the data source file.

<property>
  <name>oracle.net.CONNECT_TIMEOUT</name>
  <value>20000</value>
</property>

25.2.3 Encryption and Decryption in Oracle Fusion Middleware 11g

There are no equivalent properties for encryption and decryption in Oracle Fusion Middleware release 11g that are similar to those provided in Oracle BPEL Process Manager release 10.1.3.5. Instead, encryption and decryption can be achieved by attaching Oracle Web Services Manager (OWSM) policies. OSWM is included in Oracle SOA Suite release 11g.

For more information about policies, see the following documentation:

25.2.4 Publishing a WSDL Service Deployed to Different Partitions to OSR

Follow these steps to publish the same WSDL service deployed to different partitions to the Oracle Service Registry (OSR):

  1. Log in to the OSR Web Console.

  2. Publish the WSDL of the first partition.

  3. Rename the above-mentioned service name to a unique name.

  4. Publish the WSDL of the second partition.

    This creates two separate services in OSR.

25.2.5 Stopping and Starting the Managed Server Instead of the SOA Infrastructure

As a best practice, stop and start the managed server of Oracle SOA Suite instead of stopping and starting the SOA Infrastructure application. Stopping and starting the SOA Infrastructure application can cause problems with Oracle Enterprise Manager Fusion Middleware Control Console correctly loading.

25.2.6 WS-AT Transactions are Not Supported When Optimization is Enabled

You can configure a web service binding component as either a service or reference to support WS-AT transactions from the Transaction Participation dropdown list of the Create Web Service dialog. WS-AT transactions are supported in composite-to-web service environments, or vice-versa, with the oracle.webservices.local.optimization property set to false.

WS-AT transactions are not supported in composite-to-composite calls, even with the oracle.webservices.local.optimization property set to false.

For more information about the oracle.webservices.local.optimization property, see Oracle Fusion Middleware Administrator's Guide for Oracle SOA Suite and Oracle BPM Suite.

25.2.7 Querying the Status of Bulk Fault Recovery Jobs

You can query the status of bulk fault recovery jobs (for example, scheduled, in-progress, failed, results recorded, and so on) through log messages by configuring the oracle.soa.management.util.async.AsynchronousJobScheduler logger.

  1. Within the Oracle WebLogic Server Administration Server domain home, open domain_home\config\fmwconfig\servers\AdminServer\logging.xml.

    where domain_home is the directory path to your domain.

  2. Add the oracle.soa.management.util.async.AsynchronousJobScheduler logger.

  3. Set the log level to TRACE:1 to output job status updates.

    The syntax looks as follows:

    <loggers>
        ...
        <logger name='oracle.soa.management.util.async.AsynchronousJobScheduler'
     level="TRACE:1" />
    </loggers>
    
  4. Restart the Oracle WebLogic Server Administration Server for the changes to take effect.

    Logging output similar to the following is generated:

    [2010-04-21T16:32:30.128-07:00] [AdminServer] [TRACE] []
     [oracle.soa.management.util.async.AsynchronousJobScheduler] [tid: SOA Fabric
     Asynchronous Job Processor] [userId: weblogic] [ecid: 0000IWYhmvq1FgB_
    JXc9yf1BnsUK00002B,1:28285] [SRC_CLASS:
     oracle.soa.management.util.async.AsynchronousJobScheduler] [APP: em] [dcid:
     63062c26f939c426:-245c1ca7:12822aa19a3:-8000-00000000000000ee] [SRC_METHOD:
     processJob] Processing asynchronous BulkFaultRecovery job
     105ab343-7fbd-4a82-a167-7d794f0801e4
    [2010-04-21T16:32:30.131-07:00] [AdminServer] [TRACE] []
     [oracle.soa.management.util.async.AsynchronousJobScheduler] [tid: SOA Fabric
     Asynchronous Job Processor] [userId: weblogic] [ecid: 0000IWYhmvq1FgB_
    JXc9yf1BnsUK00002B,1:28285] [SRC_CLASS:
     oracle.soa.management.util.async.AsynchronousJobScheduler] [APP: em] [dcid:
     63062c26f939c426:-245c1ca7:12822aa19a3:-8000-00000000000000ee] [SRC_METHOD:
     updateJobStatus] Updated status for asynchronous job
     105ab343-7fbd-4a82-a167-7d794f0801e4 : incomplete
    
    [2010-04-21T16:32:39.790-07:00] [AdminServer] [TRACE] []
     [oracle.soa.management.util.async.AsynchronousJobScheduler] [tid: SOA Fabric
     Asynchronous Job Processor] [userId: weblogic] [ecid: 0000IWYhmvq1FgB_
    JXc9yf1BnsUK00002B,1:28285] [SRC_CLASS:
     oracle.soa.management.util.async.AsynchronousJobScheduler] [APP: em] [dcid:
     63062c26f939c426:-245c1ca7:12822aa19a3:-8000-00000000000000ee] [SRC_METHOD:
     updateJobStatus] Updated status for asynchronous job
     105ab343-7fbd-4a82-a167-7d794f0801e4 : complete
    

25.2.8 Automatic Recovery Configuration for Oracle BPEL Process Manager

Oracle SOA Suite provides an automatic recovery feature in Oracle Enterprise Manager Fusion Middleware Control Console that enables you to configure and recover:

  • All activities (for example, wait activities and OnAlarm branches of pick activities) that have an associated expiration date and are scheduled with the SOA Infrastructure to be rescheduled

  • All activities that are not complete over a provided threshold time

  • All invoke and callback messages that are unresolved

Follow these instructions to configure automatic recovery.

  1. In the navigator, right-click soa-infra and select SOA Administration > BPEL Properties.

  2. Click More BPEL Configuration Properties.

  3. In the Name column, click RecoveryConfig.

  4. Expand RecurringScheduleConfig.

    This section enables you to configure recurring recovery attempts.

  5. Set the following properties to values appropriate to your environment, and click Apply.

    Property Description
    maxMessageRaiseSize The maximum number of messages to submit for each recurring recovery attempt. Use this property to limit the impact of recovery on the server. Note that this value specifies the maximum number of messages to filter from activity, invoke, and callback queries; that is, 50 messages from each of the activity, invoke, and callback tables.

    The default value is 50. A negative value causes all messages selected from the database to be submitted for recovery. A 0 value causes no messages to be selected from the database (effectively disabling recovery).

    startWindowTime The start time for the daily recovery window, specified in a 24-hour notation. Therefore, 2:00 pm is specified as 14:00. The leading zero does not need to be specified for single digit hour values (1:00-9:00).

    The default value is midnight (00:00). Any invalid parsed time value is defaulted to midnight.

    stopWindowTime The stop time for the daily recovery window, specified in a 24-hour notation. Therefore, 2:00 pm is specified as 14:00. The leading zero does not need to be specified for single digit hour values (1:00-9:00).

    If you do not want daily recovery, set the start and stop window times to be the same value. If the stop window time is earlier than the start window time, both the start and stop window times are changed to their respective default values.

    The default value is midnight (04:00), effectively setting recurring recovery to run until 04:00.

    Any invalid parsed time values default to 00:00.

    subsequentTriggerDelay The number of seconds between recovery attempts during daily recurring startup recovery periods. If the next recovery trigger falls outside of the current recovery period, that trigger is not scheduled until the next recurring recovery period (tomorrow).

    The default value is 300 (five minutes). A negative value causes the default to be selected.

    threshHoldTimeInMinutes This is the threshold time in minutes to ignore for automatic recovery processing. For automatic invoke and callback recovery, this value is used for picking messages with a received date less than the threshhold time.

    For automatic activities recovery, this value is used for picking activities with a modification date less than the threshhold time.

    The default value is 10 minutes. A negative value causes the default to be selected.


  6. Expand StartupScheduleConfig.

    This section enables you to configure server startup recovery attempts.

  7. Set the following properties to values appropriate to your environment, and click Apply.

    Property Description
    maxMessageRaiseSize The maximum number of messages to submit for each startup recovery attempt. Use this property to limit the impact of recovery on the server. Note that this value specifies the maximum number of messages to filter from activity, invoke, and callback queries; that is, 50 messages from each of the activity, invoke, and callback tables.

    The default value is 50. A negative value causes all messages selected from the database to be submitted for recovery. A zero value causes no messages to be selected from the database (effectively disabling recovery).

    startupRecoveryDuration Specifies the number of seconds that the startup recovery period lasts. After the server starts up, it goes into a startup recovery period. During this period, pending activities and undelivered callback and invocation messages are resubmitted for processing.

    The default value is 600 (ten minutes). A negative or zero value disables startup recovery.

    subsequentTriggerDelay The number of seconds between recovery attempts during the server startup recovery period. If the next recovery trigger falls outside the server startup period, that trigger is not scheduled and the server moves into the recurring recovery period.

    The default value is 300 (five minutes). A negative value causes the default to be selected.


Note:

In a cluster, it is possible for different nodes to concurrently attempt an automatic recovery of the same items. The first node to lock the item attempts the recovery, while other nodes may raise an exception that can be safely ignored.

25.2.9 NLS Issues with Oracle BPM Suite Flow Traces

Note the following localization activity label issues that exist with Oracle BPM Suite in Oracle Enterprise Manager Fusion Middleware Control Console:

  • Under Flow Trace > Instance of Process > Flow

    The localization activity label cannot be correctly loaded according to the browser language. If there is a localized label for English available, the English label is loaded for all languages. If there is no localized label for English available, the default language's label is loaded for all languages.

  • Under Flow Trace > Instance of Process > Audit Trail

    The localization label can be correctly loaded according to the browser locale. However, if the corresponding localization label does not exist, the first label in the list of localized labels is used. There is a potential problem with translation, because the first locale for each activity is not always the same.

25.2.10 Enabling and Disabling Measurements for Oracle BPM Suite

Measurements enable you to measure a business indicator at a certain point in the process or in a section of the process.

You can enable or disable measurements for Oracle BPM Suite at both the service engine and individual composite levels in Oracle Enterprise Manager Fusion Middleware Control Console. The service engine level setting takes precedence over the composite level setting; this means that when measurements are disabled at the BPMN service engine level, all measurements at all levels are disabled. If you enable measurements at the service engine level, the measurement setting at the individual composite level is taken into account. This property is similar in functionality to the property for enabling or disabling BPEL process sensors.

To set this property at the BPMN service engine level:

  1. Right-click soa-infra and select SOA Administration > BPMN Properties.

  2. Click More BPMN Configuration Properties.

  3. In the Name column, click disableSensors.

  4. From the Value list, select an appropriate value and click Apply. The default value is false. Setting this value to true disables all calls to sensors at all levels.

To set this property at the individual composite level:

  1. Right-click soa-infra in the navigator, and select Administration > System MBean Browser.

  2. Expand Application Defined MBeans > oracle.soa.config > Server: server_name > SCAComposite > composite_name.

  3. In the Name column, click Properties.

  4. Expand Properties > Element_0.

    Information for the disableProcessSensors property is displayed.

  5. In the many list, select an appropriate value and click Apply. The default value is false. Setting this value to true disables all calls to sensors for this individual composite.

    If this property does not exist, you can create it here and select an appropriate value.

    For more information about measurements, see Oracle Fusion Middleware Modeling and Implementation Guide for Oracle Business Process Management.

25.2.11 Resolving SUN JVM Crashes

Generating 300,000 BPEL instances through the Java test client using the following parameters causes the Sun Java Virtual Machine (JVM) to crash after three hours and a core dump to be created:

  • Number of threads: 100

  • Think time: 100 (ms)

Instead, use Sun JVM build 6u18-b09 to successfully run the test.

25.2.12 Demo Certificate Reference Removal When Using Your Own SSL Certificates

If you use your own certificates for SSL, you must remove references to the demo certificates by removing the following line from the setDomainEnv file for your version of the operating system.

-Djavax.net.ssl.trustStore=${WL_HOME}/server/lib/DemoTrust.jks

Otherwise, Oracle BPEL Process Manager cannot access the external SOAP endpoint.

25.2.13 Specifying a Nondefault XA Transaction Timeout Value for XA Data Sources

The default XA transaction timeout value for XA data sources is 0 seconds. You can change the default value in the Oracle WebLogic Server Administration Console. Follow these steps.

  1. Log in to Oracle WebLogic Server Administration Console.

  2. Under Domain Structure on the left side of the page, select Services > JDBC > Data Sources.

  3. In the Name column of the Data Sources table, select EDNDataSource (for event delivery network transactions) or SOADataSource (for all other types of transactions).

  4. Under the Configuration tab at the top, click the Transaction subtab.

  5. In the XA Transaction Timeout field, enter a value in seconds.

  6. Select the Set XA Transaction Timeout checkbox. You must select this checkbox for the new XA transaction timeout value to take effect.

  7. Click Save.

25.2.14 Resolving Thread-Blocking and Slow Performance in Composite Applications

If your thread dumps indicate that threads are being blocked and performance is slow, try setting the following JRocket Java Virtual Machine options in the DOMAIN_HOME\bin\setSOADomainEnv.cmd file.

-Xmx:1536M –Xms:1536M –Xgc:genpar

where:

  • -Xmx is the maximum heap size.

  • -Xms is the minimum heap size.

  • -Xgc:genpar is the static garbage collector (GC) running generational and parallel collection strategies.

25.2.15 Increasing the XA Transaction Timeout Value

If you send notifications for parallel task assignments in human workflow, you can see the transaction close, SQL exceptions appear, and notification processing take a long time at runtime. If this occurs, increase the XA transaction timeout for an XA data source in Oracle WebLogic Server Administration Console. When set, this value overrides the value of the global transaction timeout.

  1. Click Lock and Edit.

  2. Choose Services > Data Sources.

  3. Click the specific data source.

  4. Click the Transaction tab.

  5. Select Set XA Transaction Timeout.

  6. In the XA Transaction Timeout field, specify the value of the transaction timeout.

  7. Click Save.

  8. Log into SQL*Plus.

  9. Set the distributed_lock_timeout value.

    SQL> alter system set distributed_lock_timeout=value scope=spfile;
    

    Oracle recommends that you set distributed_lock_timeout to a value greater than or equal to that set in Step 6.

  10. Shut down and restart your database after running this command.

  11. Verify that the setting has changed.

    SQL> show parameter distributed_lock_timeout;
    
  12. Set this parameter to the same value for all instances in an Oracle Real Application Cluster.

25.2.16 PermGen Space Out-of-Memory Error when Using the Sun JDK

When the Sun JDK is used as the JVM for the SOA managed server, Oracle recommends that the following memory settings be used. If proper memory settings are not used, repeated operations on task detail applications (human workflow) can result in PermGen space out-of-memory errors.

  1. Open the DOMAIN_HOME\bin\setSOADomainEnv.cmd file.

  2. Increase the following values:

    if [ "${JAVA_VENDOR}" != "Oracle" ] ; then 
      DEFAULT_MEM_ARGS="${DEFAULT_MEM_ARGS} -XX:PermSize=128m 
    -XX:MaxPermSize=512m" 
      PORT_MEM_ARGS="${PORT_MEM_ARGS} -XX:PermSize=256m -XX:MaxPermSize=512m" 
    fi 
    

    to these values:

    if [ "${JAVA_VENDOR}" != "Oracle" ] ; then 
      DEFAULT_MEM_ARGS="${DEFAULT_MEM_ARGS} -XX:PermSize=512m 
    -XX:MaxPermSize=1024m" 
      PORT_MEM_ARGS="${PORT_MEM_ARGS} -XX:PermSize=512m -XX:MaxPermSize=1024m" 
    fi
    

25.3 Documentation Errata

This section describes documentation errata. It includes the following topic:

25.3.1 Copying Details to the Clipboard in the Activity Audit Trail in Mozilla Firefox

The note in Step 10 of Section "Viewing the Audit Trail and Process Flow of a BPEL Process Service Component" of Oracle Fusion Middleware Administrator's Guide for Oracle SOA Suite and Oracle BPM Suite states the following:

Note:

If using Internet Explorer, you can click Copy details to clipboard to copy the activity details to the clipboard. If using Mozilla Firefox, this link does not appear. Instead, you must manually select the text and copy and paste it to a file.

If you use Mozilla Firefox, the Copy details to clipboard link is now displayed. However, if you click the link, Mozilla Firefox displays a security warning.

25.3.2 Online Help for the Project Source Paths: SOA Content Dialog

The Project Source Paths: SOA Content dialog does not include context-sensitive help.

This dialog is available in Oracle JDeveloper by right-clicking a project in the Application Navigator and selecting Project Properties > Project Source Paths > SOA Content.

Use this dialog to change the SOA project directory.

Changing the SOA project directory does not cause project files to be saved in a different directory. All project files are still saved in the original directory location. The change occurs with how SOA project files display in the Application Navigator:

  • If you click Browse to change this directory, the current project files are no longer visible in the Application Navigator.

  • If you select Use Custom Settings and click Customize Settings to change this directory in the Customize SOA Content Settings dialog, the current project files are no longer visible in the Application Navigator for the current session of Oracle JDeveloper. When you exit Oracle JDeveloper, the settings revert and the project files display again in the Application Navigator.

This dialog includes the following buttons and fields:

  • Use Custom Settings radio button: Select to change the SOA project directory.

  • Use Project Settings radio button: Select to use the default SOA project directory in which to save files. This is the default selection.

  • Customize Settings button: Click to change the directory path location for SOA project files.

  • SOA Directory Name field: Displays the current directory path for the SOA project.