org.jgroups.blocks
Class ConnectionTableNIO
java.lang.Object
org.jgroups.blocks.ConnectionTable
org.jgroups.blocks.ConnectionTableNIO
- All Implemented Interfaces:
- java.lang.Runnable
public class ConnectionTableNIO
- extends ConnectionTable
- implements java.lang.Runnable
Manages incoming and outgoing TCP connections. For each outgoing message to destination P, if there
is not yet a connection for P, one will be created. Subsequent outgoing messages will use this
connection. For incoming messages, one server socket is created at startup. For each new incoming
client connecting, a new thread from a thread pool is allocated and listens for incoming messages
until the socket is closed by the peer.
Sockets/threads with no activity will be killed
after some time.
Incoming messages from any of the sockets can be received by setting the message listener.
- Author:
- Bela Ban, Scott Marlow, Alex Fu
Field Summary |
protected static org.apache.commons.logging.Log |
LOG
|
Constructor Summary |
ConnectionTableNIO(ConnectionTable.Receiver r,
java.net.InetAddress bind_addr,
java.net.InetAddress external_addr,
int srv_port,
int max_port)
|
ConnectionTableNIO(ConnectionTable.Receiver r,
java.net.InetAddress bind_addr,
java.net.InetAddress external_addr,
int srv_port,
int max_port,
long reaper_interval,
long conn_expire_time)
|
ConnectionTableNIO(int srv_port)
|
ConnectionTableNIO(int srv_port,
long reaper_interval,
long conn_expire_time)
|
Method Summary |
protected java.net.ServerSocket |
createServerSocket(int start_port,
int end_port)
Finds first available port starting at start_port and returns server socket. |
protected void |
init()
|
void |
run()
Acceptor thread. |
void |
stop()
Closes all open sockets, the server socket and all threads waiting for incoming messages |
Methods inherited from class org.jgroups.blocks.ConnectionTable |
addConnectionListener, getLocalAddress, getNumConnections, getReceiveBufferSize, getSendBufferSize, getSocketConnectionTimeout, getUseSendQueues, receive, remove, removeConnectionListener, send, setReceiveBufferSize, setReceiver, setSendBufferSize, setSocketConnectionTimeout, setUseSendQueues, start, toString |
Methods inherited from class java.lang.Object |
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait |
LOG
protected static final org.apache.commons.logging.Log LOG
ConnectionTableNIO
public ConnectionTableNIO(int srv_port)
throws java.lang.Exception
- Parameters:
srv_port
-
- Throws:
java.lang.Exception
ConnectionTableNIO
public ConnectionTableNIO(int srv_port,
long reaper_interval,
long conn_expire_time)
throws java.lang.Exception
- Parameters:
srv_port
- reaper_interval
- conn_expire_time
-
- Throws:
java.lang.Exception
ConnectionTableNIO
public ConnectionTableNIO(ConnectionTable.Receiver r,
java.net.InetAddress bind_addr,
java.net.InetAddress external_addr,
int srv_port,
int max_port)
throws java.lang.Exception
- Parameters:
r
- bind_addr
- external_addr
- srv_port
- max_port
-
- Throws:
java.lang.Exception
ConnectionTableNIO
public ConnectionTableNIO(ConnectionTable.Receiver r,
java.net.InetAddress bind_addr,
java.net.InetAddress external_addr,
int srv_port,
int max_port,
long reaper_interval,
long conn_expire_time)
throws java.lang.Exception
- Parameters:
r
- bind_addr
- external_addr
- srv_port
- max_port
- reaper_interval
- conn_expire_time
-
- Throws:
java.lang.Exception
init
protected void init()
throws java.lang.Exception
- Overrides:
init
in class ConnectionTable
- Throws:
java.lang.Exception
stop
public void stop()
- Closes all open sockets, the server socket and all threads waiting for incoming messages
- Overrides:
stop
in class ConnectionTable
run
public void run()
- Acceptor thread. Continuously accept new connections and assign readhandler/writehandler
to them.
- Specified by:
run
in interface java.lang.Runnable
- Overrides:
run
in class ConnectionTable
createServerSocket
protected java.net.ServerSocket createServerSocket(int start_port,
int end_port)
throws java.lang.Exception
- Finds first available port starting at start_port and returns server socket. Sets srv_port
- Overrides:
createServerSocket
in class ConnectionTable
- Throws:
java.lang.Exception
Copyright ? 1998-2005 Bela Ban. All Rights Reserved.