# HG changeset patch # User lana # Date 1379430487 25200 # Node ID a4bb3b4500164748a9c33b2283cfda76d89f25ab # Parent 260f00a957057aafdb1d1afc7d002b3992525921# Parent 4853dc082c7dc03020f62084809dd4889b954620 Merge diff -r 260f00a95705 -r a4bb3b450016 src/share/classes/com/sun/corba/se/impl/transport/DefaultSocketFactoryImpl.java --- a/src/share/classes/com/sun/corba/se/impl/transport/DefaultSocketFactoryImpl.java Thu Sep 12 11:08:55 2013 -0700 +++ b/src/share/classes/com/sun/corba/se/impl/transport/DefaultSocketFactoryImpl.java Tue Sep 17 08:08:07 2013 -0700 @@ -32,6 +32,7 @@ import java.net.ServerSocket; import java.nio.channels.SocketChannel; import java.nio.channels.ServerSocketChannel; +import java.security.PrivilegedAction; import com.sun.corba.se.pept.transport.Acceptor; @@ -44,6 +45,22 @@ implements ORBSocketFactory { private ORB orb; + private static final boolean keepAlive; + + static { + keepAlive = java.security.AccessController.doPrivileged( + new PrivilegedAction() { + @Override + public Boolean run () { + String value = + System.getProperty("com.sun.CORBA.transport.enableTcpKeepAlive"); + if (value != null) + return new Boolean(!"false".equalsIgnoreCase(value)); + + return Boolean.FALSE; + } + }); + } public void setORB(ORB orb) { @@ -85,6 +102,9 @@ // Disable Nagle's algorithm (i.e., always send immediately). socket.setTcpNoDelay(true); + if (keepAlive) + socket.setKeepAlive(true); + return socket; } @@ -95,6 +115,8 @@ { // Disable Nagle's algorithm (i.e., always send immediately). socket.setTcpNoDelay(true); + if (keepAlive) + socket.setKeepAlive(true); } }