hammant 02/01/19 07:06:58
Modified: altrmi/src/java/org/apache/commons/altrmi/client
AltrmiClientInvocationHandler.java
AltrmiConnectionPinger.java
altrmi/src/java/org/apache/commons/altrmi/client/impl
AbstractAltrmiClientInvocationHandler.java
StreamInvocationHandler.java
altrmi/src/java/org/apache/commons/altrmi/client/impl/direct
DirectInvocationHandler.java
altrmi/src/java/org/apache/commons/altrmi/client/impl/rmi
RmiInvocationHandler.java
altrmi/src/java/org/apache/commons/altrmi/server/impl
StreamServerConnection.java
altrmi/src/java/org/apache/commons/altrmi/test
SocketClientTest.java
Added: altrmi/src/java/org/apache/commons/altrmi/client/impl
DefaultConnectionPinger.java
PerpetualConnectionPinger.java
Removed: altrmi/src/java/org/apache/commons/altrmi/client/impl
DefaultAltrmiConnectionPinger.java
Log:
Two types of Pinger now. Default (times out 100 seconds after last real connect) and
perpetual.
Revision Changes Path
1.2 +2 -0
jakarta-commons-sandbox/altrmi/src/java/org/apache/commons/altrmi/client/AltrmiClientInvocationHandler.java
Index: AltrmiClientInvocationHandler.java
===================================================================
RCS file:
/home/cvs/jakarta-commons-sandbox/altrmi/src/java/org/apache/commons/altrmi/client/AltrmiClientInvocationHandler.java,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -r1.1 -r1.2
--- AltrmiClientInvocationHandler.java 19 Jan 2002 13:30:18 -0000 1.1
+++ AltrmiClientInvocationHandler.java 19 Jan 2002 15:06:58 -0000 1.2
@@ -34,6 +34,8 @@
void close();
+ long getLastRealRequest();
+
}
1.2 +1 -1
jakarta-commons-sandbox/altrmi/src/java/org/apache/commons/altrmi/client/AltrmiConnectionPinger.java
Index: AltrmiConnectionPinger.java
===================================================================
RCS file:
/home/cvs/jakarta-commons-sandbox/altrmi/src/java/org/apache/commons/altrmi/client/AltrmiConnectionPinger.java,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -r1.1 -r1.2
--- AltrmiConnectionPinger.java 19 Jan 2002 13:30:18 -0000 1.1
+++ AltrmiConnectionPinger.java 19 Jan 2002 15:06:58 -0000 1.2
@@ -18,7 +18,7 @@
*
*
* @author Paul Hammant <a
href="mailto:[EMAIL PROTECTED]">[EMAIL PROTECTED]</a>
- * @version * $Revision: 1.1 $
+ * @version * $Revision: 1.2 $
*/
public interface AltrmiConnectionPinger {
@@ -28,7 +28,7 @@
*
*
*/
- void setAltrmiInvocationHandler(AltrmiInvocationHandler
altrmiInvocationHandler);
+ void setAltrmiInvocationHandler(AltrmiClientInvocationHandler
altrmiInvocationHandler);
/**
* Method start
1.2 +2 -2
jakarta-commons-sandbox/altrmi/src/java/org/apache/commons/altrmi/client/impl/AbstractAltrmiClientInvocationHandler.java
Index: AbstractAltrmiClientInvocationHandler.java
===================================================================
RCS file:
/home/cvs/jakarta-commons-sandbox/altrmi/src/java/org/apache/commons/altrmi/client/impl/AbstractAltrmiClientInvocationHandler.java,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -r1.1 -r1.2
--- AbstractAltrmiClientInvocationHandler.java 19 Jan 2002 13:30:19 -0000
1.1
+++ AbstractAltrmiClientInvocationHandler.java 19 Jan 2002 15:06:58 -0000
1.2
@@ -23,7 +23,7 @@
*
*
* @author Paul Hammant <a
href="mailto:[EMAIL PROTECTED]">[EMAIL PROTECTED]</a>
- * @version $Revision: 1.1 $
+ * @version $Revision: 1.2 $
*/
public abstract class AbstractAltrmiClientInvocationHandler implements
AltrmiInvocationHandler, AltrmiClientInvocationHandler {
@@ -46,7 +46,7 @@
System.out.println(" initializing ");
if (mConnectionPinger == null) {
- mConnectionPinger = new DefaultAltrmiConnectionPinger();
+ mConnectionPinger = new DefaultConnectionPinger();
}
mConnectionPinger.setAltrmiInvocationHandler(this);
mConnectionPinger.start();
1.5 +17 -1
jakarta-commons-sandbox/altrmi/src/java/org/apache/commons/altrmi/client/impl/StreamInvocationHandler.java
Index: StreamInvocationHandler.java
===================================================================
RCS file:
/home/cvs/jakarta-commons-sandbox/altrmi/src/java/org/apache/commons/altrmi/client/impl/StreamInvocationHandler.java,v
retrieving revision 1.4
retrieving revision 1.5
diff -u -r1.4 -r1.5
--- StreamInvocationHandler.java 19 Jan 2002 13:30:19 -0000 1.4
+++ StreamInvocationHandler.java 19 Jan 2002 15:06:58 -0000 1.5
@@ -36,12 +36,13 @@
*
*
* @author Paul Hammant <a
href="mailto:[EMAIL PROTECTED]">[EMAIL PROTECTED]</a>
- * @version $Revision: 1.4 $
+ * @version $Revision: 1.5 $
*/
public abstract class StreamInvocationHandler extends
AbstractAltrmiClientInvocationHandler {
private ClientStreamReadWriter mObjectReadWriter;
private boolean mMethodLogging = false;
+ private long mLastRealRequest = System.currentTimeMillis();
/**
* Method setAltrmiConnectionListener
@@ -74,6 +75,10 @@
*/
public synchronized AltrmiReply handleInvocation(AltrmiRequest request) {
+ if (request.getRequestCode() != AltrmiRequest.PINGREQUEST) {
+ mLastRealRequest = System.currentTimeMillis();
+ }
+
try {
while (true) {
boolean again = true;
@@ -146,5 +151,16 @@
throw new AltrmiInvocationException("Class definition missing on
Deserialization"
+ e.getMessage());
}
+ }
+
+ /**
+ * Method getLastRealRequest
+ *
+ *
+ * @return
+ *
+ */
+ public long getLastRealRequest() {
+ return mLastRealRequest;
}
}
1.1
jakarta-commons-sandbox/altrmi/src/java/org/apache/commons/altrmi/client/impl/DefaultConnectionPinger.java
Index: DefaultConnectionPinger.java
===================================================================
/*
* Copyright (C) The Apache Software Foundation. All rights reserved.
*
* This software is published under the terms of the Apache Software License
* version 1.1, a copy of which has been included with this distribution in
* the LICENSE.txt file.
*/
package org.apache.commons.altrmi.client.impl;
import org.apache.commons.altrmi.client.AltrmiConnectionPinger;
import org.apache.commons.altrmi.client.AltrmiClientInvocationHandler;
import org.apache.commons.altrmi.common.AltrmiReply;
import org.apache.commons.altrmi.common.PingRequest;
/**
* Interface DefaultConnectionPinger
*
*
* @author Paul Hammant <a
href="mailto:[EMAIL PROTECTED]">[EMAIL PROTECTED]</a>
* @version * $Revision: 1.1 $
*/
public class DefaultConnectionPinger implements AltrmiConnectionPinger, Runnable {
private AltrmiClientInvocationHandler mAltrmiInvocationHandler;
private boolean mContinue = true;
private Thread mThread;
/**
* Method setAltrmiInvocationHandler
*
*
*
*/
public void setAltrmiInvocationHandler(AltrmiClientInvocationHandler
altrmiInvocationHandler) {
mAltrmiInvocationHandler = altrmiInvocationHandler;
}
/**
* Method start
*
*
*/
public void start() {
mThread = new Thread(this);
mThread.start();
}
public void stop() {
mContinue = false;
}
/**
* Method run
*
*
*/
public void run() {
try {
while (mContinue) {
Thread.sleep(10 * 1000);
if ( mAltrmiInvocationHandler.getLastRealRequest() >
(System.currentTimeMillis() - (100 * 1000))) {
AltrmiReply ar = mAltrmiInvocationHandler.handleInvocation(new
PingRequest());
} else {
// if more than 100 seconds since last request, stop pinging
// Let the server do a disconnect according to its rules.
}
}
} catch (InterruptedException e) {
// do nothing.
}
}
}
1.1
jakarta-commons-sandbox/altrmi/src/java/org/apache/commons/altrmi/client/impl/PerpetualConnectionPinger.java
Index: PerpetualConnectionPinger.java
===================================================================
/*
* Copyright (C) The Apache Software Foundation. All rights reserved.
*
* This software is published under the terms of the Apache Software License
* version 1.1, a copy of which has been included with this distribution in
* the LICENSE.txt file.
*/
package org.apache.commons.altrmi.client.impl;
import org.apache.commons.altrmi.client.AltrmiConnectionPinger;
import org.apache.commons.altrmi.client.AltrmiClientInvocationHandler;
import org.apache.commons.altrmi.common.AltrmiReply;
import org.apache.commons.altrmi.common.PingRequest;
/**
* Interface PerpetualConnectionPinger
*
* Pings every ten seconds.
*
*
* @author Paul Hammant <a
href="mailto:[EMAIL PROTECTED]">[EMAIL PROTECTED]</a>
* @version * $Revision: 1.1 $
*/
public class PerpetualConnectionPinger implements AltrmiConnectionPinger, Runnable {
private AltrmiClientInvocationHandler mAltrmiInvocationHandler;
private boolean mContinue = true;
private Thread mThread;
/**
* Method setAltrmiInvocationHandler
*
*
*
*/
public void setAltrmiInvocationHandler(AltrmiClientInvocationHandler
altrmiInvocationHandler) {
mAltrmiInvocationHandler = altrmiInvocationHandler;
}
/**
* Method start
*
*
*/
public void start() {
mThread = new Thread(this);
mThread.start();
}
public void stop() {
mContinue = false;
}
/**
* Method run
*
*
*/
public void run() {
try {
while (mContinue) {
Thread.sleep(10 * 1000);
AltrmiReply ar = mAltrmiInvocationHandler.handleInvocation(new
PingRequest());
}
} catch (InterruptedException e) {
// do nothing.
}
}
}
1.4 +19 -1
jakarta-commons-sandbox/altrmi/src/java/org/apache/commons/altrmi/client/impl/direct/DirectInvocationHandler.java
Index: DirectInvocationHandler.java
===================================================================
RCS file:
/home/cvs/jakarta-commons-sandbox/altrmi/src/java/org/apache/commons/altrmi/client/impl/direct/DirectInvocationHandler.java,v
retrieving revision 1.3
retrieving revision 1.4
diff -u -r1.3 -r1.4
--- DirectInvocationHandler.java 19 Jan 2002 13:30:19 -0000 1.3
+++ DirectInvocationHandler.java 19 Jan 2002 15:06:58 -0000 1.4
@@ -33,12 +33,14 @@
*
*
* @author Paul Hammant <a
href="mailto:[EMAIL PROTECTED]">[EMAIL PROTECTED]</a>
- * @version $Revision: 1.3 $
+ * @version $Revision: 1.4 $
*/
public final class DirectInvocationHandler extends
AbstractAltrmiClientInvocationHandler {
private AltrmiInvocationHandler mAltrmiInvocationHandler;
private boolean mMethodLogging = false;
+ private long mLastRealRequest = System.currentTimeMillis();
+
/**
* Constructor DirectInvocationHandler
@@ -80,6 +82,10 @@
*/
public AltrmiReply handleInvocation(AltrmiRequest request) {
+ if (request.getRequestCode() != AltrmiRequest.PINGREQUEST) {
+ mLastRealRequest = System.currentTimeMillis();
+ }
+
boolean again = true;
AltrmiReply reply = null;
int tries = 0;
@@ -130,4 +136,16 @@
// blimey how do we reconnect this?
throw new AltrmiInvocationException("Direct connection broken, unable to
reconnect.");
}
+
+ /**
+ * Method getLastRealRequest
+ *
+ *
+ * @return
+ *
+ */
+ public long getLastRealRequest() {
+ return mLastRealRequest;
+ }
+
}
1.4 +17 -2
jakarta-commons-sandbox/altrmi/src/java/org/apache/commons/altrmi/client/impl/rmi/RmiInvocationHandler.java
Index: RmiInvocationHandler.java
===================================================================
RCS file:
/home/cvs/jakarta-commons-sandbox/altrmi/src/java/org/apache/commons/altrmi/client/impl/rmi/RmiInvocationHandler.java,v
retrieving revision 1.3
retrieving revision 1.4
diff -u -r1.3 -r1.4
--- RmiInvocationHandler.java 19 Jan 2002 13:30:19 -0000 1.3
+++ RmiInvocationHandler.java 19 Jan 2002 15:06:58 -0000 1.4
@@ -41,13 +41,14 @@
*
*
* @author Paul Hammant <a
href="mailto:[EMAIL PROTECTED]">[EMAIL PROTECTED]</a>
- * @version $Revision: 1.3 $
+ * @version $Revision: 1.4 $
*/
public final class RmiInvocationHandler extends
AbstractAltrmiClientInvocationHandler {
private RmiAltrmiInvocationHandler mRmiAltrmiInvocationHandler;
private String mURL;
private boolean mMethodLogging = false;
+ private long mLastRealRequest = System.currentTimeMillis();
/**
* Constructor RmiInvocationHandler
@@ -76,7 +77,6 @@
}
}
-
/**
* Method setAltrmiConnectionListener
*
@@ -119,6 +119,10 @@
*/
public synchronized AltrmiReply handleInvocation(AltrmiRequest request) {
+ if (request.getRequestCode() != AltrmiRequest.PINGREQUEST) {
+ mLastRealRequest = System.currentTimeMillis();
+ }
+
boolean again = true;
AltrmiReply reply = null;
int tries = 0;
@@ -179,5 +183,16 @@
}
return reply;
+ }
+
+ /**
+ * Method getLastRealRequest
+ *
+ *
+ * @return
+ *
+ */
+ public long getLastRealRequest() {
+ return mLastRealRequest;
}
}
1.5 +2 -2
jakarta-commons-sandbox/altrmi/src/java/org/apache/commons/altrmi/server/impl/StreamServerConnection.java
Index: StreamServerConnection.java
===================================================================
RCS file:
/home/cvs/jakarta-commons-sandbox/altrmi/src/java/org/apache/commons/altrmi/server/impl/StreamServerConnection.java,v
retrieving revision 1.4
retrieving revision 1.5
diff -u -r1.4 -r1.5
--- StreamServerConnection.java 19 Jan 2002 14:00:57 -0000 1.4
+++ StreamServerConnection.java 19 Jan 2002 15:06:58 -0000 1.5
@@ -30,7 +30,7 @@
*
*
* @author Paul Hammant <a
href="mailto:[EMAIL PROTECTED]">[EMAIL PROTECTED]</a>
- * @version $Revision: 1.4 $
+ * @version $Revision: 1.5 $
*/
public abstract class StreamServerConnection implements Runnable,
AltrmiServerConnection {
@@ -85,7 +85,7 @@
}
} catch (IOException ioe) {
more = false;
- if (ioe instanceof SocketException) {
+ if (ioe instanceof SocketException |
ioe.getClass().getName().equals("java.net.SocketTimeoutException")) {
// TODO implement implementation indepandant logger
System.out.println("One Connection closed.");
} else {
1.8 +3 -1
jakarta-commons-sandbox/altrmi/src/java/org/apache/commons/altrmi/test/SocketClientTest.java
Index: SocketClientTest.java
===================================================================
RCS file:
/home/cvs/jakarta-commons-sandbox/altrmi/src/java/org/apache/commons/altrmi/test/SocketClientTest.java,v
retrieving revision 1.7
retrieving revision 1.8
diff -u -r1.7 -r1.8
--- SocketClientTest.java 19 Jan 2002 13:30:19 -0000 1.7
+++ SocketClientTest.java 19 Jan 2002 15:06:58 -0000 1.8
@@ -26,7 +26,7 @@
*
*
* @author Paul Hammant <a
href="mailto:[EMAIL PROTECTED]">[EMAIL PROTECTED]</a>
- * @version $Revision: 1.7 $
+ * @version $Revision: 1.8 $
*/
public class SocketClientTest {
@@ -70,6 +70,8 @@
new TestClient(ti);
+ Thread.sleep(200 * 1000);
+ System.out.println("closed after200");
af.close();
}
--
To unsubscribe, e-mail: <mailto:[EMAIL PROTECTED]>
For additional commands, e-mail: <mailto:[EMAIL PROTECTED]>