You can use the _forward operation in the Object pseudo interface to
forward a request to a different object:
pseudo interface servant (Object) {
void _forward (in Object location) raises (ORBLink::Forward);
}
Within the body of a
corba:define-method
definition corresponding to an
implementation object r, the function invocation
(op:_forward r p)
will forward to the object designated by p the request that was
received by the object r.
This functionality only works if the
original request was received remotely by r.
It is implemented at the
IIOP level by returning to the invoker a reply of type
LOCATION_FORWARD with the IOR of p in the IIOP message body. All
subsequent requests on that proxy (which can be in the address space
of a non-Lisp ORB) which forwarded the original request to r will be
routed directly to p.
op:_forward signals an ORBLink:Forward condition which is handled by
the ORB when servicing a remote request. This implementation detail is
normally transparent to the user and should not be relied upon.