21 Oracle SOA Suite Common Functionality

This chapter describes runtime and common functionality issues associated with Oracle SOA Suite. It includes the following topics:

21.1 General Issues and Workarounds

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

21.1.1 Client Classpath Requirements for Using Direct Binding Invocations

For a client to invoke composite services over direct binding, its classpath must include both soa-infra-mgmt.jar and oracle-soa-client-api.jar.

For more information about using the direct binding invocations, see Oracle Fusion Middleware Developer's Guide for Oracle SOA Suite.

21.1.2 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.

21.1.3 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.

21.1.4 Deploying Multiple Composites Programmatically in Bulk Causes Failure After Approximately 30 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 30 composites, out-of-memory errors are displayed in the SOA server log files for the remaining composite deployments, and the SOA server hangs.

21.1.5 Multiple Instances Behavior for Technology Adapters in Deployed SOA Composite Applications

Instance tracking (flow trace) for a specific instance can display other instances (not relevant to the flow trace of the instance) under the following scenarios:

  • File adapter (inbound direction)

    For the first instance after a redeployment.

  • File adapter (two composites polling on the same directory for different file filters)

    The first instance of the second composite (that gets invoked) displays other instances.

  • File adapter (rejected messages carry over to the audit trails of completed instances)

    For example, if you perform the following steps:

    1. Create a BPEL process that reads from a file and writes to a file.

    2. Deploy the composite with the BPEL process to the SOA Infrastructure.

    3. Copy an incorrect file to the read directory so that the file is rejected and no instance is created.

      In Oracle Enterprise Manager Fusion Middleware Control Console, you see system faults with the rejected message.

    4. Copy the correct file to the read directory so that instances are created for the process.

      In Oracle Enterprise Manager Fusion Middleware Control Console, you see that the instance state has completed.

    5. Open the audit trail for the completed instances.

      In the audit trial page, the faults section shows system faults from previously rejected messages.

  • Database adapter

    Polling scenarios (MaxRaiseSize is greater than 1) always show multiple instances.

  • MQ Series Adapter

    Basic enqueue — dequeue scenarios always show multiple instances.

21.1.6 Removing the Mapping Between the Operators Role and the SOAOperator Role

By default, the Oracle WebLogic Server Operators role is included as a member of the SOAOperator role in Oracle Enterprise Manager Fusion Middleware Control Console. Oracle recommends that you remove the Operators role.

Perform the following steps to remove the Operators role.

  1. Log in to Oracle Enterprise Manager Fusion Middleware Control Console as a user with the Administrators role.

  2. In the navigator, expand the SOA folder.

  3. Right-click soa-infra, and select Security > Application Roles.

  4. To the right of the Role Name field, click the Search icon.

    The list of roles appears.

  5. Click SOAOperator.

    The Edit Application Role : SOAOperator page appears.

  6. In the Roles section, select Operators.

  7. Click Delete.

  8. Click OK to save the changes.

    This removes the Oracle WebLogic Server Operators role as a member of the Oracle Enterprise Manager Fusion Middleware Control Console SOAOperator role. At this point, the SOAOperator role includes only the Oracle WebLogic Server Administrators role.

21.1.7 BPEL Faulted Instances State Is Not Shown When the Capture Composite Instance State Checkbox is Unselected

When the Capture Composite Instance State checkbox of the SOA Infrastructure Common Properties page is unselected, the state of BPEL faulted instances is not shown. This is not the case with business rules, human workflow, or mediator. For each of these, the composite instance state is displayed as faulted/recovery needed.

21.1.8 Logins Required for Accessing Components from SSO-Enabled Oracle Enterprise Manager Fusion Middleware Control Console

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-SSL URLs for these components, and prompted to log in again.

  • Oracle BPM Worklist

  • Oracle B2B

  • Oracle BAM

  • SOA Composer

21.1.9 SOA Composite Application State Is Not Updated After BPEL Recovery Of a 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.

21.1.10 Correctly 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.

21.1.11 Mediator One-way Interface SOAP Call Provides Response in Case of Error

