Proxified object references
-
Key: CORBA35-311
-
Legacy Issue Number: 2865
-
Status: open
-
Source: Anonymous
-
Summary:
Summary: Proxified object references obtained by invoking
new_target() should not be passed between ORBs. Instead the original IOR
containing the target and firewall information should be passed. The reason
for this is that the IOR does not contain enough information to inform the
second ORB whether or not it is a reference for a NORMAL or PASSTHRU
connection, or whether it is a proxified reference at all. This issue is
very tightly related to issue 2, so we will describe how it fails for each
of the possible solutions to the PASSTHRU establishment problem outlined in
issue 2.
One solution for which this is not an issue is the solution
of using a port per target. However, this is not a viable solution because
it is restrictive and will fail under moderate load. For solution 1 we
don"t have a problem because no object reference is returned by
set_target(), therefore it cannot be passed to other ORBs. For solution 2
we have a problem because the second ORB won"t know whether it is supposed
to first invoke start_passthru() or simply start making requests. Therefore
it may get a connection type that it wasn"t expecting. For solution 3 we
have a problem because once the original connection has been made, the
reference is invalid. This occurs because the firewall does not have
knowledge of how many clients are expected to try to connect to that target,
and it may attempt to claim that port for reuse before another client has
connected.Proposed Solution:
The passing of object references obtained by invoking
new_target() should be expressly prohibited by the specification. One
example is, "The object reference returned by new_target() may not be passed
to another client. Instead the original reference that was passed as the
argument to new_target() must be passed to the second client, and the second
client will follow the rules of the traversal algorithm to reach the desired
target." -
Reported: CORBA 2.3.1 — Tue, 24 Aug 1999 04:00 GMT
-
Updated: Wed, 26 Jun 2024 00:56 GMT