2 Configuring a Non-Clustered Deployment

This section describes the tasks that you must perform to configure Oracle Service Bus for deployment in a non-clustered Oracle WebLogic Server domain. A non-clustered Oracle Service Bus deployment refers to one of the following Oracle Service Bus deployment topologies: Admin-only and Admin + managed server, as described in Chapter 1, "Oracle Service Bus Deployment Topology."

To set up and deploy Oracle Service Bus in a non-clustered configuration, complete the following steps:

2.1 Step 1. Configure a Database for the JMS Reporting Provider Data Store

Oracle Service Bus requires a database for the JMS Reporting Provider. The local copy of the Apache Derby database that is installed with Oracle WebLogic Server is not recommended for production use.

For information on configuring a database for the Oracle Service Bus JMS reporting provider, see the Oracle Fusion Middleware Installation Guide for Oracle Service Bus.

For a complete list of supported databases, see the "Oracle Fusion Middleware Supported System Configurations" at http://www.oracle.com/technology/software/products/ias/files/fusion_certification.html.


It is important to configure your database appropriately for production use. You must provide adequate space to log messages and follow best practices for administering your database.

2.2 Step 2. Prepare an Oracle Service Bus Domain

To prepare a Oracle Service Bus environment, complete the tasks described in the following sections:

2.2.1 Creating an Oracle Service Bus Domain Using the Oracle Fusion Middleware Configuration Wizard

For information on creating an Oracle Service Bus domain with the Oracle Fusion Middleware Configuration Wizard, see "Installing and Configuring Oracle Service Bus 11g" in the Oracle Fusion Middleware Installation Guide for Oracle Service Bus.

2.2.2 Configuring JMS Resources

In addition to configuring JMS file stores in the Oracle Fusion Middleware Configuration Wizard, proxy services and business services that use JMS require configuration of the following resources:

  • JMS connection factories. You must configure XA or non-XA JMS connection factories for all business services and proxy services implemented using JMS.

  • JMS queues/topics. Oracle Service Bus automatically configures JMS queues for proxy services that are implemented using JMS. You must configure JMS queues/topics for all business services using JMS and for any proxy services that are implemented using non- JMS.

If you want to concentrate all Oracle Service Bus JMS resources in a single JMS module, use the Oracle WebLogic Server Administration Console to create a new JMS module containing the destination to be used for the proxy services' endpoint.

For more information about configuring JMS resources, see "Methods for Configuring JMS Resources" in the Oracle Fusion Middleware Configuring and Managing JMS for Oracle WebLogic Server.

2.3 Step 3. Configure Oracle Service Bus Security

Oracle Service Bus leverages the security features of Oracle WebLogic Server to ensure message confidentiality and integrity (message-level security), secure connections between clients and Oracle WebLogic Server (transport-level security), and authentication and authorization (access control). For information on how to configure security for Oracle Service Bus, see "Security" in the Oracle Fusion Middleware Developer's Guide for Oracle Service Bus.


You must configure security separately for each Oracle Service Bus domain. Oracle Service Bus does not export or import security configurations.

2.4 Step 4. Deploy an Oracle Service Bus Configuration

Once you have configured your Oracle Service Bus domain, secured it, and added any JMS resources required for its services, you are ready to import the JAR file that contains your Oracle Service Bus configuration. After you have imported the configuration metadata, you can update environment-specific information for your domain.

The following steps describe the basic procedure for deploying the contents of configuration JAR file:

  1. Create a session in Oracle Service Bus.

  2. Import all or selected objects from a configuration JAR file.

  3. Update environment-specific information such as service endpoint URIs and directory names.

  4. Activate the Session.

You can perform these steps manually or programmatically:

In addition to service endpoint URIs, directory names, and security configuration, your Oracle Service Bus configuration may contain other settings that must be updated to operate correctly in the new environment. Items that commonly require update include the following:

  • Service references

    For information about service references, see "Viewing References to Resources" in the Oracle Fusion Middleware Administrator's Guide for Oracle Service Bus.

  • Routing destinations

    For information about routing configuration, see "Proxy Services: Message Flow" in the Oracle Fusion Middleware Administrator's Guide for Oracle Service Bus.

  • Load balancing settings

    For information about load balancing, see "Transport Configuration Page" in the Oracle Fusion Middleware Administrator's Guide for Oracle Service Bus.

Use the Oracle Service Bus Console to confirm and change your configuration, as necessary.

2.5 Step 5. Update Your Domain as Your Production Environment Changes

Production environments change over time and as application use increases. This section describes how to update your domain in response to common production environment change scenarios:

2.5.1 Changing a Business Service

