Author: ron.sigal(a)jboss.com
Date: 2009-04-22 19:56:19 -0400 (Wed, 22 Apr 2009)
New Revision: 5080
Modified:
remoting2/branches/2.x/src/main/org/jboss/remoting/transport/socket/MicroSocketClientInvoker.java
Log:
JBREM-1120: Added writeTimeout facility.
Modified:
remoting2/branches/2.x/src/main/org/jboss/remoting/transport/socket/MicroSocketClientInvoker.java
===================================================================
---
remoting2/branches/2.x/src/main/org/jboss/remoting/transport/socket/MicroSocketClientInvoker.java 2009-04-22
23:55:41 UTC (rev 5079)
+++
remoting2/branches/2.x/src/main/org/jboss/remoting/transport/socket/MicroSocketClientInvoker.java 2009-04-22
23:56:19 UTC (rev 5080)
@@ -91,6 +91,9 @@
/** Key for setting time to wait to get permission to get a connection */
public static final String CONNECTION_WAIT = "connectionWait";
+ /** Key for setting socket write timeout */
+ public static final String WRITE_TIMEOUT = "writeTimeout";
+
/**
* Default value for enable TCP nodelay. Value is false.
*/
@@ -247,6 +250,8 @@
protected boolean soLingerSet;
protected int soLingerDuration = -1;
protected int trafficClass = -1;
+
+ protected int writeTimeout = -1;
// Constructors
---------------------------------------------------------------------------------
@@ -384,6 +389,16 @@
this.trafficClass = trafficClass;
}
+ public int getWriteTimeout()
+ {
+ return writeTimeout;
+ }
+
+ public void setWriteTimeout(int writeTimeout)
+ {
+ this.writeTimeout = writeTimeout;
+ }
+
public synchronized void disconnect()
{
log.debug(this + " disconnecting ...");
@@ -612,6 +627,22 @@
val + " to a boolean value");
}
}
+
+ // look for writeTimeout param
+ val = params.get(WRITE_TIMEOUT);
+ if (val != null)
+ {
+ try
+ {
+ writeTimeout = Integer.valueOf((String)val).intValue();
+ log.debug(this + " setting writeTimeout to " + writeTimeout);
+ }
+ catch (Exception e)
+ {
+ log.warn(this + " could not convert " + WRITE_TIMEOUT + "
value of " +
+ val + " to an int value");
+ }
+ }
}
protected ServerAddress createServerAddress(InetAddress addr, int port)
@@ -1102,7 +1133,10 @@
}
metadata.put(SocketWrapper.MARSHALLER, marshaller);
metadata.put(SocketWrapper.UNMARSHALLER, unmarshaller);
-
+ if (writeTimeout > 0)
+ {
+ metadata.put(SocketWrapper.WRITE_TIMEOUT, new Integer(writeTimeout));
+ }
if (timeAllowed > 0)
{
timeRemaining = (int) (timeAllowed - (System.currentTimeMillis() - start));
Show replies by date