Class GossipRouter
This class is especially interesting for applets which cannot directly make connections (neither UDP nor TCP) to a host different from the one they were loaded from. Therefore, an applet would create a normal channel plus protocol stack, but the bottom layer would have to be the TCP layer which sends all packets point-to-point (over a TCP connection) to the router, which in turn forwards them to their end location(s) (also over TCP). A centralized router would therefore have to be running on the host the applet was loaded from.
An alternative for running JGroups in an applet (IP multicast is not allows in applets as of 1.2), is to use point-to-point UDP communication via the gossip server. However, then the appplet has to be signed which involves additional administrative effort on the part of the user.
- Since:
- 2.1.1
- Version:
- $Id: GossipRouter.java,v 1.26.2.9 2009/02/12 20:05:54 vlada Exp $
- Author:
- Bela Ban, Ovidiu Feodorov invalid input: '<'ovidiuf@users.sourceforge.net>
-
Field Summary
FieldsModifier and TypeFieldDescriptionstatic final byte
protected ThreadFactory
static final byte
static final byte
static final long
static final byte
static final byte
static final long
protected final org.apache.commons.logging.Log
static final int
static final byte
static final byte
static final long
static final byte
protected ExecutorService
protected boolean
protected long
protected int
protected int
protected BlockingQueue
<Runnable> protected boolean
protected int
protected String
protected Timer
static final byte
-
Constructor Summary
ConstructorsConstructorDescriptionGossipRouter
(int port) GossipRouter
(int port, String bindAddressString) GossipRouter
(int port, String bindAddressString, long expiryTime) GossipRouter
(int port, String bindAddressString, long expiryTime, long gossipRequestTimeout, long routingClientReplyTimeout) Creates a gossip router on a given port bound to a specified interface and an expiry time (in msecs) until a cached 'gossip' member entry expires. -
Method Summary
Modifier and TypeMethodDescriptionvoid
create()
JBoss MBean lifecycle operation.protected ExecutorService
createThreadPool
(int min_threads, int max_threads, long keep_alive_time, String rejection_policy, BlockingQueue<Runnable> queue, ThreadFactory factory) void
destroy()
JBoss MBean lifecycle operation.int
long
long
Deprecated.long
int
getPort()
long
Deprecated.long
long
int
int
int
boolean
boolean
boolean
boolean
static void
void
setBacklog
(int backlog) void
setBindAddress
(String bindAddress) void
void
setDiscardLoopbacks
(boolean discard_loopbacks) void
setExpiryTime
(long expiryTime) void
setGossipRequestTimeout
(long gossipRequestTimeout) Deprecated.void
setLingerTimeout
(long linger_timeout) void
setPort
(int port) void
setRoutingClientReplyTimeout
(long routingClientReplyTimeout) Deprecated.void
setSocketReadTimeout
(long sock_read_timeout) void
setThreadPoolEnabled
(boolean thread_pool_enabled) void
setThreadPoolKeepAliveTime
(long thread_pool_keep_alive_time) void
setThreadPoolMaxThreads
(int thread_pool_max_threads) void
setThreadPoolMinThreads
(int thread_pool_min_threads) void
setThreadPoolQueueEnabled
(boolean thread_pool_queue_enabled) void
setThreadPoolQueueMaxSize
(int thread_pool_queue_max_size) void
setThreadPoolRejectionPolicy
(String thread_pool_rejection_policy) void
start()
JBoss MBean lifecycle operation.void
stop()
JBoss MBean lifecycle operation.static String
type2String
(int type)
-
Field Details
-
CONNECT
public static final byte CONNECT- See Also:
-
DISCONNECT
public static final byte DISCONNECT- See Also:
-
REGISTER
public static final byte REGISTER- See Also:
-
GOSSIP_GET
public static final byte GOSSIP_GET- See Also:
-
ROUTER_GET
public static final byte ROUTER_GET- See Also:
-
GET_RSP
public static final byte GET_RSP- See Also:
-
UNREGISTER
public static final byte UNREGISTER- See Also:
-
DUMP
public static final byte DUMP- See Also:
-
SHUTDOWN
public static final byte SHUTDOWN- See Also:
-
PORT
public static final int PORT- See Also:
-
EXPIRY_TIME
public static final long EXPIRY_TIME- See Also:
-
GOSSIP_REQUEST_TIMEOUT
public static final long GOSSIP_REQUEST_TIMEOUT- See Also:
-
ROUTING_CLIENT_REPLY_TIMEOUT
public static final long ROUTING_CLIENT_REPLY_TIMEOUT- See Also:
-
thread_pool_min_threads
protected int thread_pool_min_threads -
thread_pool_max_threads
protected int thread_pool_max_threads -
thread_pool_keep_alive_time
protected long thread_pool_keep_alive_time -
thread_pool_enabled
protected boolean thread_pool_enabled -
thread_pool_queue_enabled
protected boolean thread_pool_queue_enabled -
thread_pool_queue_max_size
protected int thread_pool_queue_max_size -
thread_pool_rejection_policy
-
thread_pool
-
thread_pool_queue
-
default_thread_factory
-
timer
-
log
protected final org.apache.commons.logging.Log log
-
-
Constructor Details
-
GossipRouter
public GossipRouter() -
GossipRouter
public GossipRouter(int port) -
GossipRouter
-
GossipRouter
-
GossipRouter
public GossipRouter(int port, String bindAddressString, long expiryTime, long gossipRequestTimeout, long routingClientReplyTimeout) Creates a gossip router on a given port bound to a specified interface and an expiry time (in msecs) until a cached 'gossip' member entry expires.Remaining two parameters are deprecated and not used.
- Parameters:
port
-bindAddressString
-expiryTime
-gossipRequestTimeout
-routingClientReplyTimeout
-
-
-
Method Details
-
setPort
public void setPort(int port) -
getPort
public int getPort() -
setBindAddress
-
getBindAddress
-
getBacklog
public int getBacklog() -
setBacklog
public void setBacklog(int backlog) -
setExpiryTime
public void setExpiryTime(long expiryTime) -
getExpiryTime
public long getExpiryTime() -
setGossipRequestTimeout
Deprecated. -
getGossipRequestTimeout
Deprecated. -
setRoutingClientReplyTimeout
Deprecated. -
getRoutingClientReplyTimeout
Deprecated. -
isStarted
public boolean isStarted() -
isDiscardLoopbacks
public boolean isDiscardLoopbacks() -
setDiscardLoopbacks
public void setDiscardLoopbacks(boolean discard_loopbacks) -
getLingerTimeout
public long getLingerTimeout() -
setLingerTimeout
public void setLingerTimeout(long linger_timeout) -
getSocketReadTimeout
public long getSocketReadTimeout() -
setSocketReadTimeout
public void setSocketReadTimeout(long sock_read_timeout) -
getDefaultThreadPoolThreadFactory
-
setDefaultThreadPoolThreadFactory
-
getThreadPoolMinThreads
public int getThreadPoolMinThreads() -
setThreadPoolMinThreads
public void setThreadPoolMinThreads(int thread_pool_min_threads) -
getThreadPoolMaxThreads
public int getThreadPoolMaxThreads() -
setThreadPoolMaxThreads
public void setThreadPoolMaxThreads(int thread_pool_max_threads) -
getThreadPoolKeepAliveTime
public long getThreadPoolKeepAliveTime() -
setThreadPoolKeepAliveTime
public void setThreadPoolKeepAliveTime(long thread_pool_keep_alive_time) -
isThreadPoolEnabled
public boolean isThreadPoolEnabled() -
setThreadPoolEnabled
public void setThreadPoolEnabled(boolean thread_pool_enabled) -
isThreadPoolQueueEnabled
public boolean isThreadPoolQueueEnabled() -
setThreadPoolQueueEnabled
public void setThreadPoolQueueEnabled(boolean thread_pool_queue_enabled) -
getThreadPoolQueueMaxSize
public int getThreadPoolQueueMaxSize() -
setThreadPoolQueueMaxSize
public void setThreadPoolQueueMaxSize(int thread_pool_queue_max_size) -
getThreadPoolRejectionPolicy
-
setThreadPoolRejectionPolicy
-
type2String
-
create
JBoss MBean lifecycle operation.- Throws:
Exception
-
start
JBoss MBean lifecycle operation. Called after create(). When this method is called, the managed attributes have already been set.
Brings the Router in fully functional state.- Throws:
Exception
-
stop
public void stop()JBoss MBean lifecycle operation. The JMX agent allways calls this method before destroy(). Close connections and frees resources. -
destroy
public void destroy()JBoss MBean lifecycle operation. -
dumpRoutingTable
-
createThreadPool
protected ExecutorService createThreadPool(int min_threads, int max_threads, long keep_alive_time, String rejection_policy, BlockingQueue<Runnable> queue, ThreadFactory factory) -
main
- Throws:
Exception
-