Previous Table of Contents Next


22.2.5 Routing


   22.2.5.1 typedef short RoutingType

   Describes the type of Routing to be used for invocations on an Object reference. Values of type RoutingType are used in conjunction with a RoutingPolicy as described in Section 22.2.5.3, “interface RoutingPolicy,? on page 22-11. All non negative values are reserved for use in OMG specifications. Any negative value of RoutingType is considered a vendor extension.

   22.2.5.2 struct RoutingTypeRange

   This structure describes a range of routing types. A RoutingTypeRange with minimum RoutingType greater than maximum RoutingType is invalid.

   22.2.5.3 interface RoutingPolicy

   This interface is a local object derived from CORBA::Policy. It is used to indicate whether or not the ORB must ensure delivery of a request through the use of queueing. If the effective Policy of this type has a RoutingTypeRange with min value of ROUTE_FORWARD or ROUTE_STORE_AND_FORWARD, the interoperable Routing protocol described in Section 22.12, “Section III - Introduction,? on page 22-44 is used. This policy does not apply to synchronous invocations. If, for example, the min is ROUTE_NONE and the max is ROUTE_FORWARD, the Routing protocol will normally be used but a direct connection may be used if available. When instances of RoutingPolicy are created, a value of type RoutingTypeRange is passed to CORBA::ORB::create_policy. An instance of RoutingPolicy may be specified when creating a POA (and therefore may be represented in Object references). In addition, a POA’s RoutingPolicy is visible to clients through the Object references it creates, and reconciled with the client’s override. If set on both the client and server, reconciliation is performed by intersecting the server-specified RoutingPolicy range with the range of the client’s effective override. When an instance of RoutingPolicy is propagated within a PolicyValue in a TAG_POLICIES Profile Component or INVOCATION_POLICIES Service Context, the ptype has value ROUTING_POLICY_TYPE and the pvalue is a CDR encapsulation containing a Messaging::RoutingTypeRange.

   22.2.5.4 interface MaxHopsPolicy

   This interface is a local object derived from CORBA::Policy. It is used to indicate the maximum number of routing hops that can occur when routing a request from the client to the target. When instances of MaxHopsPolicy are created, a value of type unsigned short is passed to CORBA::ORB::create_policy. This policy is only applicable as a client-side override. When an instance of MaxHopsPolicy is propagated within a PolicyValue in an INVOCATION_POLICIES Service Context, the ptype has value MAX_HOPS_POLICY_TYPE and the pvalue is a CDR encapsulation containing an unsigned short.