Class ReceiverBase
- java.lang.Object
-
- org.apache.catalina.tribes.transport.ReceiverBase
-
- All Implemented Interfaces:
ChannelReceiver
,Heartbeat
,ListenCallback
,RxTaskPool.TaskCreator
- Direct Known Subclasses:
NioReceiver
public abstract class ReceiverBase extends java.lang.Object implements ChannelReceiver, ListenCallback, RxTaskPool.TaskCreator
-
-
Field Summary
Fields Modifier and Type Field Description static int
OPTION_DIRECT_BUFFER
protected static StringManager
sm
-
Fields inherited from interface org.apache.catalina.tribes.ChannelReceiver
MAX_UDP_SIZE
-
-
Constructor Summary
Constructors Constructor Description ReceiverBase()
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description protected void
bind(java.net.ServerSocket socket, int portstart, int retries)
Attempts to bind using the provided port and if that fails attempts to bind to each of the ports from portstart to (portstart + retries -1) until either there are no more ports or the bind is successful.protected int
bindUdp(java.net.DatagramSocket socket, int portstart, int retries)
Same as bind() except it does it for the UDP portboolean
doListen()
int
getActiveCount()
Return the current number of threads that are in use.java.lang.String
getAddress()
int
getAutoBind()
java.net.InetAddress
getBind()
Channel
getChannel()
Return the channel that is related to this ChannelReceiverlong
getCompletedTaskCount()
Return the total number of tasks that have completed execution by the pool.boolean
getDirect()
java.util.concurrent.ExecutorService
getExecutor()
java.lang.String
getHost()
String representation of the IPv4 or IPv6 address that this host is listening to.MessageListener
getListener()
long
getMaxIdleTime()
int
getMaxTasks()
int
getMaxThreads()
MessageListener
getMessageListener()
getMessageListenerint
getMinTasks()
int
getMinThreads()
boolean
getOoBInline()
int
getPoolSize()
Return the current number of threads that are managed by the pool.int
getPort()
Returns the listening portint
getRxBufSize()
int
getSecurePort()
Returns the secure listening portlong
getSelectorTimeout()
boolean
getSoKeepAlive()
boolean
getSoLingerOn()
int
getSoLingerTime()
boolean
getSoReuseAddress()
int
getSoTrafficClass()
long
getTaskCount()
Return the total number of tasks that have ever been scheduled for execution by the pool.RxTaskPool
getTaskPool()
boolean
getTcpNoDelay()
int
getTimeout()
int
getTxBufSize()
int
getUdpPort()
Returns the UDP portint
getUdpRxBufSize()
int
getUdpTxBufSize()
boolean
getUseBufferPool()
int
getWorkerThreadOptions()
void
heartbeat()
Heartbeat invocation for resources cleanup etcboolean
isDaemon()
boolean
isListening()
void
messageDataReceived(ChannelMessage data)
This method is invoked on the callback object to notify it that new data has been received from one of the cluster nodes.void
setAddress(java.lang.String host)
void
setAutoBind(int autoBind)
void
setBind(java.net.InetAddress bind)
void
setChannel(Channel channel)
Set the channel that is related to this ChannelReceivervoid
setDaemon(boolean daemon)
void
setDirect(boolean direct)
void
setExecutor(java.util.concurrent.ExecutorService executor)
void
setHost(java.lang.String host)
void
setListen(boolean doListen)
void
setListener(MessageListener listener)
void
setMaxIdleTime(long maxIdleTime)
void
setMaxTasks(int maxTasks)
void
setMaxThreads(int maxThreads)
void
setMessageListener(MessageListener listener)
setMessageListenervoid
setMinTasks(int minTasks)
void
setMinThreads(int minThreads)
void
setOoBInline(boolean ooBInline)
void
setPool(RxTaskPool pool)
void
setPort(int port)
void
setRxBufSize(int rxBufSize)
void
setSecurePort(int securePort)
void
setSelectorTimeout(long selTimeout)
void
setSoKeepAlive(boolean soKeepAlive)
void
setSoLingerOn(boolean soLingerOn)
void
setSoLingerTime(int soLingerTime)
void
setSoReuseAddress(boolean soReuseAddress)
void
setSoTrafficClass(int soTrafficClass)
void
setTcpNoDelay(boolean tcpNoDelay)
void
setTimeout(int timeout)
void
setTxBufSize(int txBufSize)
void
setUdpPort(int udpPort)
void
setUdpRxBufSize(int udpRxBufSize)
void
setUdpTxBufSize(int udpTxBufSize)
void
setUseBufferPool(boolean useBufferPool)
void
start()
Start listening for incoming messages on the host/portvoid
stop()
Stop listening for messages-
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
-
Methods inherited from interface org.apache.catalina.tribes.transport.RxTaskPool.TaskCreator
createRxTask
-
-
-
-
Field Detail
-
OPTION_DIRECT_BUFFER
public static final int OPTION_DIRECT_BUFFER
- See Also:
- Constant Field Values
-
sm
protected static final StringManager sm
-
-
Method Detail
-
start
public void start() throws java.io.IOException
Description copied from interface:ChannelReceiver
Start listening for incoming messages on the host/port- Specified by:
start
in interfaceChannelReceiver
- Throws:
java.io.IOException
- Listen failed
-
stop
public void stop()
Description copied from interface:ChannelReceiver
Stop listening for messages- Specified by:
stop
in interfaceChannelReceiver
-
getMessageListener
public MessageListener getMessageListener()
getMessageListener- Specified by:
getMessageListener
in interfaceChannelReceiver
- Returns:
- MessageListener
- See Also:
MessageListener
-
getPort
public int getPort()
Description copied from interface:ChannelReceiver
Returns the listening port- Specified by:
getPort
in interfaceChannelReceiver
- Returns:
- The port
-
getRxBufSize
public int getRxBufSize()
-
getTxBufSize
public int getTxBufSize()
-
setMessageListener
public void setMessageListener(MessageListener listener)
setMessageListener- Specified by:
setMessageListener
in interfaceChannelReceiver
- Parameters:
listener
- MessageListener- See Also:
MessageListener
-
setRxBufSize
public void setRxBufSize(int rxBufSize)
-
setTxBufSize
public void setTxBufSize(int txBufSize)
-
getBind
public java.net.InetAddress getBind()
- Returns:
- Returns the bind.
-
bind
protected void bind(java.net.ServerSocket socket, int portstart, int retries) throws java.io.IOException
Attempts to bind using the provided port and if that fails attempts to bind to each of the ports from portstart to (portstart + retries -1) until either there are no more ports or the bind is successful. The address to bind to is obtained via a call to {linkgetBind()
.- Parameters:
socket
- The socket to bindportstart
- Starting port for bind attemptsretries
- Number of times to attempt to bind (port incremented between attempts)- Throws:
java.io.IOException
- Socket bind error
-
bindUdp
protected int bindUdp(java.net.DatagramSocket socket, int portstart, int retries) throws java.io.IOException
Same as bind() except it does it for the UDP port- Parameters:
socket
- The socket to bindportstart
- Starting port for bind attemptsretries
- Number of times to attempt to bind (port incremented between attempts)- Returns:
- int The retry count
- Throws:
java.io.IOException
- Socket bind error
-
messageDataReceived
public void messageDataReceived(ChannelMessage data)
Description copied from interface:ListenCallback
This method is invoked on the callback object to notify it that new data has been received from one of the cluster nodes.- Specified by:
messageDataReceived
in interfaceListenCallback
- Parameters:
data
- - the message bytes received from the cluster/replication system
-
getWorkerThreadOptions
public int getWorkerThreadOptions()
-
setBind
public void setBind(java.net.InetAddress bind)
- Parameters:
bind
- The bind to set.
-
getDirect
public boolean getDirect()
-
setDirect
public void setDirect(boolean direct)
-
getAddress
public java.lang.String getAddress()
-
getHost
public java.lang.String getHost()
Description copied from interface:ChannelReceiver
String representation of the IPv4 or IPv6 address that this host is listening to.- Specified by:
getHost
in interfaceChannelReceiver
- Returns:
- the host that this receiver is listening to
-
getSelectorTimeout
public long getSelectorTimeout()
-
doListen
public boolean doListen()
-
getListener
public MessageListener getListener()
-
getTaskPool
public RxTaskPool getTaskPool()
-
getAutoBind
public int getAutoBind()
-
getMaxThreads
public int getMaxThreads()
-
getMinThreads
public int getMinThreads()
-
getTcpNoDelay
public boolean getTcpNoDelay()
-
getSoKeepAlive
public boolean getSoKeepAlive()
-
getOoBInline
public boolean getOoBInline()
-
getSoLingerOn
public boolean getSoLingerOn()
-
getSoLingerTime
public int getSoLingerTime()
-
getSoReuseAddress
public boolean getSoReuseAddress()
-
getSoTrafficClass
public int getSoTrafficClass()
-
getTimeout
public int getTimeout()
-
getUseBufferPool
public boolean getUseBufferPool()
-
getSecurePort
public int getSecurePort()
Description copied from interface:ChannelReceiver
Returns the secure listening port- Specified by:
getSecurePort
in interfaceChannelReceiver
- Returns:
- port, -1 if a secure port is not activated
-
getMinTasks
public int getMinTasks()
-
getMaxTasks
public int getMaxTasks()
-
getExecutor
public java.util.concurrent.ExecutorService getExecutor()
-
isListening
public boolean isListening()
-
setSelectorTimeout
public void setSelectorTimeout(long selTimeout)
-
setListen
public void setListen(boolean doListen)
-
setAddress
public void setAddress(java.lang.String host)
-
setHost
public void setHost(java.lang.String host)
-
setListener
public void setListener(MessageListener listener)
-
setPool
public void setPool(RxTaskPool pool)
-
setPort
public void setPort(int port)
-
setAutoBind
public void setAutoBind(int autoBind)
-
setMaxThreads
public void setMaxThreads(int maxThreads)
-
setMinThreads
public void setMinThreads(int minThreads)
-
setTcpNoDelay
public void setTcpNoDelay(boolean tcpNoDelay)
-
setSoKeepAlive
public void setSoKeepAlive(boolean soKeepAlive)
-
setOoBInline
public void setOoBInline(boolean ooBInline)
-
setSoLingerOn
public void setSoLingerOn(boolean soLingerOn)
-
setSoLingerTime
public void setSoLingerTime(int soLingerTime)
-
setSoReuseAddress
public void setSoReuseAddress(boolean soReuseAddress)
-
setSoTrafficClass
public void setSoTrafficClass(int soTrafficClass)
-
setTimeout
public void setTimeout(int timeout)
-
setUseBufferPool
public void setUseBufferPool(boolean useBufferPool)
-
setSecurePort
public void setSecurePort(int securePort)
-
setMinTasks
public void setMinTasks(int minTasks)
-
setMaxTasks
public void setMaxTasks(int maxTasks)
-
setExecutor
public void setExecutor(java.util.concurrent.ExecutorService executor)
-
heartbeat
public void heartbeat()
Description copied from interface:Heartbeat
Heartbeat invocation for resources cleanup etc
-
getUdpPort
public int getUdpPort()
Description copied from interface:ChannelReceiver
Returns the UDP port- Specified by:
getUdpPort
in interfaceChannelReceiver
- Returns:
- port, -1 if the UDP port is not activated.
-
setUdpPort
public void setUdpPort(int udpPort)
-
getUdpRxBufSize
public int getUdpRxBufSize()
-
setUdpRxBufSize
public void setUdpRxBufSize(int udpRxBufSize)
-
getUdpTxBufSize
public int getUdpTxBufSize()
-
setUdpTxBufSize
public void setUdpTxBufSize(int udpTxBufSize)
-
getChannel
public Channel getChannel()
Description copied from interface:ChannelReceiver
Return the channel that is related to this ChannelReceiver- Specified by:
getChannel
in interfaceChannelReceiver
- Returns:
- Channel
-
setChannel
public void setChannel(Channel channel)
Description copied from interface:ChannelReceiver
Set the channel that is related to this ChannelReceiver- Specified by:
setChannel
in interfaceChannelReceiver
- Parameters:
channel
- The channel
-
getPoolSize
public int getPoolSize()
Return the current number of threads that are managed by the pool.- Returns:
- the current number of threads that are managed by the pool
-
getActiveCount
public int getActiveCount()
Return the current number of threads that are in use.- Returns:
- the current number of threads that are in use
-
getTaskCount
public long getTaskCount()
Return the total number of tasks that have ever been scheduled for execution by the pool.- Returns:
- the total number of tasks that have ever been scheduled for execution by the pool
-
getCompletedTaskCount
public long getCompletedTaskCount()
Return the total number of tasks that have completed execution by the pool.- Returns:
- the total number of tasks that have completed execution by the pool
-
isDaemon
public boolean isDaemon()
-
getMaxIdleTime
public long getMaxIdleTime()
-
setDaemon
public void setDaemon(boolean daemon)
-
setMaxIdleTime
public void setMaxIdleTime(long maxIdleTime)
-
-