Java App Server and CMS On Different Machines, Edit “hosts” File Now

If you have deployed your Business Objects XI Central Management Server(s) and your Java Web Application Servers are on the same single machine then this article does not apply to you. If your Java Web Application Server ever needs to run applications (such as InfoView or CMC) that will connect to any CMS that is not running on the Java Web Application Server’s machine then you and your system will benefit from reading this article.

The Java Implementation of DNS Look-up

I’ve been told by a few very knowledgeable folks that either Java as a technology or Business Objects Enterprise’s use of Java results in a situation where if the CMS is not hosted on the same machine as the the Java Application Server then the look-up of the IP address of the CMS machine(s) is very inefficient and is the cause of much lag in the case of such actions as logging in. For example, an InfoView log in action may take up to 10 seconds extra due to iterative inefficient resolution of the CMS machine’s IP address from the host name.

Building a Short-Cut

One way to put an end to this inefficiency is to place hard coded entries in the hosts file of the machine hosting the Java Application Server. If your server is configured to first check the hosts file before hitting the network’s DNS server then you will see a huge boost in the performance of log in actions. This is simply due to the fact that the poor implementation of DNS look-up that BO’s Java call is doing is bypassed by the hosts file entry for that host name. I have seen log in actions for InfoView and CMC reduced from 8 seconds to less than 1 second by this change alone.

Making the Change

This is one of those changes that won’t cost you much to test, but there is a price. The truth is that there is a very big issue with hard-coding a server name and IP address in your hosts file. On the very rare occasion that your server is assigned a different IP address your application will be broken until you update the hosts file accordingly.

To make the change you need only locate the machine’s hosts file. On Windows this is usually in “\WINDOWS\system32\drivers\etc” and on Linux it will be in the “/etc/” directory. Once you locate the file I suggest creating a backup of it first. New lines are added to the file merely by adding first the IP address, then at least one space, then the fully-qualified domain name, and optionally you can add at least one more space and put in the simple short name of the machine. For example: myserver

I am not an expert on editing hosts files, but I can tell you that it is worth trying out on your system in you are running at least one CMS on a machine different from the one that is running your Java Web Application Server. Give it a try and report your results by leaving a comment please. To the best of my knowledge you don't even need to restart your deployment for the change to take effect. Just make the change and test the results. Good luck.

Enjoyed this post? Share it!


Leave a comment

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