The one.way.returns.fault property controls how faults and one-way messages are handled. Add this property to the service binding component of the web service section for one-way web services in the composite.xml file. Table 21-1 provides details. This property is applicable only to services and not references, and is only applicable to the binding.ws binding type.

Table 21-1 one.way.returns.fault Property

If one.way.returns.fault Is... Then...

Set to true:

. . .
<service name="Mediator1_2"
 ui:wsdlLocation="ReadFile.wsdl">
    <interface.wsdl
 interface="http://xmlns.oracle.com/pcbpel/adapter/file
 /LocalSandbox/Project1/ReadFile%2F#wsdl.interface(Read_
ptt)"/>
    <binding.ws
 port="http://xmlns.oracle.com/pcbpel/adapter/file
/LocalSandbox/Project1/ReadFile%2F#wsdl.endpoint
(Mediator1/Read_pt)">
   <property name="one.way.returns.fault" type="xs:string" many="false"
     override="may">true</property>
    </binding.ws>
</service>
. . .

Any fault that occurs during downstream processing returns a SOAP fault to the client and an HTTP response code of 500. (The same behavior as 11g Release 1.)

Set to false:

. . .
<service name="Mediator1_2"
 ui:wsdlLocation="ReadFile.wsdl">
    <interface.wsdl
 interface="http://xmlns.oracle.com/pcbpel/adapter/file/
Local Sandbox/Project1/ReadFile%2F#wsdl.interface(Read_
ptt)"/>
    <binding.ws
port="http://xmlns.oracle.com/pcbpel/adapter/file/LocalSan
dbox/Project1/ReadFile%2F#wsdl.endpoint(Mediator1/Read_
pt)">
      <property name="one.way.returns.fault"
 type="xs:string" many="false"
                override="may">false</property>
    </binding.ws>
  </service>
. . .

Any fault that occurs during downstream processing returns only an HTTP response code of 500. No SOAP fault is returned to the client.

Not set (the default case)

Any fault that occurs during downstream processing returns a SOAP fault to the client and an HTTP response code of 500. (The same behavior as 11g Release 1.)


To add this property:

  1. In the SOA Composite Editor, select the service binding component to which to add this property.

  2. Go to the Property Inspector section in the lower right part of the editor.

  3. In the Binding Properties section, click the Add icon.

    The Create Property dialog is displayed.

  4. In the Name field, enter one.way.returns.fault.

  5. In the Value field, enter true or false.

  6. Click OK.

21.1.12 Available Attribute in System MBean Browser is Disabled

Although the Available attribute for a SOA composite application in the System MBean Browser is currently disabled by design, you can change its value. However, changing the value and clicking Apply results in an exceptions error. Do not change the value for this attribute. This attribute is accessible through 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.SCAService > client > SCAComposite.SCAService.SCABinding > WSBinding.

  3. Click the Attributes tab.

    The Available attribute is displayed.

21.1.13 XSLT Mapper Dictionary Does Not Generate Instructions in Which Functions are Used

You cannot create a dictionary for mappings in which functions are used. In these cases, the dictionary XML instructions are missing for the elements that were automapped or which had an XPath function mapping. For example, assume you use string functions to map XSDs during design time. If you right-click in the XSLT Mapper and select Generate Dictionary, the dictionary is created, but instructions are not created in all places in which the string functions were used during mapping.

Note that you can create a dictionary for simple type mappings.

21.1.14 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>

21.1.15 SOA Composite Application in a Retired State Does Not Receive Business Events

A BPEL component in a retired SOA composite application cannot receive a business event, even if the event is associated with a noninitiating receive activity of the BPEL process.

21.1.16 Event Delivery Network Attribute Changes in System MBean Browser Require a SOA Infrastructure Restart

