bea.com | products | dev2dev | support | askBEA
 Download Docs   Site Map   Glossary 
Search

Deploying Solutions

 Previous Next Contents Index View as PDF  

Understanding WebLogic Integration High Availability

A clustered WebLogic Integration application provides scalability and high availability. A highly available deployment has recovery provisions in the event of hardware or network failures, and provides for the transfer of control to a backup component when a failure occurs.

The following sections describe clustering and high availability for a WebLogic Integration deployment:

 


About WebLogic Integration High Availability

For a cluster to provide high availability, it must be able to recover from service failures. WebLogic Server supports failover for replicated HTTP session states, clustered objects, and services pinned to servers in a clustered environment . For information about how WebLogic Server handles such failover scenarios, see Communications in a Cluster in Using WebLogic Server Clusters, which is available at the following URL:

http://download.oracle.com/docs/cd/E13222_01/wls/docs70/cluster/index.html 

Recommended Hardware and Software

The basic components of a highly available WebLogic Integration environment include the following:

A discussion of how to plan the network topology of your clustered system is beyond the scope of this section. For information about how to fully utilize load balancing and failover features for your Web application by organizing one or more WebLogic Server clusters in relation to load balancers, firewalls, and Web servers, see Cluster Architectures in Using WebLogic Server Clusters, which is available at the following URL:

 http://download.oracle.com/docs/cd/E13222_01/wls/docs70/cluster/planning.html 

What to Expect from WebLogic Integration Recovery

A highly available deployment has recovery provisions in the event of system failures. You can configure WebLogic Integration for automatic restart or manual migration:

Note: High availability is not supported for WebLogic Integration applications that are based on the XOCP business protocol; such applications are not recoverable.

When you configure WebLogic Integration appropriately, you can expect the following behavior from your deployment:

 


Configuring WebLogic Integration for Automatic Restart

Whether WebLogic Integration is deployed in a clustered environment or a nonclustered environment, you can configure your system to automatically restart servers that have shut down because of a system crash, hardware reboot, server failure, and so on.

Note: The procedures in this section address a clustered environment, but you can follow the same procedure to configure a nonclustered environment, that is, one in which you deploy an administration server and a managed server.

Node Manager

The procedures in this section describe how to configure your system to start a managed server when the Node Manager is running on the machine on which the managed server is located. The Node Manager is a Java program provided with WebLogic Server that enables you to perform the following tasks for managed servers:

For information about the Node Manager, see Managing Server Availability with Node Manager in Creating and Configuring WebLogic Server Domains, which is available at the following URL:

 http://download.oracle.com/docs/cd/E13222_01/wls/docs70/admin_domain/index.html

Complete the following procedures to configure your WebLogic Integration cluster for automatic restart:

Step 1. Configure Managed Servers for Remote Start

You must first configure each managed server in your cluster so that it can be started from a remote server.

To configure managed servers for remote start, complete the following steps:

  1. In the WebLogic Server Administration Console navigation tree, select the managed server for which you want to configure automatic start.

  2. Select the Configuration tab and then the Remote Start tab.

  3. Enter information in the fields shown on the Remote Start tab. The information required is specific to the remote server. The fields on this tab are described in Server—>Configuration—>Remote Start in the WebLogic Server Adminstration Console Online Help, which is available at the following URL:
    http://download.oracle.com/docs/cd/E13222_01/wls/docs70/domain_server_config_server-start.html 

Step 2. Configure SSL for Your Administration Server

Because the administration server communicates with the Node Manager using SSL, you must configure SSL for your administration server. Complete the following steps:

  1. Add the following line to the administration server startWeblogic command file:
    -Dweblogic.security.SSL.trustedCAKeyStore=WL_HOME\lib\cacerts 

    In the previous line, WL_HOME represents the directory where WebLogic Server is installed. For example, if you installed WebLogic Platform in the default directory, WL_HOME is C:\bea70\weblogic700\server.

  2. Copy the democert.pem, demokey.pem and ca.pem files from BEA_HOME\weblogic700\common\templates\domains\wls.jar to the root directory for your domain.

  3. In the WebLogic Server Administration Console navigation tree, select the administration server.

  4. Select the Connections tab and then the SSL tab.

  5. Enter information in fields in the SSL tab as described in Server—>Connections—>SSL in the WebLogic Server Adminstration Console Online Help, which is available at the following URL:
    http://download.oracle.com/docs/cd/E13222_01/wls/docs70/ConsoleHelp/domain_server_connections_ssl.html 

    The democert.pem, demokey.pem and ca.pem files that you copied to the root directory of your domain in step 2 are sample files provided to get you started. You can use them in the following fields when you configure SSL in the Administration Console: Server Certificate File Name, Server Key File Name, Trusted CA File Name.

