Class ReceiverBase
java.lang.Object
org.apache.catalina.tribes.transport.ReceiverBase
- All Implemented Interfaces:
ChannelReceiver,Heartbeat,ListenCallback,RxTaskPool.TaskCreator
- Direct Known Subclasses:
BioReceiver,NioReceiver
public abstract class ReceiverBase
extends Object
implements ChannelReceiver, ListenCallback, RxTaskPool.TaskCreator
-
Field Summary
FieldsFields inherited from interface org.apache.catalina.tribes.ChannelReceiver
MAX_UDP_SIZE -
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionprotected voidbind(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 intbindUdp(DatagramSocket socket, int portstart, int retries) Same as bind() except it does it for the UDP portbooleandoListen()intReturn the current number of threads that are in use.intgetBind()Return the channel that is related to this ChannelReceiverlongReturn the total number of tasks that have completed execution by the pool.booleangetHost()String representation of the IPv4 or IPv6 address that this host is listening to.longintintReturns the message listener that is associated with this receiverintintbooleanintReturn the current number of threads that are managed by the pool.intgetPort()Returns the listening portintintReturns the secure listening portlongbooleanbooleanintbooleanintlongReturn the total number of tasks that have ever been scheduled for execution by the pool.booleanintintintReturns the UDP portintintbooleanintvoidHeartbeat invocation for resources cleanup etcbooleanisDaemon()booleanvoidThis method is invoked on the callback object to notify it that new data has been received from one of the cluster nodes.voidsetAddress(String host) voidsetAutoBind(int autoBind) voidsetBind(InetAddress bind) voidsetChannel(Channel channel) Set the channel that is related to this ChannelReceivervoidsetDaemon(boolean daemon) voidsetDirect(boolean direct) voidsetExecutor(ExecutorService executor) voidvoidsetListen(boolean doListen) voidsetListener(MessageListener listener) voidsetMaxIdleTime(long maxIdleTime) voidsetMaxTasks(int maxTasks) voidsetMaxThreads(int maxThreads) voidsetMessageListener(MessageListener listener) Sets the message listener to receive notification of incomingvoidsetMinTasks(int minTasks) voidsetMinThreads(int minThreads) voidsetOoBInline(boolean ooBInline) voidsetPool(RxTaskPool pool) voidsetPort(int port) voidsetRxBufSize(int rxBufSize) voidsetSecurePort(int securePort) voidsetSelectorTimeout(long selTimeout) voidsetSoKeepAlive(boolean soKeepAlive) voidsetSoLingerOn(boolean soLingerOn) voidsetSoLingerTime(int soLingerTime) voidsetSoReuseAddress(boolean soReuseAddress) voidsetSoTrafficClass(int soTrafficClass) voidsetTcpNoDelay(boolean tcpNoDelay) voidsetTimeout(int timeout) voidsetTxBufSize(int txBufSize) voidsetUdpPort(int udpPort) voidsetUdpRxBufSize(int udpRxBufSize) voidsetUdpTxBufSize(int udpTxBufSize) voidsetUseBufferPool(boolean useBufferPool) voidstart()Start listening for incoming messages on the host/portvoidstop()Stop listening for messagesMethods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, waitMethods inherited from interface org.apache.catalina.tribes.transport.RxTaskPool.TaskCreator
createRxTask
-
Field Details
-
OPTION_DIRECT_BUFFER
public static final int OPTION_DIRECT_BUFFER- See Also:
-
sm
-
-
Constructor Details
-
ReceiverBase
public ReceiverBase()
-
-
Method Details
-
start
Description copied from interface:ChannelReceiverStart listening for incoming messages on the host/port- Specified by:
startin interfaceChannelReceiver- Throws:
IOException- Listen failed
-
stop
public void stop()Description copied from interface:ChannelReceiverStop listening for messages- Specified by:
stopin interfaceChannelReceiver
-
getMessageListener
Description copied from interface:ChannelReceiverReturns the message listener that is associated with this receiver- Specified by:
getMessageListenerin interfaceChannelReceiver- Returns:
- MessageListener
- See Also:
-
getPort
public int getPort()Description copied from interface:ChannelReceiverReturns the listening port- Specified by:
getPortin interfaceChannelReceiver- Returns:
- port
-
getRxBufSize
public int getRxBufSize() -
getTxBufSize
public int getTxBufSize() -
setMessageListener
Description copied from interface:ChannelReceiverSets the message listener to receive notification of incoming- Specified by:
setMessageListenerin interfaceChannelReceiver- Parameters:
listener- MessageListener- See Also:
-
setRxBufSize
public void setRxBufSize(int rxBufSize) -
setTxBufSize
public void setTxBufSize(int txBufSize) -
getBind
- Returns:
- Returns the bind.
-
bind
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 togetBind().- Parameters:
socket- The socket to bindportstart- Starting port for bind attemptsretries- Number of times to attempt to bind (port incremented between attempts)- Throws:
IOException- Socket bind error
-
bindUdp
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:
IOException- Socket bind error
-
messageDataReceived
Description copied from interface:ListenCallbackThis method is invoked on the callback object to notify it that new data has been received from one of the cluster nodes.- Specified by:
messageDataReceivedin interfaceListenCallback- Parameters:
data- - the message bytes received from the cluster/replication system
-
getWorkerThreadOptions
public int getWorkerThreadOptions() -
setBind
- Parameters:
bind- The bind to set.
-
getDirect
public boolean getDirect() -
setDirect
public void setDirect(boolean direct) -
getAddress
-
getHost
Description copied from interface:ChannelReceiverString representation of the IPv4 or IPv6 address that this host is listening to.- Specified by:
getHostin interfaceChannelReceiver- Returns:
- the host that this receiver is listening to
-
getSelectorTimeout
public long getSelectorTimeout() -
doListen
public boolean doListen() -
getListener
-
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:ChannelReceiverReturns the secure listening port- Specified by:
getSecurePortin interfaceChannelReceiver- Returns:
- port, -1 if a secure port is not activated
-
getMinTasks
public int getMinTasks() -
getMaxTasks
public int getMaxTasks() -
getExecutor
-
isListening
public boolean isListening() -
setSelectorTimeout
public void setSelectorTimeout(long selTimeout) -
setListen
public void setListen(boolean doListen) -
setAddress
-
setHost
-
setListener
-
setPool
-
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
-
heartbeat
-
getUdpPort
public int getUdpPort()Description copied from interface:ChannelReceiverReturns the UDP port- Specified by:
getUdpPortin 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
Description copied from interface:ChannelReceiverReturn the channel that is related to this ChannelReceiver- Specified by:
getChannelin interfaceChannelReceiver- Returns:
- Channel
-
setChannel
Description copied from interface:ChannelReceiverSet the channel that is related to this ChannelReceiver- Specified by:
setChannelin 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)
-