If you change event delivery network attribute properties in the System MBean Browser of Oracle Enterprise Manager Fusion Middleware Control Console, you must restart the SOA Infrastructure. Not performing this action results in failure of the event delivery cases. For example, perform the following procedures:

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

  2. Perform one of the following steps:

    1. Navigate to Application Defined MBeans > oracle.soa.config > Server: server_name > EDNConfig > edn.

    2. In the upper left part of the page, click the Filter icon, enter the following pattern in the MBean Pattern Filter field, and click OK:

      oracle.as.soainfra.config:name=edn,type=EDNConfig,Application=soa-infra
      
  3. Change the value for either of the following attributes and click Apply.

    • NumberOfThreads

    • QueueWaitTime

    Note that the NumberOfRetrys attribute is also displayed. The NumberOfRetrys attribute is not supported for this release. Do not change the value for this attribute.

  4. Note that the Notification tab generates the following notification message:

    Notification that a Config MBean attribute has changed and a restart is needed
    
  5. To resolve the error, restart the SOA Infrastructure:

    1. In the navigator, right-click soa-infra and select Control > Shut Down.

    2. Wait for shutdown to complete.

    3. Right-click soa-infra again and select Control > Start Up.

21.1.17 Oracle Database Users Should Use EDN-DB

The event delivery network is the subsystem of SOA that accepts and delivers published business events to subscribers. Starting with this release, the event delivery network has two different implementations:

  • EDN-DB: Uses an Oracle database as a back-end store and depends on Oracle-specific features.

  • EDN-JMS: Uses a generic JMS queue as a back-end store.

If you are using an Oracle database, Oracle recommends that you use EDN-DB instead of EDN-JMS.

21.1.18 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.

21.1.19 Business Process Modeling Notation MBean Can Be Ignored

The System MBean Browser in Oracle Enterprise Manager Fusion Middleware Control Console includes an MBean for Business Process Modeling Notation (BPMN). This MBean cannot be used for this release, and should be ignored. The presence of this MBean does not impact the runtime behavior of other Oracle SOA Suite components.

21.1.20 Storing Application Artifacts in a Source Control System 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> 

21.1.21 Understanding Issues with BPEL Process Global Transactions and Adapter Local Transactions

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.

21.1.22 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.

21.1.23 Display of XML Content Getting Cut Off with Mozilla Firefox

If you are using Mozilla Firefox and click an activity on the Flow tab of a BPEL process service component instance in Oracle Enterprise Manager Fusion Middleware Control Console, the popup window that displays the XML content gets cut off on the right side. You must use the scroll bar at the bottom on this window to move to the right and display all XML content. If you use Internet Explorer, this is not an issue.

21.1.24 Duplicate XML Declarations in XML Source Results in Audit Trail Errors with Mozilla Firefox

If you use Mozilla Firefox to click the view XML document link on the Audit Trail page in Oracle Enterprise Manager Fusion Middleware Control Console, an error message similar to the following can be displayed:

XML Parsing Error: XML or text declaration not at start of entity
Location:
http://myhost.us.oracle.com:7001/em/faces/ai/sca/share/audit/xmlAuditDetail.
jsp?detailId=0&_afrLoop=10355217141136524&_afrWindowMode=0&_afrWindowId=_new 
Line Number 1, Column 39:<?xml version="1.0" encoding="UTF-8"?><?xml version 
= '1.0' encoding = 'UTF-8'?> 

This error occurs if the XML source already includes an XML declaration (for example, <?xml version = '1.0' encoding = 'UTF-8'?>).

<?xml version = '1.0' encoding = 'UTF-8'?> 
 <task xmlns="http://xmlns.oracle.com/bpel/workflow/task"> 
 <title>Approve Discount</title> 
  <payload xmlns="http://xmlns.oracle.com/bpel/workflow/task"> 
  <discountandshipping 
 xmlns:discountandshipping="http://www.globalcompany.com/ns/OrderBooking/rules" 
    xmlns="http://www.globalcompany.com/ns/OrderBooking/rules"> 
   <price>5000.0</price> 
. . . . .
. . . . .
</task> 

During processing, Oracle Enterprise Manager Fusion Middleware Control Console adds a second XML declaration. This results in duplicate XML declarations, which causes Mozilla Firefox to report an error.

As a workaround, use Internet Explorer.

21.1.25 Granting the Same Role to the Same User Twice Produces an Inaccurate Message with WLST

  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
    

21.1.26 Fault Policy Retry Action May Not Execute with Multiple Faults in the 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.

21.1.27 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.

21.1.28 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.

