OpenTP1 Version 7 Description

[Contents][Glossary][Index][Back][Next]

3.2.2 Optional function for service information searches

The optional function for service information searches consists of the global search facility and the service information prioritizing function. You can use these functions in the OpenTP1 system to issue service requests that use horizontal distribution and to preferentially use service information for a specific node.

Organization of this subsection
(1) Global search facility
(2) Service information prioritizing function

(1) Global search facility

Using the global search facility, you can obtain the following service information:

  1. Information about services that run on the nodes specified in the all_node operand
  2. Information about services that run on the nodes specified in each of the all_node operands managed by the name service of the nodes referred to in 1. above.

The figure below shows an example of a system configuration using the global search facility. Specify the name_global_lookup operand in the name service definition for each OpenTP1 node as shown in the figure. For details about specifying this operand, see the manual OpenTP1 System Definition.

Figure 3-15 System configuration when using the global search facility

[Figure]

The search range from OpenTP1-A encompasses the OpenTP1 nodes specified in the all_node operands for OpenTP1-B and C. That is, OpenTP1-A can communicate with services in OpenTP1 systems 2 and 3 as well as those in OpenTP1 system 1. The nodes specified in the all_node operands for OpenTP1-D, E, F and G are not included in the search range from OpenTP1-A.

When the global search facility is enabled, the dc_rpc_call_to function cannot be used with the port number of the name service specified in the portno argument of the DCRPC_BINDTBL_SET function.

To use the dc_rpc_call_to function with a node ID specified in the nid argument of the DCRPC_BINDTBL_SET function, you must define the same node ID for all OpenTP1 nodes in the search range of the global search facility (OpenTP1 systems 1 to 3 in Figure 3-15).

Because service information (shutdown status, load status, and so on) is not reported to the OpenTP1 instance that requested the search (OpenTP1-A in Figure 3-15), we recommend that service requests be handled in a parallel distribution, by ensuring that the all_node operand for each node in the same system defines the other nodes in that system. Thus, in the figure, OpenTP1-D and E are reciprocally defined in OpenTP1 system 2, as are OpenTP1-F and G in OpenTP1 system 3.

When calculating the value to set in the name_cache_size operand in the name service definition, as well as the number of service information items contained in searches requested from the local node, you must also count the number of service information items cached on the nodes specified in the all_node operand.

When a service request is sent from TP1/Client/P, TP1/Client/W or TP1/Client/J to an OpenTP1 instance that uses the global search facility (OpenTP1-A in Figure 3-15), information can be collected not only from OpenTP1 system 1 but also from OpenTP1 systems 2 and 3.

(2) Service information prioritizing function

The service information prioritizing function prioritizes the service information for a specific node when the name service returns service information to a client UAP that requested services. The node whose service information is returned preferentially is called the priority selection node.

Normally, when an RPC is executed (except under special circumstances, such as when there is a high workload) while there are multiple server UAPs that can process a client UAP's service request, those server UAPs are all treated with the same priority. Therefore, a service information search request is sent to the name services at all nodes specified in the all_node operand in the system common definition and then all the service information acquired from the responses is returned to the client UAP. The client UAP then selects from the returned service information the server UAP that is to be the target of the RPC, and then executes the RPC.

On the other hand, when the service information prioritizing function is used when there are multiple server UAPs that can process a client UAP's service request, this function returns to the client UAP the service information for the priority selection node. The client UAP then executes the RPC on the server UAP at the priority selection node. In the event of a failure (such as UAP shutdown) at the priority selection node, the function returns to the client UAP the service information for a node other than the priority selection node. The service information prioritizing function enables you to use the server UAP at the priority selection node normally and to use another node in the event of a failure. In this way, you can treat one server UAP as the running system and another as the standby system.

You use the all_node operand in the system common definition to specify the priority selection node. The method for specifying the priority selection node definition file is the same as for the domain definition file. For details about how to specify the priority selection node, see the manual OpenTP1 System Definition.

The following subsections describe a normal RPC flow and an RPC flow when the service information prioritizing function is used. In the descriptions below, the term global cache refers to an area used by the name service to manage service information for the servers that are running at other nodes.

If the server UAP has shut down at the priority selection node or the global search facility is used, the RPC flow differs from the flow shown in the figure above where the service information prioritizing function is used. Such cases are described in (a) through (c) below. Note that name service processing is omitted in the descriptions in the following subsections.

(a) RPC flow when the server UAP has shut down

The following figure shows an RPC flow when the server UAP at the priority selection node has shut down.

Figure 3-18 RPC flow when the server UAP has shut down

[Figure]

TP1-C has been specified as the priority selection node for TP1-A, but the server UAP at TP1-C has shut down. When the server UAP's shutdown status at TP1-C is sent to TP1-A, TP1-A removes TP1-C as an RPC target candidate. Therefore, TP1-A executes the RPC on the server UAP at TP1-B, even though it is not a priority selection node.

Note
While TP1-A is waiting to be notified of the server UAP's shutdown status at TP1-C, TP1-A executes the RPC on the server UAP at TP1-C. If TP1-B is specified in the all_node operand in the system common definition at TP1-C, the RPC might be forwarded from TP1-C to TP1-B. If TP1-B is not specified in the all_node operand in the system common definition at TP1-C, the RPC returns an error.
The shutdown information is reported for each server. Therefore, if the server UAP at TP1-C is shut down on a service-by-service basis, the shutdown information is not sent to TP1-A. As a result, TP1-A executes the RPC on the server UAP at TP1-C. If the target service is down, the RPC returns an error.
(b) RPC flow when there is a heavy workload at the server UAP

The following figure shows an RPC flow when the server UAP at the priority selection node is sustaining a heavy workload.

Figure 3-19 RPC flow when the server UAP is sustaining a heavy workload

[Figure]

Because TP1-C is specified as the priority selection node at TP1-A, the server UAP running at TP1-C becomes the RPC target candidate. However, the RPC is forwarded to the server UAP at a node specified in the all_node operand of the system common definition at TP1-C because the server UAP at TP1-C is sustaining a heavy workload. This example forwards the RPC from TP1-C to the server UAP at TP1-B. The server UAP at TP1-B then executes the RPC for TP1-A.

(c) RPC flow when the global search facility and the service information prioritizing function are both used

You can use the global search facility together with the service information prioritizing function. When both functions are used, the RPC depends on whether a global search relay node has been specified as the priority selection node.

If a global search relay node has been specified as the priority selection node, the priority selection node specified in the search range of the global search facility becomes the target of the RPC. If no global search relay node is specified as the priority selection node, the priority selection node specified at the requesting node becomes the target of the RPC. Both these cases are described below.

(d) Notes about using the service information prioritizing function

The following should be noted about using the service information prioritizing function.