org.jboss.remoting.transport.socket
Class ServerThread
java.lang.Object
java.lang.Thread
org.jboss.remoting.transport.socket.ServerThread
- All Implemented Interfaces:
- java.lang.Runnable
- public class ServerThread
- extends java.lang.Thread
This Thread object hold a single Socket connection to a client
and is kept alive until a timeout happens, or it is aged out of the
SocketServerInvoker's LRU cache.
There is also a separate thread pool that is used if the client disconnects.
This thread/object is re-used in that scenario and that scenario only.
This is a customization of the same ServerThread class used witht the PookedInvoker.
The custimization was made to allow for remoting marshaller/unmarshaller.
- Version:
- $Revision: 1.21 $
- Author:
- Bill Burke, Tom Elrod
Fields inherited from class java.lang.Thread |
MAX_PRIORITY, MIN_PRIORITY, NORM_PRIORITY |
Method Summary |
protected void |
acknowledge()
|
protected void |
dorun()
This is needed because Object*Streams leak |
void |
evict()
|
boolean |
getCheckingConnection()
Indicates if server will check with client (via an ACK) to
see if is still there. |
static int |
nextID()
|
protected void |
processInvocation()
|
void |
run()
|
void |
shouldCheckConnection(boolean checkConnection)
Sets if server thread should check connection before continue to process on
next invocation request. |
void |
shutdown()
|
void |
wakeup(java.net.Socket socket,
int timeout,
java.util.Map metadata)
|
Methods inherited from class java.lang.Thread |
activeCount, checkAccess, countStackFrames, currentThread, destroy, dumpStack, enumerate, getContextClassLoader, getName, getPriority, getThreadGroup, holdsLock, interrupt, interrupted, isAlive, isDaemon, isInterrupted, join, join, join, resume, setContextClassLoader, setDaemon, setName, setPriority, sleep, sleep, start, stop, stop, suspend, toString, yield |
Methods inherited from class java.lang.Object |
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait |
invoker
protected SocketServerInvoker invoker
clientpool
protected LRUPool clientpool
threadpool
protected java.util.LinkedList threadpool
running
protected volatile boolean running
handlingResponse
protected volatile boolean handlingResponse
shutdown
protected volatile boolean shutdown
id
protected static int id
serverSocketClass
protected java.lang.String serverSocketClass
ServerThread
public ServerThread(java.net.Socket socket,
SocketServerInvoker invoker,
LRUPool clientpool,
java.util.LinkedList threadpool,
int timeout,
java.lang.String serverSocketClass)
throws java.lang.Exception
nextID
public static int nextID()
shutdown
public void shutdown()
shouldCheckConnection
public void shouldCheckConnection(boolean checkConnection)
- Sets if server thread should check connection before continue to process on
next invocation request. If is set to true, will send an ACK to client to
verify client is still connected on same socket.
- Parameters:
checkConnection
-
getCheckingConnection
public boolean getCheckingConnection()
- Indicates if server will check with client (via an ACK) to
see if is still there.
- Returns:
evict
public void evict()
wakeup
public void wakeup(java.net.Socket socket,
int timeout,
java.util.Map metadata)
throws java.lang.Exception
- Throws:
java.lang.Exception
run
public void run()
acknowledge
protected void acknowledge()
throws java.lang.Exception
- Throws:
java.lang.Exception
processInvocation
protected void processInvocation()
throws java.lang.Exception
- Throws:
java.lang.Exception
dorun
protected void dorun()
- This is needed because Object*Streams leak
Copyright ? 1998-2005 JBoss Inc . All Rights Reserved.