3 Configuring the SOA Infrastructure

This chapter describes how to configure the properties of the SOA Infrastructure, including audit levels, composite instance states, and payload validation. These property settings can apply to all SOA composite applications running in the SOA Infrastructure. It also describes how to configure local optimization and stop and start the managed server and SOA Infrastructure.

This chapter includes the following topics:

For more information, see Section 1.2.1, "Introduction to the SOA Infrastructure Application."

3.1 Configuring SOA Infrastructure Properties

You can configure the following properties for the SOA Infrastructure:

  • Audit level

  • Composite instance state to capture

  • Payload validation

  • Universal Description, Discovery, and Integration (UDDI) registry

  • Callback server and server URLs

  • Display of recent instances, faults, and count metrics on pages

  • Search criteria for the retrieval of recent instances and faults

  • Java Naming and Directory Interface (JNDI) data source

  • Web service binding properties

The properties set at this level impact all deployed SOA composite applications, except those composites for which you explicitly set different audit level values at the composite application or service engine levels.

Additional advanced properties for the SOA Infrastructure can be configured through the System MBean Browser. You can access these properties from the More SOA Infra Advanced Configuration Properties link on the Common Properties page as described in this section or from the SOA Infrastructure menu by selecting Administration > System MBean Browser > Application Defined MBeans > oracle.as.soainfra.config.

SOA Infrastructure properties are stored in the Oracle Metadata Services (MDS) Repository associated with the SOA Infrastructure. For Oracle SOA Suite, the MDS Repository is configured by default to store its contents in the database.