Step 3. Configure the Node Manager

To configure the Node Manager for a managed server, you must use the WebLogic Server Administration Console to create a machine, specify attributes for the Node Manager on that machine, and deploy the managed server that you configured for remote start on that machine. Specifically, you must complete the following steps:

  1. In the Administration Console navigation tree, select Machines.

    The Machines table is displayed in the right pane, showing all the machines defined in the domain.

  2. Click Configure a New Machine (or, if you are configuring a UNIX machine, click Configure a New Unix Machine.

    A dialog box is displayed in the right pane, showing the tabs associated with configuring a new machine.

  3. Enter a name for the new machine in the Name attribute field and click Create to create a machine instance with the name you specified.

  4. On the Node Manager tab, define Node Manager connection and authentication attributes—the address and port on which the Node Manager listens for connections. The default values for address:port are localhost:5555. Click Apply to implement your changes.

  5. On the Servers tab, identify the managed server to reside on this machine (that is, a managed server that you configured for remote start in Step 1. Configure Managed Servers for Remote Start).

    You can select an existing server to assign to this machine by selecting the server name in the Available column, and click the appropriate arrow to move the server to the Chosen column.

  6. Click Apply to implement your changes.

    The new machine entry now specifies the attributes required for two purposes: to connect to the Node Manager process running on the machine; and to identify which instances of WebLogic Server reside on the machine.

Step 4. Configure Self-Health Monitoring

This step describes how to configure the frequency of your managed server's automated health checks, and the frequency with which the Node Manager checks the servers's health. You can also specify whether the Node Manager automatically stops and restarts the server if the server reaches a failed health state.

Complete the following procedure for each managed server:

  1. In the WebLogic Server Administration Console navigation tree, select the managed server for which you configured automatic start in Step 1. Configure Managed Servers for Remote Start.

  2. Select the Configuration tab and then the Health Monitoring tab.

  3. Specify the following information:

Step 5. Start the Node Manager

You can start the Node Manager manually, by running the java command from an operating system prompt, or automatically, by running a script.

Syntax for the Start Node Manager Command

The java command syntax for starting the Node Manager is as follows:

java [java_property=value ...] -D[nodemanager_property=value]
-D[server_property=value] weblogic.nodemanager.NodeManager

Caution: You must start the Node Manager from the same directory in which you start the managed server manually.

In the preceding java command line:

Table 4-1 Values for nodemanager_property Command-Line Argument  

Node Manager Property

Description

Default

weblogic.nodemanager.

certificateFile

Specifies the path to the certificate file used for SSL authentication.

./config/democert.pem

weblogic.nodemanager.

javaHome

Specifies the Java home directory used by the Node Manager to start managed servers on this machine.

none

weblogic.nodemanager.

keyFile

The path to the private key file to be used for SSL communication with the Administration Server.

./config/demokey.pem

weblogic.nodemanager.

keyPassword

The password used to access the encrypted private key in the key file.

password

weblogic.ListenAddress

The address at which the Node Manager listens for connection requests. This argument deprecates weblogic.nodemanager.listenAddress.

localhost

weblogic.ListenPort

The number of the TCP port on which the Node Manager listens for connection requests. This argument deprecates weblogic.nodemanager.listenPort.

5555

weblogic.nodemanager.

nativeVersionEnabled

For UNIX systems other than Solaris or HP-UX, set this property to false to run the Node Manager in non-native mode.

true

weblogic.nodemanager.

reverseDnsEnabled

Specifies whether entries in the trusted hosts file may contain DNS names (instead of IP addresses).

false

weblogic.nodemanager.

savedLogsDirectory

Specifies the path for the directory in which the Node Manager stores log files. The Node Manager creates a subdirectory in the savedLogsDirectory named NodeManagerLogs.

./NodeManagerLogs

weblogic.nodemanager.

sslHostNameVerificationEnabled

Determines whether or not the Node Manager performs host name verification.

false

weblogic.nodemanager.

startTemplate

For UNIX systems only, this property specifies the path of a script file used to start managed servers.

./nodemanager.sh

weblogic.nodemanager.

trustedHosts

Specifies the path to the trusted hosts file used by the Node Manager.

./nodemanager.hosts

weblogic.nodemanager.

weblogicHome

Specifies the root directory of the WebLogic Server installation. This directory name is used as the default value of -Dweblogic.RootDirectory for servers that do not have a configured root directory.

n/a


 

Table 4-2 Values for server_property Command Line Argument  

Server Property

Description

Default

bea.home

Specifies the BEA home directory used by managed servers on the current machine.

Specifies the BEA home directory used by managed servers on the current machine.

java.security.policy

Specifies the path to the security policy file that Managed Servers use.

none

weblogic.security.SSL.trustedCAKeyStore

Specifies the path to the KeyStore in which certificates of trusted authorities are contained.

java.security.keyStore


 

The information in the preceding tables, along with details about configuring and running the Node Manager, are available in "Starting Node Manager" in Managed Server Availability with Node Manager in Creating and Configuring WebLogic Server Domains, which is available at the following URL:

http://download.oracle.com/docs/cd/E13222_01/wls/docs70/admin_domain/index.html

Starting the Node Manager When a Machine Is Booted

In a production environment, the Node Manager should start automatically when a machine is booted. You can ensure that it does so by creating a startup script for UNIX systems, or by setting up the Node Manager as a Windows service for Windows systems. For information about how to perform these tasks, see "Starting Node Manager" in Managed Server Availability with Node Manager in Creating and Configuring WebLogic Server Domains, which is available at the following URL:

http://download.oracle.com/docs/cd/E13222_01/wls/docs70/admin_domain/index.html

 


Configuring WebLogic Integration for Migration from Failed to Healthy Node

When a managed server fails and is deemed not to be usable, you can migrate the services from the failed managed server to a healthy node in the cluster. Complete the following procedures to configure your system for a manual migration:

For instructions about how to perform the migration when a node in your cluster fails, see Manual Migration of WebLogic Integration from Failed to Healthy Node.

Step 1. Configure Your Cluster

Make sure that your WebLogic Integration resources are distributed appropriately and your clustered domain is configured as described in Configuring a Clustered Deployment.

Step 2. Configure Migratable Targets for JMS Servers and JTA Recovery Service

To achieve high availability for your WebLogic Integration deployment, you must configure JTA and JMS servers for failover; the process involves configuring migratable targets for JMS servers and the JTA Recovery Service. You can do this by using the WebLogic Server Administration Console or by editing your config.xml file appropriately.

Complete the following procedure:

  1. Create a migratable target for a cluster:

    1. Select the Servers node in the Administration Console navigation tree.

    2. Select the name of a server that resides in the cluster you want to configure.

    3. Choose Control—>Migration Config. in the main console window. A list of servers for which you can select constrained candidate servers for the migratable target is displayed.

    4. In the Available column, select all of the servers capable of hosting migratable services in the cluster. Use the arrow to move these servers to the Chosen column.

      Note: Typically, all the managed servers in the cluster are selected as potential hosts for migratable services.

    5. Click Apply to make your changes to the migratable target.

      The list of servers that you specified is configured in the MigratableTarget element. See the ConstrainedCandidateServers attribute for the MigratableTarget elements in Listing  4-1. (A domain configuration contains one MigratableTarget element for each managed server.)

  2. Configure JTA failover:

    1. Make sure that all servers in your cluster have access to the transaction log files for a server. In other words, JTA log files should reside on a shared file system.

    2. Select the Servers node in the Administration Console navigation tree.

    3. Select the name of a server that resides in the cluster you want to configure.

    4. Choose Control—>JTA Migration Config. to create a migratable target for JTA services. A list of servers that you can select as constrained candidate servers for the migratable target is displayed.

    5. In the Available column, select all the servers capable of hosting migratable services in the cluster. Use the arrow to move these servers to the Chosen column.

    6. Click Apply to make your changes to the new migratable target.

Note: JTA and JMS service migration is a two-step process. It is recommended that when you migrate WebLogic Integration resources, you first migrate JTA services, and then migrate JMS services. For more information, see Manual Migration of WebLogic Integration from Failed to Healthy Node.

For more information about configuring migratable targets, see:

Note: Online Help is accessible from the Administration Console, and also at the following URL:

http://download.oracle.com/docs/cd/E13222_01/wls/docs70/ConsoleHelp/index.html

The following listing, an excerpt from a sample config.xml file, shows how to configure migratable targets. It demonstrates the configuration of migratable targets for both JMS servers and the JTA Recovery Service in a clustered WebLogic Integration environment. In this example configuration, the cluster contains two managed servers: MyServer-1 and MyServer-2.

Listing 4-1 Configuration for Migratable Targets

<JMSServer Name="WLCJMSServer-MyServer-1" 
       Store="JMSWLCStore-MyServer-2" Targets="MyServer-1 (migratable)"
       TemporaryTemplate="TemporaryTemplate">
       <JMSQueue JNDIName="com.bea.b2b.OutboundQueue-MyServer-1"
               Name="B2bOutboundQueue-MyServer-2"/>
       <JMSQueue ...
:
</JMSServer>
<JMSServer Name="WLCJMSServer-MyServer-2" 
       Store="JMSWLCStore-MyServer-2" Targets="MyServer-2 (migratable)"
       TemporaryTemplate="TemporaryTemplate">
       <JMSQueue JNDIName="com.bea.b2b.OutboundQueue-MyServer-2"
               Name="B2bOutboundQueue-MyServer-2"/>
       <JMSQueue ...
:
</JMSServer>
...
<MigratableTarget Cluster="MyCluster"
       ConstrainedCandidateServers="MyServer-1,MyServer-2"
       Name="MyServer-1 (migratable)"
       Notes="This is a system generated default migratable target for a server.
       Do not delete manually."
       UserPreferredServer="MyServer-1"/>
<MigratableTarget Cluster="MyCluster"
       ConstrainedCandidateServers="MyServer-1,MyServer-2"
       Name="MyServer-2 (migratable)"
       Notes="This is a system generated default migratable target for a server.
       Do not delete manually."
       UserPreferredServer="MyServer-2"/>

...
<Server Cluster="MyCluster" JTARecoveryService="MyServer-1"
       ListenAddress="localhost" ListenPort="7901" Name="MyServer-1"
       ServerVersion="7.0.0.0">
       <COM Name="MyServer-1"/><ExecuteQueue Name="default" ThreadCount="15"/>
       <IIOP Name="MyServer-1"/>
       <JTAMigratableTarget Cluster="MyCluster"
       ConstrainedCandidateServers="MyServer-1,MyServer-2 Name="MyServer-1"
       UserPreferredServer="MyServer-1"/>
</Server>
<Server Cluster="MyCluster" JTARecoveryService="MyServer-2"
       ListenAddress="localhost" ListenPort="7901" Name="MyServer-2"
       ServerVersion="7.0.0.0">
       <COM Name="MyServer-2"/><ExecuteQueue Name="default" ThreadCount="15"/>
       <IIOP Name="MyServer-2"/>
       <JTAMigratableTarget Cluster="MyCluster"
       ConstrainedCandidateServers="MyServer-1,MyServer-2 Name="MyServer-2"
       UserPreferredServer="MyServer-2"/>
</Server>

Note the following XML elements in the preceding listing:

 


Failover and Recovery

This section describes how WebLogic Integration failover and recovery works in specific scenarios. It contains the following topics:

Backup and Failover for an Administration Server

To provide for quick failover in case of an administration server crash or other failure, you may wish to create another instance of the administration server on a different machine that is ready to use if the original server fails.

Because the administration server uses the configuration file (config.xml), security files, and application files to administer the domain, we recommend that you at least keep an archived copy of these files, so that in case of a failure of the administration server you can safely restart the administration server on another machine without interrupting the functioning of the managed servers.

When the administration server for a cluster crashes, the managed servers continue serving requests. However, you cannot change configuration for the cluster or perform new deployment activities until the administration server is recovered. For example, if the administration server for a cluster is not running, you cannot add new nodes to the cluster, deploy new application views, or undeploy the connection factories associated with those application views.

The WebLogic Integration B2B Console is deployed only on the administration server. It is never deployed on the managed servers in a cluster. Therefore B2B integration management and monitoring functions are unavailable when the administration server is down. For example, you cannot add, delete, or modify trading partner information until the administration server is recovered.

If the managed servers are running but the administration server is stopped, you can recover management of the domain without the need to stop and restart the managed servers.

For instructions to restart your administration server when managed servers are running, see Starting and Stopping WebLogic Servers in the BEA WebLogic Server Administration Guide, which is available at the following URL:

 http://download.oracle.com/docs/cd/E13222_01/wls/docs70/adminguide/startstop.html 

Manual Migration of WebLogic Integration from Failed to Healthy Node

This section describes a controlled fail over. That is, source and destination servers are not serving any requests when you migrate services from a failed node to a healthy node in your cluster.

Before attempting to migrate WebLogic Integration from a failed node to a healthy node:

Note: JTA and JMS service migration is a two-step process. When you migrate WebLogic Integration resources, you should first migrate JTA services, and then migrate JMS services.

You can migrate WebLogic Integration using one of the following methods:

Using the weblogic.Admin Command-Line Utility

Use the following command line (weblogic.Admin with the MIGRATE command) to migrate a JMS service or a JTA service to a targeted server within the cluster:

java weblogic.Admin [-url http://hostname:port]
[-username username]
[-password password]
MIGRATE -jta -migratabletarget (migratabletarget_name|servername)
-destination servername [-sourcedown] [-destinationdown]

In the previous command line:

For more information about the weblogic.Admin command-line tool, see WebLogic Server Command-Line Interface Reference in BEA WebLogic Server Administration Guide, which is available at the following URL:

 http://download.oracle.com/docs/cd/E13222_01/wls/docs70/adminguide/cli.html

Using the WebLogic Server Administration Console

As an alternative to the weblogic.Admin command-line tool, you can use the WebLogic Server Administration Console to migrate a JTS service or a JMS service to a targeted server within the cluster:

  1. Select the Servers node  in the Administration Console navigation tree.

  2. Select the name of a server in your cluster.

  3. Select the Migrate tab appropriate for the services you are migrating. Note that JTA and JMS service migration is a two-step process. When you migrate WebLogic Integration resources, you should first migrate JTA services, and then migrate JMS services. The Migrate tab you select is determined by the type of services you are migrating:

    Warning: Make sure that your source server is down. Failover for WebLogic Integration is supported only when the source server is down.

  4. Select a server from the Destination Server migratable target list.

  5. Click Migrate.

    Services running on the server you selected in step 2 are migrated to the destination server you selected.

    The services that are migrated depend on the selection you made in step 3. That is, if you selected the JTA Migrate tab, only the JTA service is migrated to the selected server. If you selected the Migrate tab, only JMS services are migrated to the selected server.

For more information about how to use the Administration Console to migrate JMS or JTA services to a targeted server within the cluster, see Migrating Services to a New Server in "Servers" in WebLogic Server Adminstration Console Online Help.

Recovering a Database

WebLogic Integration does not attempt to recover a crashed database. In the event of a database crash or database shutdown, it may be necessary to restart WebLogic Integration.

For example, if WebLogic Integration and the database are running on the same machine and the machine is unplugged, you should take steps to recover the database before attempting to recover WebLogic Integration.

Recovering JMS Stores

There is no migration of JMS stores after a server crash. WebLogic Integration uses JDBC for JMS stores. That is, it uses JDBC to access JMS JDBC Stores, which can be on another server. WebLogic Integration uses the same database for all nodes in a cluster. If you plan to use separate database instances for each node in your cluster, you should take advantage of any high availability or failover solutions offered by your database vendor. For example, you could use warm database standby in the event of database crash.

 

Back to Top Previous Next