org.jgroups.blocks

Class ConnectionTableNIO

public class ConnectionTableNIO extends ConnectionTable implements 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

Nested Class Summary
static classConnectionTableNIO.SelectorWriteHandler
static classConnectionTableNIO.WriteRequest
Field Summary
protected static LogLOG
Constructor Summary
ConnectionTableNIO(int srv_port)
ConnectionTableNIO(int srv_port, long reaper_interval, long conn_expire_time)
ConnectionTableNIO(Receiver r, InetAddress bind_addr, InetAddress external_addr, int srv_port, int max_port)
ConnectionTableNIO(Receiver r, InetAddress bind_addr, InetAddress external_addr, int srv_port, int max_port, long reaper_interval, long conn_expire_time)
Method Summary
protected ServerSocketcreateServerSocket(int start_port, int end_port)
Finds first available port starting at start_port and returns server socket.
protected voidinit()
voidrun()
Acceptor thread.
voidstop()
Closes all open sockets, the server socket and all threads waiting for incoming messages

Field Detail

LOG

protected static final Log LOG

Constructor Detail

ConnectionTableNIO

public ConnectionTableNIO(int srv_port)

Parameters: srv_port

Throws: Exception

ConnectionTableNIO

public ConnectionTableNIO(int srv_port, long reaper_interval, long conn_expire_time)

Parameters: srv_port reaper_interval conn_expire_time

Throws: Exception

ConnectionTableNIO

public ConnectionTableNIO(Receiver r, InetAddress bind_addr, InetAddress external_addr, int srv_port, int max_port)

Parameters: r bind_addr external_addr srv_port max_port

Throws: Exception

ConnectionTableNIO

public ConnectionTableNIO(Receiver r, InetAddress bind_addr, InetAddress external_addr, int srv_port, int max_port, long reaper_interval, long conn_expire_time)

Parameters: r bind_addr external_addr srv_port max_port reaper_interval conn_expire_time

Throws: Exception

Method Detail

createServerSocket

protected ServerSocket createServerSocket(int start_port, int end_port)
Finds first available port starting at start_port and returns server socket. Sets srv_port

init

protected void init()

run

public void run()
Acceptor thread. Continuously accept new connections and assign readhandler/writehandler to them.

stop

public void stop()
Closes all open sockets, the server socket and all threads waiting for incoming messages
Copyright ? 1998-2005 Bela Ban. All Rights Reserved.