To configure SOA Infrastructure properties:

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

    From the SOA Infrastructure Menu... From the SOA Folder in the Navigator... From the SOA Composite Menu...
    1. Select SOA Administration > Common Properties.

    1. Right-click soa-infra.

    2. Select SOA Administration > Common Properties.

    1. Select SOA Infrastructure Common Properties.


    The SOA Infrastructure Common Properties page displays the following properties.

    Note:

    Some property fields are designated with an icon showing green and red arrows. If you change these properties, you must restart the SOA Infrastructure.

    Description of soaadmin_common_props.gif follows
    Description of the illustration soaadmin_common_props.gif

    Descriptions for the properties at the top of the page are provided in the following table.

    Element Description

    Audit Level

    Select the level of information to be collected by the message tracking infrastructure. This information is collected in the instance data store (database) associated with the SOA Infrastructure. This setting has no impact on what gets written to log files.

    • Off: No composite instance tracking and payload tracking information is collected. No more composite instances can be created. No logging is performed. Disabling logging and the display of instances in Oracle Enterprise Manager Fusion Middleware Control can result in a slight performance increase for processing instances. Instances are created, but are not displayed.

    • Development: Enables both composite instance tracking and payload detail tracking. However, this setting may impact performance. This level is useful largely for testing and debugging purposes.

    • Production: Composite instance tracking is collected, but the Oracle Mediator service engine does not collect payload details and the BPEL process service engine does not collect payload details for assign activities (payload details for other BPEL activities are collected). This level is optimal for most normal production operations.

    Capture Composite Instance State

    Select to capture the SOA composite application instance state. Enabling this option may result in additional runtime overhead during instance processing. This option provides for separate tracking of the running instances. All instances are captured as either running or not running. This information appears later in the State column of the composite instances tables for the SOA Infrastructure and SOA composite application, where:

    • It shows the counts of running instances versus total instances

    • You can also limit the view to running instances only

    Valid states are running, completed, faulted, recovery needed, stale, terminated, and state not available.

    The running and completed states are captured only if this checkbox is selected. Otherwise, the state is set to unknown. The conditional capturing of these states is done mainly to reduce the performance overhead on SOA Infrastructure runtime.

    Note: If this property is disabled and you create a new instance of a SOA composite application, a new instance is created, but the instance does not display as running, faulted, stale, terminated, completed, or requiring recovery in the Dashboard page table of the composite application. This is because capturing the composite state of instances is a performance-intensive process.

    For example, if you enable this property and create a SOA composite application instance in the Test Web Service page, a new instance appears in the Dashboard page of the composite application. If you click Show Only Running Instances in the Dashboard page, the instance is displayed as running. If you then disable this property and create another instance of the same composite application, a new, running instance is created. However, if you then select Show Only Running Instances, the new instance is not listed in the running instances table.

    In addition, to terminate a running instance, the instance must have a state (for example, running, faulted, and so on). This activates the Abort button on the Instances page of a SOA composite application. If this checkbox is not enabled before creating an instance, the Abort button is inactive, and you cannot terminate the instance.

    Payload Validation

    Select to enable validation of incoming and outgoing messages. Nonschema-compliant payload data is intercepted and displayed as a fault.


  2. Make changes appropriate to your environment.

    The UDDI Registry Properties section displays the following properties. You can integrate SOA composite applications running in the SOA Infrastructure with the UDDI registry. The UDDI registry provides a standards-based foundation for locating published services and managing metadata about services (security, transport, or quality of service). You can browse and select published services that meet your needs.

    The User and Password properties are applicable if the UDDI registry is secured. These are only used for the secure HTTP configuration of Oracle Service Registry (OSR). The Inquiry URL property is public.

    Element Description Example

    Inquiry URL

    Enter the URL of the master registry you want to query. The URL must not refer to the slave registry itself. Otherwise, you can lose some data. The inquiry URL obtains full-standard UDDI version 3 structures. This is the same UDDI inquiry URL that you specified in the Create UDDI Registry Connection wizard.

    http://master.mycompany.com:8888/registry/uddi/inquiry

    User

    Enter the registry inquiry user.

    admin

    Password

    Enter the password for the master registry inquiry user.

    Enter a password that utilizes good security practices.


    For information about setting the endpoint reference and service key, see Section 34.1.3, "Changing the Endpoint Reference and Service Key for Oracle Service Registry Integration."

  3. Make changes appropriate to your environment.

    The Server URLs section displays the following properties. If not explicitly set here, these values are determined at runtime by querying the Oracle WebLogic Server cluster, the web server, or the local server properties.

    Element Description

    Callback Server URL

    Enter the callback server URL. This URL is sent by the server as part of the invocation to a foreign service provider.

    Server URL

    Enter the server URL. This URL is published as part of the SOAP address of a service in the concrete WSDL file.

    Note: In 10.1.x releases, you manually configured SOAP optimization with the optSoapShortcut property. For release 11g, SOAP optimization is automatically configured. Therefore, if you upgrade to 11g and are using the optimized shortcut approach in existing applications, optimized calls are activated only when the hostname value (as referred to in the WSDL URL in the composite.xml file) matches the Server URL value. Either set both values to the hostname (for example, myhost) or to the full domain name (for example, myhost.domain.com). If these values do not match, a regular SOAP call is performed instead of an optimized local call.

    For information about local optimization, see Section 3.7, "Configuring Local Optimization."


    Note:

    If you change the Callback Server URL and Server URL values (for example, when moving from a test to a production environment), you must restart Oracle WebLogic Server for the WSDLs to be regenerated.

  4. Make changes appropriate to your environment.

    The Display Data Counts section displays the following properties for improving the time it takes to load pages.

    Note:

    Any changes to these properties impact all SOA farms associated with this Oracle Enterprise Manager instance.

    Element Description

    Disable fetching of instance and fault count metrics. Each metric can still be retrieved on demand.

    Select to disable the display of instance and fault count metrics on the Dashboard pages of the SOA Infrastructure, SOA composite applications, service engines, and service components.

    Instead, these metrics are replaced with links that you click to retrieve the instance and fault count metrics when you need this information. This setting can improve the time it takes to load pages.

    If you click a link to retrieve instance and fault count metrics, and Oracle Enterprise Manager Fusion Middleware Control times out, increase the transaction timeout property. For more information, see Section B.2.1, "Resolving Connection Timeouts" and Section B.6.1, "Optimizing the Loading of Pages with Instance and Fault Metrics."

    Restrict display of instances and faults to the last time_period

    Select this checkbox and specify a time period during which to retrieve recent instances, faults, and count metrics for display on the following pages:

    • Dashboard pages of the SOA Infrastructure, SOA composite applications, service engines, and service components

    • Deployed Composites page of the SOA Infrastructure and service engines

    • Partition home page

    By default, this checkbox is selected and the time period duration is set to 24 hours (one day). If this checkbox is not selected, all instances and faults (including count metrics) in the SOA Infrastructure since the last purging are displayed.

    Note: It is highly recommended that you set a time period duration because it has a significant impact on the performance of multiple Oracle Enterprise Manager Fusion Middleware Control pages and queries.

    The time period you specify appears by default in the Fault Time From field on faults pages on which you can search for faults and the Start Time From field on instances pages on which you can search for instances.

    When you select this checkbox and specify a time period, the Show All links change to Show More links on the Dashboard pages of the SOA Infrastructure, SOA composite applications, service engines, and service components.


    For additional details, see Section B.6.1, "Optimizing the Loading of Pages with Instance and Fault Metrics."

  5. Make changes appropriate to your environment.

  6. Expand the Advanced section.

    Description of soaadmin_common_props2.gif follows
    Description of the illustration soaadmin_common_props2.gif

    The Data Sources section displays the following properties. A data source enables you to retrieve a connection to a database server.

    Element Description Example

    Server Data Source JNDI

    Displays the JNDI location for the server data source. Click Configure to go to the data source configuration page of the Oracle WebLogic Server Administration Console. Global transaction support should be disabled for this data source.

    jdbc/SOALocalTxDataSource

    Server Transaction Data Source JNDI

    Displays the JNDI location for the server transactional data source. Click Configure to go to the data source configuration page of the Oracle WebLogic Server Administration Console. You must configure the data source for global transactions.

    jdbc/SOADataSource

    Nonfatal Connection Retry Count

    Enter the maximum number of times a nonfatal connection error can be retried before failing. These type of errors occur for any connection error with the dehydration store (for example, Oracle Real Application Clusters failover, database shutdown, and so on).

    10


  7. Make changes appropriate to your environment.

    The Web Service Binding Properties section displays the following options.

    Element Description Example

    Oracle SSL Ciphers

    Enter the list of supported Oracle ciphers.

    A cipher suite is a set of algorithms that provide security for data transmissions. Before data can flow through an SSL connection, both sides of the connection must negotiate common algorithms to use.

    SSL_RSA_WITH_RC4_128_MD5

    Oracle Wallet Password

    Enter the wallet password for the keystore.

    Enter a password that utilizes good security practices.

    Use Chunking

    Select to enable chunking of data for SOAP over HTTP deliveries.

    - -

    Chunk Size

    Specify a chunk size. The value must be less than or equal to 999. The size is used for SOAP over HTTP deliveries and is specified in bytes.

    500


  8. Make changes appropriate to your environment.

  9. Click Apply.

  10. If you make changes and want to reset these properties to their previous values, click Revert.

  11. To change advanced parameters, click More SOA Infra Advanced Configuration Properties. This opens the System MBean Browser. The properties that display include, but are not limited to, the following. Descriptions are provided for each property.

    • AuditConfig: The status of BPEL message recovery. By default, the bpelRecoveryStatus key of this property is set to All. If there are BPEL messages requiring recovery in the Recovery page of the BPEL process service engine, this setting enables a BPEL Message Recovery Required inline warning message and recovery icon to display in the Trace table of the Flow Trace page and the home pages of the SOA Infrastructure and SOA composite applications. If this key is set to Off, no message recovery information is displayed. For more information, see the following sections:

      This property also includes the excludeBpelMaxCreationTime key. This key enables you to set the time period for excluding messages that require recovery. For more information, see Section 4.1, "Monitoring SOA Infrastructure Recent Instances and Faults and Deployed Composites."

    • GlobalTxMaxRetry: The maximum number of times an invocation exception can be retried.

    • GlobalTxRetryInterval: The number of seconds between retries for an invocation exception.

    • HttpProxyAuthRealm: The HTTP proxy authentication realm.

    • HttpProxyAuthType: The HTTP proxy authentication type.

    • HttpProxyHost: The HTTP proxy host.

    • HttpProxyPassword: The password for HTTP proxies that require authentication.

    • HttpProxyPort: The HTTP proxy port number.

    • HttpProxyUsername: The user name for HTTP proxies that require authentication.

    • HttpServerURL: The HTTP protocol URL published as part of the SOAP address of a process in the WSDL file.

    • HttpsServerURL: The HTTPS protocol URL published as part of the SOAP address of a process in the WSDL file.

    • KeystoreLocation: The path to the Oracle SOA Suite keystore.

    • UddiCacheLifetime: The UDDI endpoint cache life span.

