IBM


11.10.3 ND appservers on the same box

The configuration becomes more complex when we move from an stand-alone server environment to a ND distributed server environment. In this topology, there can be separate appservers as well as a node agent process, all of which have a bootstrap port and host a local name space:

- The node agent is the default bootstrap for the node, and has its bootstrap port configured on 2809.

- The appservers are not the default bootstrap, and, therefore, each is configured to use a non-default bootstrap port.

This concept is illustrated by the example in Figure 11-7.

Figure 11-7 Two network deployment appservers on the same box

Unless a client uses a specific appserver in its provider URL, the lookup is performed on the node agent. For the lookup to succeed, the bindings have to specify the fully qualified name of the object:

cell/nodes/<nodename>/servers/<servername>/<name of object>

That is, the client needs to specify where the object is located. This is a big difference from the behavior in WAS V4, where all named objects were registered in a single global name space.

Tip: When we need server clusters for high availability, bootstrap to a server cluster so that the initial context has failover support. Lookups that resolve to other clusters from that bootstrap cluster also have failover support from the name server implementation. The provider URL should have the bootstrap address of each cluster member to avoid a single point of failure when obtaining the initial context.

In a distributed server environment, choose a bootstrap server that has a stable bootstrap address, such as a designated cluster, server, or node agent.

Table 11-9 illustrates the Provider URL settings required.

Table 11-9 Lookup settings for two ND servers on the same box

Component Provider URL JNDI name
Servlet (same process) Not needed CustomerHome
Servlet (external process accessing local name space to access local object) Not needed cell/nodes/<nodename>/servers/<server2>/CustomerHome
Servlet (external process accessing other appserver's name space to access object on that appserver) corbaloc::<appserver2 hostname>:<port#> CustomerHome
(or) Not needed cell/persistent/CustomerHome21
J2EE client (external process accessing appserver1 with object located on appserver1) corbaloc::<appserver hostname>:<port#> CustomerHome
(or) Not needed cell/persistent/CustomerHome11
J2EE client (external process accessing node agent) corbaloc::<node agent hostname> cell/nodes/<nodename>/servers/<server2>/CustomerHome
(or) Not needed cell/persistent/CustomerHome21
J2EE client (external process accessing appserver1 with object located on appserver2) corbaloc::<appserver1 hostname>:<port#> cell/nodes/<nodename>/servers/<server2>/CustomerHome
(or) Not needed cell/persistent/CustomerHome21
1 You must manually configure indirect JNDI references to the respective EJB in the cell/persistent name space.


Redbooks ibm.com/redbooks

Next