-
Key: CORBA3-5
-
Legacy Issue Number: 3076
-
Status: closed
-
Source: ZeroC ( Marc Laukien)
-
Summary:
The CORBA 2.3 spec says in chapter 15.7.1:
"After receiving a CloseConnection message, an ORB must close the TCP/IP
connection. After sending a CloseConnection, an ORB may close the TCP/IP
connection immediately, or may delay closing the connection until it
receives an
indication that the other side has closed the connection. For maximum
interoperability with ORBs using TCP implementations which do not
properly implement orderly shutdown, an ORB may wish to only shutdown
the sending side of the connection, and then read any incoming data
until it receives an indication that the other side has also shutdown,
at which point the TCP connection can be closed completely."Most (or all?) Unix TCP/IP implementations suffer from the problem
described above, i.e., with most Unix TCP/IP implementations the last
message sent is discarded if the connection is closed. The workaround,
to shut down the sending side only, and then to read data until EOF is
received, works fine for C++ ORBs.However, there is no equivalent to shutdown() in Java, so I don't see
any way to reliably transmit the CloseConnection message from a Java ORB
running on Unix.Questions:
- Is there perhaps some other way to reliably transmit the last message
before closing the connection, using Java running on Unix?
- If not, doesn't this mean that IIOP's connection closure strategy is
unimplementable in Java under most Unixes?
- Is there perhaps some other way to reliably transmit the last message
-
Reported: CORBA 2.3.1 — Fri, 3 Dec 1999 05:00 GMT
-
Disposition: Resolved — CORBA 3.0.2
-
Disposition Summary:
see above, close, no change
-
Updated: Fri, 6 Mar 2015 20:58 GMT
CORBA3 — Implementing proper handling of CloseConnection
- Key: CORBA3-5
- OMG Task Force: Core 2002 RTF