Is there a way to load balance JNDI lookups in EMS servers by specifying the provider URL as two separate URLs separated by a pipe (ex: tibjmsnaming://localhost:7222|tibjmsnaming://localhost:7223)?

Is there a way to load balance JNDI lookups in EMS servers by specifying the provider URL as two separate URLs separated by a pipe (ex: tibjmsnaming://localhost:7222|tibjmsnaming://localhost:7223)?

book

Article ID: KB0085356

calendar_today

Updated On:

Products Versions
TIBCO Enterprise Message Service -
Not Applicable -

Description

Resolution:
Description:
============

In high volume and low latency environments, especially when applications frequently create and close connections, the load on the EMS server used as a JNDI provider as well may be quite high. This Solution covers the possibility of load balancing the JNDI lookups across multiple EMS servers.

Environment:
===========

All O/S and H/W
TIBCO Enterprise Message Service – All versions

Resolution:
==========

There is no way to load balance JNDI lookup with EMS. Once the JNDI lookup is done and the factory name is found, you can put a load balanced URL on that factory and the load balancing metric for it so that the actual data connections to the EMS servers will be load balanced.

As there is no way to put a metric for JNDI lookup, the load balanced URL as the provider URL cannot be used for JNDI lookup. There are no benefits in load balancing the JNDI provider because JNDI lookup is a very lightweight process and the connections made to the JNDI server are shortlived - the connection to the JNDI server is destroyed after the lookup is done and the client is connected to the actual EMS server.

If your environment has a lot of applications and they quite frequently do a JNDI lookup you can use a completely different EMS server for JNDI lookup (exclusive of the actual EMS servers that are processing data). If you think that only one JNDI server still is not able to handle a load you can have multiple independent EMS servers as JNDI providers, each having exactly the same factories.conf. Make sure that a subset of your applications use one JNDI EMS server for JNDI lookup.

Issue/Introduction

Is there a way to load balance JNDI lookups in EMS servers by specifying the provider URL as two separate URLs separated by a pipe (ex: tibjmsnaming://localhost:7222|tibjmsnaming://localhost:7223)?