Issue 3076: Implementing proper handling of CloseConnection (corba-rtf) Source: ZeroC (Mr. Marc Laukien, marc(at)zeroc.com) Nature: Uncategorized Issue Severity: 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? Resolution: see above, close, no change Revised Text: Actions taken: December 3, 1999: received issue March 7, 2002: moved to Core RTF December 11, 2002: closed issue Discussion: Resolution: As per the issue filers later note, the particular mis-feature of JDK has been fixed in JDK 1.3. There does not appear to be a pressing reason to complicate the standard in order to deal with the corner cases which use TCP implementations which do not properly implement orderly shutdown. So close this issue no change. End of Annotations:===== Date: Fri, 03 Dec 1999 12:23:18 -0500 From: Marc Laukien Organization: Object Oriented Concepts, Inc. X-Mailer: Mozilla 4.7 [en] (WinNT; I) X-Accept-Language: en MIME-Version: 1.0 To: interop@omg.org Subject: Implementing proper handling of CloseConnection Content-Transfer-Encoding: 7bit Content-Type: text/plain; charset=us-ascii X-UIDL: 1TPe9CW\d9KF!!!"`A!! Hi, 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? Cheers, Marc -- Marc Laukien Phone: (978) 439 9285 x 245 Object Oriented Concepts, Inc. FAX: (978) 439 9286 44 Manning Rd. WWW: http://www.ooc.com Billerica, MA 01821 E-Mail: mailto:ml@ooc.com Date: Mon, 20 Nov 2000 15:17:12 -0500 From: Marc Laukien Organization: Object Oriented Concepts, Inc. X-Mailer: Mozilla 4.75 [en] (WinNT; U) X-Accept-Language: en MIME-Version: 1.0 To: "'Interop@omg.org'" Subject: http://cgi.omg.org/issues/interop.html#Issue3076 Content-Transfer-Encoding: 7bit Content-Type: text/plain; charset=us-ascii X-UIDL: ,oCe9=J Organization: Hewlett-Packard Company X-Mailer: Mozilla 4.78 [en] (Windows NT 5.0; U) X-Accept-Language: en MIME-Version: 1.0 To: corba-rtf@omg.org Subject: Issue 3076 proposed resolution Content-Transfer-Encoding: 7bit Content-Type: text/plain; charset=us-ascii X-UIDL: l##e9dOB!![XNd95\md9 The following resolution will appear in the next vote of the CORBA Core RTF unless there is signficant technical objection to the proposal. Jishnu. ___________________________________________________________ Issue 3076: Implementing proper handling of CloseConnection (interop) http://cgi.omg.org/issues/issue3076.txt Source: IONA (Mr. Marc Laukien, ml@iona.com) Nature: Uncategorized Issue Severity: 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." Resolution: As per the issue filers later note, the particular mis-feature of JDK has been fixed in JDK 1.3. There does not appear to be a pressing reason to complicate the standard in order to deal with the corner cases which use TCP implementations which do not properly implement orderly shutdown. So close this issue no change. Revised Text: Actions taken: Close no change. December 3, 1999: received issue