2.3.1 Distributed process discovery
When a managed server begins its startup, it sends a discovery request message that allows other processes to discover its existence and establish communication channels with the process.
Figure 2-9 shows an example of the distributed discovery process for a topology containing two nodes that are located on different machines. Note that both node agents in the figure use ports 7272 and 5000. This assumes they reside on separate physical machines. If nodes are located on the same machine, they must be configured to use non-conflicting IP ports.
Figure 2-9 Distributed discovery process
Each node agent and deployment manager maintains status and configuration information by using discovery addresses, or ports. On startup, processes discover other running components, and create communication channels between them, through the discovery addresses:
- The master repository located on the deployment manager installation contains the serverindex.xml file for each node. The deployment manager reads this file on startup to determine the host name and IP port of each node agent's NODE_DISCOVERY_ADDRESS. The default port for the NODE_DISCOVERY_ADDRESS is 7272. You can verify this by looking at the NODE_AGENT stanza in the serverindex.xml file of each node located at:
<dmgr_profile_home>/config/cells/<cell>/nodes/<node>/serverindex.xml
You can also display this port from the console by selecting System Administration | Node agents. Select each node agent and expand Ports under the Additional Properties section.
- The copy of the configuration repository located on each node contains the serverindex.xml file for the deployment manager. The node agent reads this file on startup to determine the host name and IP port of the deployment manager's CELL_DISCOVERY_ADDRESS. The default port for the CELL_DISCOVERY_ADDRESS is port 7277. You can verify this by looking at the DEPLOYMENT_MANAGER stanza in the serverindex.xml file for the deployment manager node located at:
<profile_home>/config/cells/<cell>/nodes/<DM_node>/serverindex.xml
You can also display this port from the console by selecting System Administration | Deployment manager. Expand Ports under the Additional Properties section.
- The copy of the configuration repository located on each node also contains the serverindex.xml file for the node. Each managed server reads this file on startup to determine the host name and IP port of the node agent's NODE_MULTICAST_DISCOVERY_ADDRESS. A multicast address is used to prevent the usage of a large number of IP ports for managed server to node agent discovery requests. Using multicast, a node agent can listen on a single IP port for any number of local servers.
The default port for the NODE_MULTICAST_DISCOVERY_ADDRESS is 5000. You can verify this by looking at the NODE_AGENT stanza in the serverindex.xml file of the node located at:
<profile_home>/config/cells/<cell>/nodes/<node>/serverindex.xml
You can also display this port from the console by selecting System Administration | Node agents. Select the node agent and expand Ports under the Additional Properties section.
Important: Keep the following in mind:
- The discovery service uses the InetAddress.getLocalHost() call to retrieve the IP address for the local machine's host name. The network configuration of each machine must be configured so that getLocalHost() does not return the loopback address (127.0.0.1). It must return the real IP address of the correctly chosen NIC.
- A multicast address is a logical address. Therefore, it is not bound to a real, physical network interface, and will not be the same as the host name (or IP address) of the host on which the node agent is executed.
- Multicast host addresses must be within a special range (224.0.0.0 to 239.255.255.255) defined by the IP standards and must never be a host name value. The default for WebSphere node agents is 232.133.104.73.
Each server has its own copy of the configuration and application data necessary for startup of the run time and the installed applications.