3.1.1 Disabling Instance and Fault Count Metrics Retrieval with the System MBean Browser

As described in Section 3.1, "Configuring SOA Infrastructure Properties," you can disable the retrieval of instance and fault count metrics in the Display Data Counts section of the SOA Infrastructure Common Properties page. You can also change this property through the System MBean Browser.

To disable instance and fault count metrics retrieval with the System MBean Browser.

  1. Select Application Defined MBeans > emom.props > Server:AdminServer > Application: em > Properties > emoms.properties.

    Note that emoms.properties is only available for selection if you previously modified the Disable fetching of instance and fault count metrics option of the Display Data Counts section of the SOA Infrastructure Common Properties page.

  2. In the Name column of the Attributes tab, click Properties.

  3. In the Value column, expand Element_20.

  4. In the Element column, enter false to disable metrics retrieval.

  5. Click Apply.

  6. Restart the SOA Infrastructure. A restart is not required if you instead change the Disable fetching of instance and fault count metrics option through the Display Data Counts section of the SOA Infrastructure Common Properties page.

3.2 Stopping and Starting the Managed Server and SOA Infrastructure

You can stop and start the SOA Infrastructure in Oracle Enterprise Manager Fusion Middleware Control for maintenance or for configuration restarts. To do so, stop and start the managed server on which the SOA Infrastructure is installed. This restarts both the managed server and the SOA Infrastructure.

