Replicating data across application servers in a cluster

Overview

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.

Determine if you are using a multi-broker replication domain. If we 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.

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.

If we select the option...

Configure HTTP memory-to-memory replication

...when creating a cluster, the replication domain is automatically created for you.

Similarly if, instead of WAS01Network , the cell name is simply WAS1, you have to pad the high level qualifier with the first three characters of the string DRSSTREAM. The high level qualifier then becomes WAS1DRS.

Enable data replication among the application servers in a cluster

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

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

The replication domain 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 | replication_domain_name

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.

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 we 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, we might need to set the maximum thread pool size to a value that is greater than 100.

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 we 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 console, and click Regenerate encryption key to regenerate the key. After the key is regenerated, you must restart all of the application servers configured as part of the replication domain. Periodically regenerating the key improves data security.