Chapter 3. Application Assembly/Deployment and Cell Configuration/Resource Allocation

3.1.  Describe the name service management of WebSphere Application Server Network Deployment V7.0 (JNDI).

[Note]

Naming includes both server-side and client-side components. The server-side component is a Common Object Request Broker Architecture (CORBA) naming service (CosNaming). The client-side component is a Java Naming and Directory Interface (JNDI) service provider. JNDI is a core component in the Java Platform, Enterprise Edition (Java EE) programming model.

The WebSphere JNDI service provider can be used to interoperate with any CosNaming name server implementation. Yet WebSphere name servers implement an extension to CosNaming, and the JNDI service provider uses those WebSphere extensions to provide greater capability than CosNaming alone. Some added capabilities are binding and looking up of non-CORBA objects.

Java EE applications use the JNDI service provider supported by WebSphere Application Server to obtain references to objects related to server applications, such as enterprise bean (EJB) homes, which have been bound into a CosNaming name space.

Configuring namespace bindings

Instead of creating namespace bindings from a program, you can configure namespace bindings using the administrative console. Name servers add these configured bindings to the namespace view by reading the configuration data for the bindings. Configured bindings are created each time a server starts, even when the binding is created in a transient partition of the namespace. One major use of configured bindings is to provide fixed qualified names for server application objects

A deployed application requires qualified fixed names if the application is accessed by thin client applications or by Java Platform, Enterprise Edition (Java EE) client applications or server applications running in another server process.

When you configure a namespace binding, you create a qualified fixed name for a server object. A fixed name does not change if the object is moved to another server. A qualified fixed name with a cell scope has the following form:

cell/persistent/fixedName
					

The fixedName is an arbitrary fixed name.

You can configure namespace bindings, and thus qualified fixed names, for the following objects:

  • A string constant value

  • An enterprise bean (EJB) home installed on a server in the cell

  • A CORBA object available from a CosNaming name server

  • An object bound in a WebSphere® Application Server namespace that is accessible using a Java Naming and Directory Interface (JNDI) indirect lookup

Procedure

  1. Go to the "Name space bindings" page.

    In the administrative console, click "Environment > Naming > Name space bindings".

  2. Select the desired scope.

    The scope determines where in the namespace binding is created. It also affects which name servers contain the binding in the namespace that they manage. Regardless of the scope, a namespace binding is accessible from all name servers in the cell. However, the scope can affect whether the lookup can be resolved locally by a name server or whether the name server must make a remote call to another name server to resolve the binding.

    Only namespace bindings created with the selected scope are visible in the collection table on the page. By changing the scope, you can see and create bindings in other scopes.

    1. Select a scope.

      If you are creating a new namespace binding, refer to the table below as a guide in selecting a scope:

      Table 3.1.  Namespace binding scope descriptions. The scope can be a cell, node, server, or cluster.

      ScopeDescription

      Cell

      Cell-scoped bindings are created under the cell persistent root context. Select Cell if the namespace binding is not specific to any particular node or server, or if you do not want the binding to be associated with any specific node, cluster or server. For example, you can use cell-scoped bindings to create fixed qualified names for enterprise beans. Fixed qualified names do not have any node, cluster or server names embedded within them.

      Node

      Node-scoped bindings are created under the node persistent root context for the selected node. Select Node if the namespace binding is specific to a particular node, or if you want the binding to be associated with a specific node.

      Node-scoped bindings are created in the node agent and all application server processes in the selected node. Therefore, all name servers in the node can resolve those bindings locally. No remote invocations to other name servers are necessary to resolve the bindings. However, name servers in other nodes must make remote calls to the node agent in the selected node in order to resolve the bindings. For example, in order for a name server running in node node1 to resolve the name cell/nodes/node2/persistent/nodeScopedConfiguredBinding, the name server must make a remote call to the node agent running in node2. Any name server running in node2 can resolve that name without invoking any other name servers.

      Server

      Server-scoped bindings are created under the server root context for the selected server. Select Server if a binding is to be used only by clients of an application running on a particular server, or if you want to configure a binding with the same name on different servers which resolve to different objects. Note that two servers can have configured bindings with the same name but resolve to different objects.

      Server-scoped bindings are created in the process of the selected application server. Therefore, the name server running in the selected application server can resolve those bindings locally. No remote invocations to other name servers are necessary to resolve the bindings. However, all other name servers in the cell must make remote calls to the selected server in order to resolve the bindings. For example, in order for the name server running in server1 in node node1 to resolve the name cell/nodes/node1/servers/server2/serverScopedConfiguredBinding, it must make a remote call to server2 in node1. Only the name server in server2 in node1 can resolve that name without invoking any other name servers.

      Cluster

      Cluster-scoped bindings are created under the server root context for all members in the selected cluster. Select Cluster if the namespace binding is specific to a particular cluster, or if you want the binding to be associated with a specific cluster.

      Cluster-scoped bindings are created in all member processes of the selected cluster. Therefore, the name server running in each member of the selected cluster can resolve those bindings locally. No remote invocations to other name servers are necessary to resolve the bindings. However, all other name servers in the cell must make remote calls to the node agent in the selected node in order to resolve the bindings. For example, in order for a name server running in any member of cluster1 to resolve the name cell/clusters/cluster2/clusterScopedConfiguredBinding, it must make a remote call to some member in cluster2. Only the name servers in cluster2 members can resolve that name without invoking any other name servers.

      Server-scoped bindings in cluster members override cluster-scoped bindings with the same binding name. However, cluster members generally should all be configured identically, and server-scoped bindings should not be required for individual cluster members.


    2. Click "Apply".

  3. Create a new namespace binding.

    1. Open the "New Name Space Binding" wizard.

      On the "Name space bindings" page, click "New".

    2. On the "Specify binding type" panel, select the binding type.

      The namespace binding can be for a constant string value, an EJB home, a CORBA CosNaming NamingContext or CORBA leaf node object, or an object that you can look up indirectly using JNDI.

    3. On the "Specify basic properties" panel, specify the binding identifier and other properties for the binding.

    4. Optional: On the "Other context properties" panel, specify new properties to be passed to the javax.naming.InitialContext constructor.

      This step applies to indirect lookup bindings only.

    5. On the "Summary" panel, verify the settings and click "Finish".

    The name of the new binding is displayed in the collection table on the Name space bindings page.

  4. Optional: Edit a previously created binding.

Cell-scoped bindings are created under the cell persistent root context. Node-scoped bindings are created under the node persistent root context for the specified node. Server-scoped bindings are created under the server root context for the selected server. Cluster-scoped bindings are created under the server root context for each member of the selected cluster.

Professional hosting         Free 'Oracle Certified Expert Web Services Developer 6' Guide     Free SCDJWS 5.0 Guide