Previous | Table of Contents | Next |
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.
• ROUTE_NONE - Synchronous or Deferred Synchronous delivery is used. No Routers will be used to aid in the delivery of the request.
• ROUTE_FORWARD - Asynchronous delivery is used. The request is made through the use of a Router and not delivered directly to the target by the client ORB.
• ROUTE_STORE_AND_FORWARD - Asynchronous TII is used. The request is made through the use of a Router that persistently stores the request before attempting delivery.
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.