Oracle® Fusion Middleware Deployment Guide for Oracle Service Bus 11g Release 1 (11.1.1.5.0) Part Number E15022-03 |
|
|
View PDF |
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:
Section 2.1, "Step 1. Configure a Database for the JMS Reporting Provider Data Store"
Section 2.3, "Step 3. Configure Oracle Service Bus Security"
Section 2.4, "Step 4. Deploy an Oracle Service Bus Configuration"
Section 2.5, "Step 5. Update Your Domain as Your Production Environment Changes"
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 Installation Guide.
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
.
Note:
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.To prepare a Oracle Service Bus environment, complete the tasks described in the following sections:
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 Installation Guide.
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.
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.
Note:
You must configure security separately for each Oracle Service Bus domain. Oracle Service Bus does not export or import security configurations.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:
Create a session in Oracle Service Bus.
Import all or selected objects from a configuration JAR file.
Update environment-specific information such as service endpoint URIs and directory names.
Activate the Session.
You can perform these steps manually or programmatically:
To import and update a configuration manually, use the Oracle Service Bus Administration Console as described under the following topics in the Oracle Fusion Middleware Administrator's Guide for Oracle Service Bus:
To import and update a configuration programmatically, use the WebLogic Scripting Tool (WLST) and the Oracle Service Bus deploymentMBean
as described in Appendix A, "Using the Deployment APIs."
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 Administration Console to confirm and change your configuration, as necessary.
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:
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 Administration 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.
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 Administration 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."
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 Administration Console using the following procedure:
Create a session. All changes to Oracle Service Bus configurations require a session. (Security-related changes are the exception.)
Modify resources in the session.or import all or selected objects from a configuration JAR file.
Update environment-specific information such as service endpoint URIs and directory names.
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:
To import and update a configuration manually, use the Oracle Service Bus Administration Console as described in the following topics in the Oracle Fusion Middleware Administrator's Guide for Oracle Service Bus:
To import and update a configuration programmatically, use the WebLogic Scripting Tool (WLST) and the Oracle Service Bus deploymentMBean
as described in Appendix A, "Using the Deployment APIs."
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 |
X |
A |
MFL |
Y |
B |
XQuery |
W |
C |
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.
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.