Notes:

  • Starting with 11g Release 1 (11.1.1.4.0), you can no longer stop and start the SOA Infrastructure from the soa-infra menu in the navigator.

  • You can also have a developer configuration that only includes an administration server, and no managed servers.

To stop and start the managed server and SOA Infrastructure:

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

    From the WebLogic Server Menu... From the WebLogic Domain Folder in the Navigator...
    1. Select Control.

    1. Right-click the managed server (for example, soa_server1).

    2. Select Control.


  2. To shut down the managed server and SOA Infrastructure, select Shut Down.

  3. Click OK when prompted to shut down the managed server and SOA Infrastructure.

  4. Wait for shutdown to complete.

  5. To start the managed server and SOA Infrastructure, select Start Up.

For information on stopping and starting managed servers with Node Manager, see Oracle Fusion Middleware Node Manager Administrator's Guide for Oracle WebLogic Server.

For information on starting and stopping managed servers with WLST commands, see Oracle Fusion Middleware Administrator's Guide.

3.2.1 Waiting for SOA Infrastructure Startup Initialization to Complete

After the SOA Infrastructure is started, it may not be completely initialized to administer incoming requests until all deployed composites are loaded. Therefore, the response metrics that are displayed on some Oracle Enterprise Manager Fusion Middleware Control pages may not reflect their actual status. This is most apparent when the SOA Infrastructure is in a cluster with multiple managed servers and a large number of deployed composites.

During the initialization stage, Oracle Enterprise Manager Fusion Middleware Control does not prevent you from executing operations such as composite deployment, composite undeployment, and others, even though these operations may not complete successfully. Instead, a warning message is displayed at the top of the Oracle Enterprise Manager Fusion Middleware Control pages shown in Table 3-1. Do not perform operations such as composite deployment, composite undeployment, and others while this message is displayed. Once initialization completes, the message is no longer displayed. You see this after you refresh the page. You can then perform operations.

Table 3-1 SOA Infrastructure Initialization Message

This Warning Message Is Displayed... At the Top of These Pages...
Initializing SOA
Even though the soa-infra target is up, some SOA
Fabric components and composite applications are
still loading. You may need to allow some time for
the initialization to complete, and later click the
Refresh Page icon. It is not adivsable to execute
any operations on this soa-infra until this warning
goes away.
  • SOA Infrastructure home page

  • SOA composite application home page

  • Manage Partitions page

  • Partition home page


3.2.2 SOA Composite Application States and SOA Infrastructure Shutdown

SOA composite application states are not updated to indicate that they are down after SOA Infrastructure shutdown. If you attempt to access the composite, you receive an error message stating that composite details cannot be retrieved:

soa-infra runtime connection error  An error happened while connecting to
soa-infra runtime at  t3://152.61.150.106:8001/soa-infra.

This message may lead you to believe that another issue exists in the system. However, this is not the case.

These composite states display as up, or in some cases pending, because this metric indicates whether the composite is enabled, and is independent of whether the SOA Infrastructure is started. In addition, the composite is still active and can receive requests on other managed servers in a cluster.

3.2.3 Restarting the SOA Infrastructure Does Not Activate Endpoints When a Retired Composite is Activated

If a SOA composite application with adapter endpoints is in a retired state, the endpoints are not activated if you perform the following actions:

  • Restart the SOA Infrastructure

  • Activate the SOA composite application

This is because files, records, and so on are not picked up by the endpoint adapters. As a workaround, redeploy the SOA composite application after restarting the SOA Infrastructure.

3.2.4 SOA Infrastructure Startup Failure When cwallet.sso Includes the SOA Map

When cwallet.sso has the SOA map, you receive an error message similar to the following when attempting to start the SOA Infrastructure.