21.1.29 SOA Project Audit Information Is in English on Enterprise Manager

The SOA project audit information is in English on the Enterprise Manager page.

This issue has no workaround.

21.2 Configuration Issues and Workarounds

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

21.2.1 Removing References to the Demo Certificates 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.

21.2.2 Successfully Loading the SOAINFRA Schema with the Repository Creation Utility

If the Repository Creation Utility (RCU) is run with any user other than SYS or SYSTEM, then that user must be granted the following roles and privileges to successfully load the SOAINFRA schema:

GRANT dba TO new_user;
GRANT ALL ON dbms_aqadm TO new_user WITH GRANT OPTION;
GRANT ALL ON dbms_aq TO new_user WITH GRANT OPTION;

With these roles and privileges, the SOAINFRA schema is successfully created.

21.2.3 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.

21.2.4 XA Configuration Required to Start the SOA Infrastructure on Microsoft SQL Server 2008

You must configure XA support in both the Microsoft SQL Server database and Microsoft operating system to test the SOA Infrastructure connection during domain creation and to successfully start the SOA Infrastructure.

  1. Install Oracle WebLogic Server.

  2. Install Microsoft SQL Server JDBC XA procedures. These procedures enable you to use JDBC distributed transactions through JTA. This procedure must be repeated for each MS SQL Server installation to include in a distributed transaction.

    1. Copy the sqljdbc.dll and instjdbc.sql files to the directory appropriate to your version of SQL Server.

      For SQL Server... Copy Both Files From... To...
      2005
      WL_HOME_10.3\server\lib
      
      C:\Program Files\Microsoft SQL
      Server\MSSQL.1\MSSQL\Binn
      
      2008
      WL_HOME_10.3\server\lib
      
      C:\Program Files\Microsoft SQL
      Server\MSSQL10.INSTANCE_NAME\MSSQL\Binn
      

      Notes:

      • If you are installing stored procedures on a database server with multiple Microsoft SQL Server instances, then each running SQL Server instance must be able to locate the sqljdbc.dll file. Therefore, the sqljdbc.dll file must be anywhere on the global PATH or on the application-specific PATH. For the application-specific PATH, place the sqljdbc.dll file into the drive:\Program Files\Microsoft SQL Server\MSSQL$Instance_1_Name\Binn directory for each instance.

      • If your Oracle WebLogic Server and Oracle SOA Suite installations are on a Linux host, the sqljdbc.dll file does not appear under the WL_HOME_10.3/server/lib directory. In these cases, you must copy this file from a host on which sqljdbc.dll is installed.

    2. From the database server, use the ISQL utility to run the instjdbc.sql script for your version of SQL Server. As a precaution, back up the master database before running instjdbc.sql.

      For SQL Server... Run...
      2005
      C:\Program Files\Microsoft SQL Server\90\Tools\Binn\SQLCMD.EXE -S  
      "DB_HOST\INSTANCE_NAME" -U SA -P SA_PASSWORD -i instjdbc.sql -o 
      LOG_FILE
      
      2008
      C:\program files\Microsoft SQL Server\100\Tools\Binn\SQLCMD.EXE
      -S  "DB_HOST\INSTANCE_NAME" -U SA -P SA_PASSWORD -i instjdbc.sql -o
      LOG_FILE
      
        where:
      • DB_HOST is the name of the host on which SQL Server is installed.

      • INSTANCE_NAME is the name of the SQL Server instance.

      • SA_PASSWORD is the password of the system administrator.


      The instjdbc.sql script generates many messages. In general, these messages can be ignored; however, scan the output for any messages that may indicate an execution error. The last message should indicate that instjdbc.sql ran successfully. The script fails when there is insufficient space available in the master database to store the JDBC XA procedures or to log changes to existing procedures.

  3. Configure the Microsoft Distributed Transaction Coordinator (DTC) for the Microsoft operating system.

    1. From the Start menu, select Control Panel > Administrative Tools > Component Services icon > Component Services (in the navigator under Console Root) > Computers > My Computer.

    2. Right-click My Computer and select Properties > MSDTC > Security Configuration.

      The Security Configuration dialog appears.

    3. In the Security Settings section, select the Network DTC Access checkbox.

    4. In the Client and Administration section, select the Allow Remote Clients checkbox.

    5. In the Transaction Manager Communication section, select the Allow Inbound, Allow Outbound, No Authentication Required, and Enable Transaction Internet Protocol (TIP) Transactions checkboxes.

    6. In the Security Settings section, select the Enable XA Transactions checkbox.

    7. Click OK in the Security Configuration dialog.

    8. Click OK in the My Computer Properties dialog.