Enterprise information services (EIS) are sometimes phased out, and new instances (possibly with new versions of EIS software, new hardware, and so on) are brought online. When this happens, Oracle Service Bus administrators need to gracefully transition to the new EIS instance by modifying any affected Oracle Service Bus business services.

This situation is similar to an EIS instance failure, but not as urgent. For a description of deployment considerations, see Section 5.2.2, "EIS Instance Failover." For information about using the Oracle Service Bus Console to change an endpoint URI for a business service, see "Transport Configuration Page" in the Oracle Fusion Middleware Administrator's Guide for Oracle Service Bus.

2.5.2 Installing a New Version of a Proxy Service

As your business requirements change, you may need to make changes to your proxy services. If the changes you need to make are backward compatible, you can dynamically make changes online using the Oracle Service Bus Console to create a new version of the proxy service. Changes are backward compatible if they meet one of the following criteria:

  • The interface of the changed object is unchanged.

  • Old and new clients will work with the interface.

If the changes you need to make are not backward compatible, there are two alternatives to consider that would enable you to make the changes online:

  • Create and deploy a new proxy service having a different name and URL from that of the earlier version. Clients upgrade by accessing the new proxy service. This enables you to run the old and new versions of a proxy service in parallel, and supports a gradual migration to the new proxy service.

  • Force backwards compatibility by changing the proxy service interface to support both the new interface and the old interface (for example, using XML schema choice) and perform different logic in the message flow based on the document received. Clients continue to access the proxy service by using its original URL.

Oracle Service Bus cluster domains have additional system administration requirements for deployment of proxy services that are not backward compatible. For more information, see Section 4.6.4, "Installing a New Version of a Proxy Service in a Cluster."

2.5.3 Online Configuration Updates

Oracle Service Bus allows you to dynamically change the configuration information for a system without the need to restart the server for changes to take affect.

You can change a resource, a project, or a number of resources (related or unrelated) using the Oracle Service Bus Console using the following procedure:

  1. Create a session. All changes to Oracle Service Bus configurations require a session. (Security-related changes are the exception.)

  2. Modify resources in the session.or import all or selected objects from a configuration JAR file.

  3. Update environment-specific information such as service endpoint URIs and directory names.

  4. Activate the session.

    The changes are consolidated and sent to all servers (administration and managed servers, if you are working in a cluster environment). These changes update the persisted configuration data and also cause other run-time tasks to be performed (such as, creating proxy services and JMS queues, compiling XQueries, and so on).

You can perform these steps manually or programmatically:

Figure 2-1 illustrates how the system behaves to process messages in the event that the configuration is updated while messages are being processed through the system. Table 2-1 describes the versions for the resources for the sample system illustrated in Figure 2-1.

Table 2-1 Initial and Updated Configuration for a Sample System

Resource Initial Version Updated Version

Proxy Service









Figure 2-1 Sample Online Update Scenario

Description of Figure 2-1 follows
Description of "Figure 2-1 Sample Online Update Scenario"

Note the following characteristics of the message processing illustrated in the preceding figure:

  • Message 1 is already in the system at t1 (the time the configuration is updated)

  • Message 1 completes processing by the original (pre-update) resources (X, Y, W)

  • Message 2 starts and completes processing with the new configuration (resources A, B, C)

Oracle Service Bus tries to execute messages with the version of the proxy service and artifacts available when the messages enters the proxy service.

This ensures that a message has a consistent view of the artifacts. If the message processor cannot guarantee this behavior for a message, it will reject it rather than process it incorrectly. If you want the system to retry rejected messages, use a JMS proxy service with retries. Best Practices for Successful Online Configuration Updates

This section describes best practices to follow and limitations to be aware of when you update a configuration in a running Oracle Service Bus system.

  • If you are concerned about message rejection by Oracle Service Bus, use the JMS transport protocol with retries. In this case, any messages that are rejected because the system cannot guarantee their processing by compatible resources will be retried.

  • Security-related configuration updates must be performed first, then update the Oracle Service Bus resources in your system. To learn about updating security resources, see "Overview of Security Management" in Oracle Fusion Middleware Securing Oracle WebLogic Server.

  • Updates must be compatible with existing clients using the system. See Section 2.5.2, "Installing a New Version of a Proxy Service."

  • If you are updating the configuration to a cluster, it is possible that the updates are done at different times on different managed servers. Consequently, it is possible that messages are processed by different versions of a proxy service, depending on which managed server gets the message to process. This is dependent on load balancing across managed servers.

  • During online deployment, Oracle Service Bus checks whether the correct versions of referenced resources are used for message processing. If this is temporarily not true, an error is returned. However, if the interface artifact of an invoked service changes (for example: MFL, WSDL), the invoking proxy service may not return an error although it temporarily sees a version of the artifact that does not correlate with the proxy service version.