Like we configure TIBCO Integration in FT mode we can configure the EMS as well to avoid application failure and to keep the systems running smoothly. the working principle will be the same as the integrations. When the primary server is down secondary will take over the control.

Now let’s discuss on how to set up the EMS in Fault-Tolerant mode.

Step 1. Creating the mount points in SYNC

This is the most important step to configure EMS in FT mode. We need to make the file system in SYNC with the primary and secondary server. i.e both primary and secondary system should be using the same set of EMS directories and configuration files. This should be taken care of by the system admin team

Step 2. Configuring tibemsd.conf file

tibemsd.conf is the heart of EMS instance which have the details about the listening URLs, Server name, reference to other configurations file such as users.conf, topics.conf etc. So basically if we need to run two EMS instance we need two tibemsd.conf files.

We create two copies of this configuration file and name them as tibemsd.conf and tibemsd-1.conf respectively.

In the first configuration file (tibemsd.conf) considering it as the primary server, need to make the following changes:

Listen port should be set as tcp://<EMS_PRIMARY>:7222
In Fault-Tolerant setup section, for ft_active, specify the port of other/secondary EMS Server i.e. specify tcp://<EMS_BACKUP>:7222

In second configuration file (tibemsd-1.conf) do the following configuration changes.

Set Listen Port as tcp://<EMS_BACKUP>:7222
In Fault-Tolerant section, for ft_active, specify tcp://<EMS_PRIMARY>:7222 (ie. Listen port of the primary EM Server)

Step 2: Configure Fault Tolerant Factory

The second step in configuring EM Servers in FT mode is to make changes in the file factories.conf.

Configure factories for both queues and topics with the below changes in the configuration file:

[FTTopicConnectionFactory]
type = topic
url = tcp://<EMS_PRIMARY>:7222,tcp://<EMS_BACKUP>:7222

[FTQueueConnectionFactory]
type = queue
url = tcp://<EMS_PRIMARY>:7222,tcp://<EMS_BACKUP>:7222

 Step 3: Run Primary and Secondary EMS Server

Once we are done with the configuration of our FT Pair of EMS Servers, we need to start the two servers

Run the primary EMS Server by the following command:

tibemsd.exe -config C:\tibco\EMSConfig\tibco\cfgmgmt\ems\data\tibemsd.conf

Now run the following command to start the secondary server:

tibemsd.exe -config C:\tibco\EMSConfig\tibco\cfgmgmt\ems\data\tibemsd-1.conf

Step 4: JMS Connection URL in BusinessWorks

We need to specify the connection URL in the below format in BW.

tcp://<EMS_PRIMARY>:7222,tcp://<EMS_BACKUP>:7222.

Other parameters for FT configuration in tibemsd.conf file

ft_active

ft_active = URL

Specifies the URL of the active server. If this server can connect to the active server, it will act as a backup server.
If this server cannot connect to the active server, it will become the active server.

ft_heartbeat

ft_heartbeat = seconds

Specifies the interval (in seconds) the active server is to send a heartbeat signal to the backup server to indicate that it is still operating. The default is 3 seconds.

ft_activation

ft_activation = seconds

Activation interval (maximum length of time between heartbeat signals) which indicates that active server has failed. Set in seconds: default is 10.

This interval should be set to at least twice the heartbeat interval.
For example: ft_activation = 60

Note: The ft_activation parameter is only used by the backup server after a fault-tolerant switchover.

The active server uses the server_timeout_server_connection to detect a failed server.

ft_reconnect_timeout

ft_reconnect_timeout = seconds

The amount of time (in seconds) that a backup server waits for clients to reconnect (after it assumes the role of the primary server in a failover situation).

If a client does not reconnect within this time period, the server removes its state from the shared state files.

The ft_reconnect_timeout time starts once the server has fully recovered the shared state, so this value does not account for the time it takes to recover the store files.

Please note that The EMS client only considers the alternate servers when creating the connection. This is the same case for load-balanced EMS servers. The client will only consider EMS server load at the time of connection. Once connected, the client will not switch to the other server even if the other server is at zero loads. So if you check the connection, only one server has the connection entries.

That’s all folks, we have done with the FT mode configuration for EMS.

Leave a Reply

Your email address will not be published. Required fields are marked *