Functions and components

Each service consists of a set of related functions. For example, the name service contains function for:

It also contains initialization and termination functions.

An installable service is provided by one or more service components. Each component can perform some or all of the functions that are defined for that service. For example, in WebSphere MQ for AIX, the supplied authorization service component, the OAM, performs all the available functions. See Authorization service interface for more information. The component is also responsible for managing any underlying resources or software (for example, DCE name services) that it needs to implement the service.

determining the addresses of the functional routines that it provides.

Figure 38 shows how services and components are related:

Figure 38. Understanding services, components, and entry points


Illustration showing the relationship between services and components. On the left is a queue manager, linked by several entry points (each beginning MQZ) to name service components on the right.

Entry-points

Each service component is represented by a list of the entry-point addresses of the routines that support a particular installable service. The installable service defines the function to be performed by each routine.

The ordering of the service components when they are configured defines the order in which entry-points are called in an attempt to satisfy a request for the service.

In the supplied header file cmqzc.h, the supplied entry points to each service have an MQZID_ prefix.

Return codes

Service components provide return codes to the queue manager to report on a variety of conditions. They report the success or failure of the operation, and indicate whether the queue manager is to proceed to the next service component. A separate Continuation parameter carries this indication.

Component data

A single service component might require data to be shared between its various functions. Installable services provide an optional data area to be passed on each invocation of a given service component. This data area is for the exclusive use of the service component. It is shared by all the invocations of a given function, even if they are made from different address spaces or processes. It is guaranteed to be addressable from the service component whenever it is called. You must declare the size of this area in the ServiceComponent stanza.



© IBM Corporation 1994, 2002. All Rights Reserved