21.2.5 Streaming Inbound and Outbound Attachments

To stream attachments from the SOA WS binding layer, add the following properties in composite.xml for services and references:

streamIncomingAttachments="true" streamOutgoingAttachments="true"

Example 21-1 shows a sample.

Example 21-1

<binding.ws
port="http://services.otn.com#wsdl.endpoint(MIMEService/MIMEService)"
xmlns:ns="http://xmlns.oracle.com/sca/1.0"
streamIncomingAttachments="true" streamOutgoingAttachments="true"/>
>

21.2.6 Increasing Memory to Recover from Compilation Errors

If you receive out-of-memory errors during compilation of a SOA composite application, perform the following steps to increase memory.

  1. Open the ant-sca-compile.xml file in the $ORACLE_HOME/bin directory.

  2. Under the scac element, increase the memory setting. For example:

    <jvmarg value="-Xmx512M"/>
    

21.2.7 Using ADF Binding to Invoke a Composite Application from a JSP/Java Class

If a SOA composite application uses Web service (WS) binding to define an endpoint reference, the composite cannot be invoked from a JSP/Java class. WS binding is defined with the binding.ws port="" location="" tag in the composite.xml file:

<service name="client_ep" ui:wsdlLocation="BPEL.wsdl"> 
    <interface.wsdl interface="http://xmlns.oracle.com/Application/Project/ 
      BPEL#wsdl.interface(BPEL)"/> 
    <binding.ws port="http://xmlns.oracle.com/App/BPELProj/ 
      BPELProcess#wsdl.endpoint(bpel_client_ep/BPELProcess_pt)"/> 
  </service> 

Instead, use ADF binding. After deployment of the composite with ADF binding, invocation from a JSP/Java class is successful.

<service name="client_ep" ui:wsdlLocation="BPEL.wsdl"> 
    <interface.wsdl interface="http://xmlns.oracle.com/Application/Project/ 
     BPEL#wsdl.interface(BPEL)"/> 
    <binding.adf serviceName="bpel_client" registryName=""/>   
  </service> 

21.2.8 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.

21.2.9 PermGen Space Out-of-Memory Error

If you get Permgen Space Out-of-Memory errors in the SOA managed server, perform these steps:

  1. Open the $DOMAIN_HOME/bin/setSOADomainEnv.sh file.

  2. Increase the following values:

    if [ "${JAVA_VENDOR}" != "Oracle" ] ; then 
      DEFAULT_MEM_ARGS="${DEFAULT_MEM_ARGS} -XX:PermSize=128m 
    -XX:MaxPermSize=256m" 
      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
    

21.3 Documentation Errata

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

21.3.1 Purge Script Name is purge_soainfra_oracle.sql

Section "Deleting Large Numbers of Instances" of Chapter "Managing SOA Composite Applications" of Oracle Fusion Middleware Administrator's Guide for Oracle SOA Suite mentions to use the purge-script.sql PL/SQL script for deleting instances and rejected messages.

The correct name for this script is purge_soainfra_oracle.sql.

The PL/SQL procedures in this script are populated into the database when you run the Repository Creation Utility during Oracle SOA Suite schema creation.

For more information about this script, see Oracle MetaLink Note 815896.1.

21.3.2 Undeploy SOA Composite Wizard Online Help and Viewing Flow Trace Details for Stale Instances

The online Help for the Undeploy SOA Composite Wizard states that when the instance state of the undeployed composite application is set to stale, you cannot access BPEL process audit trail details, but that flow diagram details are accessible for viewing.

In fact, both the audit trail and flow diagram are inaccessible. You must redeploy the composite to view the audit trail and flow diagram.