Caused By: java.security.UnrecoverableKeyException: Password verification 
failed 
        at 
sun.security.provider.JavaKeyStore.engineLoad(JavaKeyStore.java:769) 
        at 
sun.security.provider.JavaKeyStore$JKS.engineLoad(JavaKeyStore.java:38) 
        at java.security.KeyStore.load(KeyStore.java:1185) 
        at oracle.j2ee.ws.saaj.util.SSLUtil.loadKeyStore(SSLUtil.java:73) 
        at 
oracle.j2ee.ws.saaj.util.SSLUtil.getKeyManagerFactory(SSLUtil.java:88) 
        at oracle.j2ee.ws.saaj.util.SSLUtil.getKeyManagers(SSLUtil.java:97) 
        at 
oracle.j2ee.ws.saaj.util.SSLUtil.createSSLSocketFactory(SSLUtil.java:50) 
        at 
oracle.integration.platform.common.SSLSocketFactoryManagerImpl.getSSLSocketFac 
tory(SSLSocketFactoryManagerImpl.java:58) 
        at oracle.fabric.common.wsdl.WSDLManager.init(WSDLManager.java:356) 
        at oracle.fabric.common.wsdl.WSDLManager.<init>(WSDLManager.java:101) 
        at 
oracle.fabric.common.metadata.MetadataManagerImpl.getWSDLManager(MetadataManag 
erImpl.java:283) 
        at 
