Author: ron.sigal(a)jboss.com
Date: 2010-07-29 16:13:05 -0400 (Thu, 29 Jul 2010)
New Revision: 5936
Modified:
remoting2/branches/2.x/src/main/org/jboss/remoting/MicroRemoteClientInvoker.java
Log:
JBREM-1238: Added use of leaseCreationTimeout.
Modified:
remoting2/branches/2.x/src/main/org/jboss/remoting/MicroRemoteClientInvoker.java
===================================================================
---
remoting2/branches/2.x/src/main/org/jboss/remoting/MicroRemoteClientInvoker.java 2010-07-29
20:12:38 UTC (rev 5935)
+++
remoting2/branches/2.x/src/main/org/jboss/remoting/MicroRemoteClientInvoker.java 2010-07-29
20:13:05 UTC (rev 5936)
@@ -40,6 +40,7 @@
public abstract class MicroRemoteClientInvoker extends AbstractInvoker implements
ClientInvoker
{
private static final Logger log = Logger.getLogger(MicroRemoteClientInvoker.class);
+ private static final String LEASE_CREATION_TIMEOUT_DEFAULT = "30000";
private boolean trace = log.isTraceEnabled();
protected boolean connected = false;
@@ -51,6 +52,7 @@
private String invokerSessionID = new GUID().toString();
protected boolean parentFirstClassLoading = true;
private boolean changeInvalidStateToCannotConnect = false;
+ private String leaseCreationTimeout = LEASE_CREATION_TIMEOUT_DEFAULT;
protected List connectHomes;
@@ -388,6 +390,16 @@
return this.invokerSessionID;
}
+ public String getLeaseCreationTimeout()
+ {
+ return leaseCreationTimeout;
+ }
+
+ public void setLeaseCreationTimeout(String leaseCreationTimeout)
+ {
+ this.leaseCreationTimeout = leaseCreationTimeout;
+ }
+
public void terminateLease(String sessionId, int disconnectTimeout)
{
terminateLease(sessionId, disconnectTimeout, null);
@@ -405,6 +417,10 @@
if (trace) log.trace(this + " entering terminateLease() for " +
leasePinger);
if(leasePinger != null)
{
+ if (disconnectTimeout == Client.DEFAULT_DISCONNECT_TIMEOUT)
+ {
+ disconnectTimeout = Integer.parseInt(leaseCreationTimeout);
+ }
leasePinger.setDisconnectTimeout(disconnectTimeout);
if (sessionId == null)
@@ -506,6 +522,7 @@
Map requestMap = new HashMap();
requestMap.put(LeasePinger.LEASE_PINGER_ID, leasePingerId);
requestMap.put(LeasePinger.TIME_STAMP,
Long.toString(System.currentTimeMillis()));
+ requestMap.put(ServerInvoker.TIMEOUT, leaseCreationTimeout);
if (trace) log.trace(this + " initiating lease for leasePingerId
" + leasePingerId);
InvocationRequest ir = new InvocationRequest(invokerSessionID, null,
"$PING$", requestMap, new HashMap(), null);
@@ -619,6 +636,22 @@
String sflag = flag.toString();
changeInvalidStateToCannotConnect = Boolean.valueOf(sflag).booleanValue();
}
+
+ flag = configuration.get(Remoting.LEASE_CREATION_TIMEOUT);
+ if (flag != null)
+ {
+ String sflag = flag.toString();
+ try
+ {
+ Integer.valueOf(sflag);
+ leaseCreationTimeout = sflag;
+ }
+ catch (NumberFormatException e)
+ {
+ log.warn(this + " value of " + Remoting.LEASE_CREATION_TIMEOUT +
+ " should be in numeric form: " + sflag + ", using
" + LEASE_CREATION_TIMEOUT_DEFAULT);
+ }
+ }
}
/**