Replicating data across application servers in a cluster

Use this task to configure a data replication domain to transfer data, objects, or events for session manager, dynamic cache, or stateful session beans. Data replication domains use the data replication service (DRS), which is an internal component that performs replication services, including replicating data, objects, and events among application servers.

Before you begin

Determine if you are using a multi-broker replication domain. If you configured a data replication domain with a previous version of the product, you might be using a multi-broker replication domain. Any replication domains that you create with the current version of the product are data replication domains. You should migrate any multi-broker replication domains to data replication domains.

About this task

Use this task to configure replication, a service that transfers data, objects, or events among the application servers in a cluster. Use replication to prevent loss of session data with session manager, to further improve the performance of the dynamic cache service, and to provide failover in stateful session beans.
Avoid trouble: If you select the Configure HTTP memory-to-memory replication option when you create a cluster, the replication domain is automatically created for you.

Complete the following steps to enable data replication among the application servers in a cluster.

Procedure

  1. Create a replication domain.
    Use one of the following methods to create a replication domain:
    • Create a replication domain manually.

      To create a replication domain manually without creating a new cluster, click Environment > Replication domains > New in the administrative console.

      On this page you can specify the properties for the replication domain, including timeout, encryption, and number of replicas.

    • Create a replication domain when you create a cluster.

      To create a replication domain when you create a cluster, click Servers > Clusters > Clusters > New in the administrative console. Then click Configure HTTP memory-to-memory replication. The replication domain that is created has the same name as the cluster and has the default settings for a replication domain. The default settings for a replication domain are to create a single replica of each piece of data and to have encryption disabled. To modify the replication domain properties, click Environment > Replication domains > New > replication_domain_name in the administrative console.

  2. Configure the consumers, or the components that use the replication domains.
    Dynamic cache, session manager, and stateful session beans are the three types of replication domain consumers. Each type of consumer must be configured with a different replication domain. For example, session manager uses one replication domain and dynamic cache uses a different replication domain. However, use one replication domain if you are configuring HTTP session memory-to-memory replication and stateful session bean replication. Using one replication domain in this case ensures that the backup state information of HTTP sessions and stateful session beans are on the same application servers.
  3. [AIX Solaris HP-UX Linux Windows][IBM i]Determine whether your configuration requires additional thread resources.

    The replication service uses threads that are obtained from the DRS thread pool for various tasks, including processing messages. Previously, the replication service obtained threads from the default thread pool. When the application server starts up, the default maximum thread pool size for the DRS thread pool is 100 threads. However, this thread pool size might not be sufficient to enable the replication service to obtain enough threads from the pool to process all of the incoming replication messages. The number of incoming messages is influenced by the number of application servers in the domain and the number of replication domain consumers on each application server. The number of messages to be processed increases as the number of application servers in the domain increases, the number of replication consumers increases, or both.

    Persistent data that is not being replicated to the application servers when the application server starts up might indicate that you need to increase the setting for the maximum thread pool size. The maximum size of the DRS thread pool set to 100 is usually sufficient. However, in very large topologies, you might need to set the maximum thread pool size to a value that is greater than 100.
    Table 1. DRS thread pool custom properties. You can set the properties of the DRS thread pool through the following Java virtual machine custom properties.
    Property name Default value
    DRS_THREADPOOL_MINSIZE 40
    DRS_THREADPOOL_MAXSIZE 100
    DRS_THREADPOOL_ISGROWABLE false
    For more information, see the documentation about Java virtual machine custom properties.

Results

Data is replicating among the application servers in a configured replication domain.

What to do next

If you select DES or 3DES as the encryption type for a replication domain, an encryption key is used for the encryption of messages. At regular intervals, for example once a month, you should go to the Environment > Replication domains > New page in the administrative console, and click Regenerate encryption key to regenerate the key. After the key is regenerated, you must restart all of the application servers that are configured as part of the replication domain. Periodically regenerating the key improves data security.