oracle.fabric.composite.model.CompositeModel.getWSDLManager(CompositeM 

Perform the following steps to resolve this issue.

  1. Perform one of the following actions:

    • Delete the SOA map in cwallet.sso.

    • Remove $DOMAIN_HOME/config/fmwconfig/default-keystore.jks. Oracle Web Services Manager (OWSM) uses this file.

  2. Restart the SOA Infrastructure.

3.3 Changing the SOA Infrastructure Server URL Property Port

In addition to the SOA Infrastructure Common Properties page, you can also change the SOA Infrastructure ServerURL property port in the System MBean Browser of Oracle Enterprise Manager Fusion Middleware Control.

When changing the port, note the following details:

  • If the SOA Infrastructure and managed Oracle WebLogic Server port numbers are different, you receive a ConnectException error when trying to connect to the Oracle BPM Worklist. Ensure that these port numbers match.

  • You cannot change the SOA Infrastructure port from the Oracle WebLogic Server Administration Console. Only the port for the managed Oracle WebLogic Server can be changed from the Oracle WebLogic Server Administration Console.

To change the SOA Infrastructure port:

  1. From the SOA Infrastructure menu, select Administration > System MBean Browser.

  2. Under Application Defined MBeans, expand oracle.as.soainfra.config > Server: server_soa > SoaInfraConfig > soa-infra.

    where server_soa is the name of the server provided during post installation configuration. By default, this name is soa_server1.

  3. In the Name column, click ServerURL.

    The Attribute: ServerURL page appears.

    Description of hwf_wlist_port.gif follows
    Description of the illustration hwf_wlist_port.gif

  4. In the Value field, change the port.

  5. Click Apply.

  6. Change the managed Oracle WebLogic Server port in the Oracle WebLogic Server Administration Console to the same value.

    In environments in which a load balancer is used in front of an Oracle WebLogic Server cluster, the ServerURL property host and port can be different from the Oracle WebLogic Server host and port. This is typical for enterprise deployment environments in which a load balancer distributes requests across the managed servers in the Oracle WebLogic Server cluster. For more details, see Oracle Fusion Middleware Enterprise Deployment Guide for Oracle SOA Suite.

3.4 Configuring Log Files

Oracle SOA Suite components generate log files containing messages that record all types of events, including startup and shutdown information, errors, warning messages, access information on HTTP requests, and additional information.

To configure log files:

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

    From the SOA Infrastructure Menu... From the SOA Folder in the Navigator...
    1. Select Logs > Log Configuration.

    1. Right-click soa-infra.

    2. Select Logs > Log Configuration.


    The Log Configuration page displays the following details:

    • A View list for selecting the type of loggers for which to view information:

      • Persistent: Loggers that become active when a component is started. Their configuration details are saved in a file and their log levels are persisted across component restarts.

      • Active runtime: Loggers that are automatically created during runtime and become active when a particular feature area is exercised (for example, oracle.soa.b2b or oracle.soa.bpel). Their log levels are not persisted across component restarts.

    • A table that displays the logger name, Oracle Diagnostic Logging (ODL) level for setting the amount and type of information to write to a log file, the log file, and the log level state.

    Description of sca_logconfig.gif follows
    Description of the illustration sca_logconfig.gif

  2. Perform the following log file tasks on this page:

    1. In the Logger Name column, expand a logger name. This action enables you to specify more specific logging levels within a component.

    2. In the Oracle Diagnostic Logging Level columns, select the level and type of information to write to a log file.

    3. In the Log File column, click a specific log file to create and edit log file configurations.

      For more information about ODL log files and the level and type of logging information to write to a log file, see Oracle Fusion Middleware Administrator's Guide.

  3. Click the Log Files tab.

    This page enables you to create and edit log file configurations, including the log file in which the log messages are logged, the format of the log messages, the rotation policies used, and other parameters based on the log file configuration class.

    Description of sca_logfiles.gif follows
    Description of the illustration sca_logfiles.gif

    For more information about logging, see Oracle Fusion Middleware Administrator's Guide.

    For information on setting logging levels and Oracle SOA Suite logging files to view, see Section B.1, "Setting Logging Levels for Troubleshooting."

3.4.1 Configuring the Logging File Encoding Property

The oracle-soa-handler log handler property of the soa-diagnostic.log file has no encoding property specified in the SOA_Domain/config/fmwconfig/servers/server_soa/logging.xml file. Instead, the soa-diagnostic.log file is written in the operating system's default encoding format. This can cause the following problems:

  • Non-ASCII error messages can become unreadable because logging information is written to soa-diagnostic.log in the server's default encoding format.

  • On Windows operating systems, writing in the default encoding format can lead to non-ASCII data loss.

To avoid this problem, specify a value of UTF-8 for the oracle-soa-handler log handler property in the logging.xml file.

<?xml version='1.0'?>
<logging_configuration>
 <log_handlers>
  <log_handler name='wls-domain'
 class='oracle.core.ojdl.weblogic.DomainLogHandler' level='WARNING'/>
  <log_handler name='oracle-soa-handler'
 class='oracle.core.ojdl.logging.ODLHandlerFactory'>
   <property name='path' value='c:\soa1210.1411\user_
projects\domains\soa/servers/server_soa/logs/soa-diagnostic.log'/>
   <property name='maxFileSize' value='10485760'/>
   <property name='maxLogSize' value='104857600'/>
   <property name='supplementalAttributes' value='J2EE_APP.name,J2EE_
MODULE.name,WEBSERVICE.name,WEBSERVICE_PORT.name,composite_instance_id,component_
instance_id,composite_name,component_name'/>
    <property name='encoding' value='UTF-8'/>   
  </log_handler>
 </log_handlers>
...

Log files are written with ODL. You can view the content of log files from Oracle Enterprise Manager Fusion Middleware Control.

For more information about logging, see Oracle Fusion Middleware Administrator's Guide.

3.5 Changing the Driver Name to Support Custom XA Drivers

The default SOA Infrastructure data source is always XA-enabled. If your data sources require support for custom drivers, you must change the driver name on Oracle WebLogic Server.

To change the driver name through one of the following methods:

  • Edit in Oracle WebLogic Server Administration Console.

    1. Log in to Oracle WebLogic Server Administration Console.

    2. In the left pane, select Domain Structure.

    3. Select Services > JDBC > Data Source > SOADataSource > Connection Pool.

    4. For the Driver Class Name, change the value to a custom data source (for example, oracle.jdbc.xa.client.myDataSource.

    5. Restart the server.

  • Edit the soaDataSource-jdbc.xml file.

    1. Open the soaDataSource-jdbc.xml file on Oracle WebLogic Server.

    2. Change the SOADataSource driver name from oracle.jdbc.OracleDriver to oracle.jdbc.xa.client.myDataSource.

      <?xml version="1.0" encoding="UTF-8"?>
      <jdbc-data-source
      /. . .
      . . .
      /  <name>SOADataSource</name>
       <jdbc-driver-params>
            <url>jdbc:oracle:thin:@adc60086fems.us.oracle.com:1537:co0yd570</url>
            <driver-name>*oracle.jdbc.xa.client.myDataSource*</driver-name>
         <properties>
           <property>
             <name>user</name>
             <value>fusion_soainfra</value>
           </property>
         </properties>
      /  . . .
       . . ./
       </jdbc-driver-params>
      /. . .
      . . ./
      </jdbc-data-source>
      

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

To specify a nondefault XA transaction timeout value for XA data sources:

  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.

3.7 Configuring Local Optimization

Local optimization is the process of one SOA composite application invoking another SOA composite application through direct Java invocations in an environment in which both composites are on the same SOA server (JVM).

Direct Java invocations are generally more efficient than SOAP over HTTP calls. Therefore, whenever the conditions are met for direct Java invocations, Oracle SOA Suite optimizes the service calls for the co-located composites.

3.7.1 Condition Checks for Using Local Optimization

Oracle SOA Suite performs the following condition checks to determine if local optimization is possible.

  • It must be a composite-to-composite invocation. This is the most fundamental criteria that makes direct Java calls possible when both the client and target services are implemented based on the same SOA Infrastructure (that is, the same SOA server).

  • The composite implementing the reference (target) service must be active. This condition requires the target composite to be up and running, which in turn ensures that the reference service is available.

    Note:

    The state of the target composite must be on and active. A stopped or retired state is not eligible for local optimization.

  • The client and target composites must be co-located on the same server. This is an obvious requirement for direct Java invocations. It is also a critical step in which Oracle SOA Suite compares the server (on which the client composite is deployed) host configuration with the host and port values specified in the reference (target) service endpoint URI. If the host and port values match, it can be concluded that the client and target composites are located on the same server. However, the comparison is not necessarily straightforward given that working with both standalone and clustered server setups and potential load balancer configurations is necessary. Therefore, here are the step-by-step condition checks that determine the correct server configuration on all platforms:

    • Checks the Server URL configuration property value on the SOA Infrastructure Common Properties page, as described in Section 3.1, "Configuring SOA Infrastructure Properties."

    • If not specified, checks the FrontendHost and FrontendHTTPPort (or FrontendHTTPSPort if SSL is enabled) configuration property values from the cluster MBeans.

    • If not specified, checks the FrontendHost and FrontendHTTPPort (or FrontendHTTPSPort if SSL is enabled) configuration property values from the Oracle WebLogic Server MBeans.

    • If not specified, uses the DNS-resolved Inet address of localhost.

    • Checks if the port value specified in the reference service endpoint URL matches the configured server port value. If no port value is specified in the endpoint URL, Oracle SOA Suite assumes 80 for HTTP and 443 for HTTPS URLs.

    • If the port values match, the server URL (that is, http(s)://host:port, where host and port are obtained from the checks mentioned above) is then compared to the server URL in the reference endpoint address. The URLs are resolved to canonical values and the comparison also takes into account the cases in which the endpoint URL host is localhost or 127.0.0.1.

    • Oracle SOA Suite concludes that the composites are co-located if the server URL comparison returns a value of true.

  • The security policy configurations, if applied on either or both the client and server composites, must allow for local optimization. For information about policy configurations and local optimization, see Section 7.6.2, "Policy Attachments and Local Optimization in Composite-to-Composite Invocations."

You can confirm if a call went over local optimization in the Trace section of the Flow Trace page. The (Local Invocation) text for the reference and service of the invoking and invoked composites is displayed, as shown in Figure 3-1.

Figure 3-1 Local Optimization Details in the Trace Section of the Flow Trace Page

Description of Figure 3-1 follows
Description of "Figure 3-1 Local Optimization Details in the Trace Section of the Flow Trace Page"

For more information about the Flow Trace page, see Section 13.1, "Monitoring the Audit Trail and Process Flow of a BPEL Process Service Component."

3.7.2 Overriding or Forcing Local Optimization

Two configuration properties are provided for either overriding or forcing local optimization.

By default, Oracle SOA Suite prefers local optimization. However, you can override this behavior with the oracle.webservices.local.optimization binding property in the composite.xml file. When this property is set to false, local optimization is not performed and cross-composite calls are performed through SOAP and HTTP. Use this property where appropriate. For information about setting this property, see Section 7.6.2, "Policy Attachments and Local Optimization in Composite-to-Composite Invocations."

You can override the oracle.webservices.local.optimization property and force optimization to be performed by setting the oracle.soa.local.optimization.force property to true. Use this property in the following scenarios:

  • The server configuration is sufficiently complicated (for example, there are fire wall or proxy settings in an intranet), which may cause the co-location checks described in Section 3.7.1, "Condition Checks for Using Local Optimization" to not deliver the correct result.

  • You clearly understand the semantics of local optimization, the system setup qualifies for local optimization, and local optimization is absolutely preferred.

There can be other scenarios for forcing optimization that are not described in this section.

Note:

If oracle.webservices.local.optimization is set to false and oracle.soa.local.optimization.force is set to false, local optimization is not performed.

The oracle.soa.local.optimization.force property has a default value of false. When this property is set to true, Oracle SOA Suite skips the condition checks described in Section 3.7.1, "Condition Checks for Using Local Optimization," except for policy configuration checking, which is necessary to ensure and enforce the integrity of service invocations.

Another important note about this property is that Oracle SOA Suite always honors the setting of this property (if policy checks allow the optimization). However, if local invocation fails due to nonapplication faults or exceptions (that is, runtime errors mostly related to the direct Java invocation), the value of this setting is ignored for subsequent invocations on the configured endpoint and for all the valid endpoint addresses configured on the endpoint.

To enable the oracle.soa.local.optimization.force property:

  1. Add oracle.soa.local.optimization.force as a binding component level property in the reference section of the composite being invoked. For example, if composite comp_comp2 invokes comp_comp1, then define this property in the reference section of the composite.xml file of comp_comp2.

    <reference name="Service1"
    ui:wsdlLocation="http://localhost:8001/soa-infra/services/default/comp_
    comp1!1.0/BPELProcess1.wsdl">
    <interface.wsdl interface="http://xmlns.oracle.com/comp_comp/comp_
    comp1/BPELProcess1#wsdl.interface(BPELProcess1)"  
                                  callbackInterface="http://xmlns.oracle.com/comp_
    comp/comp_comp1/BPELProcess1#wsdl.interface(BPELProcess1Callback)"/>
    <binding.ws port="http://xmlns.oracle.com/comp_comp/comp_
    comp1/BPELProcess1#wsdl.endpoint(bpelprocess1_client_ep/BPELProcess1_pt)"
    location="http://localhost:8001/soa-infra/services/default/comp_
    comp1!1.0/bpelprocess1_client_ep?WSDL">
    <property name="oracle.webservices.local.optimization">false</property>
    <property name="oracle.soa.local.optimization.force">true</property>
    </binding.ws>
    

3.7.3 Local Optimization Logging

Oracle SOA Suite provides NOTIFICATION:1(INFO) level logging for every critical decision made for local optimization versus SOAP processing. For more details or debugging information, set the oracle.integration.platform.blocks.local and oracle.integration.platform.blocks.soap loggers at the TRACE:1(FINE) level in Oracle Enterprise Manager Fusion Middleware Control.

3.7.4 Local Optimization Calls Use Case

This local optimization calls use case describes the following:

  • How local optimization calls work in an environment in which composite A calls a co-located composite B on the same server, and composite B is unreachable (Table 3-2).

  • What happens when you create a load balancer address with a port value that is not the port on which the Oracle WebLogic Servers are listening (Table 3-3).

Table 3-2 Local Optimization Calls When a Composite is Unreachable

Scenario Description

What happens when a local optimization call fails?

A check of composite B is performed before trying a local optimization call.

If the check fails (composite B is unreachable), an exception is thrown in the SOA Infrastructure that is converted to a BPEL fault. The BPEL fault contains information about composite B being unreachable.

Is it possible to retry the co-located call?

After the basic check is performed, a local optimization call is tried. If that call fails, it is reinvoked over SOAP. However, the following conditions must be met for the reinvocation over SOAP to occur:

  • The oracle.soa.local.optimization.force WS-binding property must be set to true to force local optimization. This condition is provided for backward compatibility.

  • The exception must not be a business exception.

If a retry of the co-located call is possible (for example, the fault policy is set to retry on the composite or endpoint), is the call optimized again or does it attempt to leave the local container and access the load balancer?

If the call fails the first time you attempt to send it locally, the information is cached (that it failed locally).

For subsequent calls, the call is sent over SOAP (the local optimization call is not retried this time).


Table 3-3 Creating a Load Balancer Address with a Port Value That is Not the Port on which the Oracle WebLogic Servers are Listening

Scenario Description

If you want to create a load balancer address with a port value that is not the port on which the Oracle WebLogic Servers are listening, can you specify the server URL (in the SOA Infrastructure Common Properties page) and the frontend host/port (in the Oracle WebLogic Server HTTP tab) as the address of the load balancer?

Yes. The server URL or frontend host/port are more identifiers of the address for the local optimization rules than the actual addresses to which to send network requests.

Does local optimization not use the port to make a call (for example, composite A calling composite B over port 2011)?

Yes, the port is used only to make comparisons to see if the target is co-located, so as to make a local call.