Class BioSender
java.lang.Object
org.apache.catalina.tribes.transport.AbstractSender
org.apache.catalina.tribes.transport.bio.BioSender
- All Implemented Interfaces:
DataSender
Send cluster messages with only one socket. Ack and keep Alive Handling is
supported
- Since:
- 5.5.16
- Author:
- Peter Rossbach
-
Field Summary
Modifier and TypeFieldDescriptionprotected final XByteBuffer
protected static final StringManager
The string manager for this package. -
Constructor Summary
-
Method Summary
Modifier and TypeMethodDescriptionprotected void
Close socket.void
connect()
Connect other cluster member receivervoid
disconnect and close socketprotected void
Open real socket and set time out when waitForAck is enabled is socket open return directly.protected void
pushMessage
(byte[] data, boolean reconnect, boolean waitForAck) Push messages with only one socket at a time Wait for ack is needed and make auto retry when write message is failed.void
sendMessage
(byte[] data, boolean waitForAck) Send message.toString()
protected void
Wait for Acknowledgement from other server.Methods inherited from class org.apache.catalina.tribes.transport.AbstractSender
getAddress, getAttempt, getConnectTime, getDestination, getDirectBuffer, getKeepAliveCount, getKeepAliveTime, getMaxRetryAttempts, getOoBInline, getPort, getRequestCount, getRxBufSize, getSoKeepAlive, getSoLingerOn, getSoLingerTime, getSoReuseAddress, getSoTrafficClass, getTcpNoDelay, getThrowOnFailedAck, getTimeout, getTxBufSize, getUdpPort, getUdpRxBufSize, getUdpTxBufSize, isConnected, isUdpBased, keepalive, setAddress, setAttempt, setConnected, setConnectTime, setDestination, setDirectBuffer, setKeepAliveCount, setKeepAliveTime, setMaxRetryAttempts, setOoBInline, setPort, setRequestCount, setRxBufSize, setSoKeepAlive, setSoLingerOn, setSoLingerTime, setSoReuseAddress, setSoTrafficClass, setTcpNoDelay, setThrowOnFailedAck, setTimeout, setTxBufSize, setUdpBased, setUdpPort, setUdpRxBufSize, setUdpTxBufSize, transferProperties
-
Field Details
-
sm
The string manager for this package. -
ackbuf
-
-
Constructor Details
-
BioSender
public BioSender()
-
-
Method Details
-
connect
Connect other cluster member receiver- Specified by:
connect
in interfaceDataSender
- Specified by:
connect
in classAbstractSender
- Throws:
IOException
- TODO Implement this org.apache.catalina.tribes.transport.DataSender method- See Also:
-
disconnect
public void disconnect()disconnect and close socket- Specified by:
disconnect
in interfaceDataSender
- Specified by:
disconnect
in classAbstractSender
- See Also:
-
sendMessage
Send message.- Parameters:
data
- The data to sendwaitForAck
- Wait for an ack- Throws:
IOException
- An IO error occurred sending the message
-
toString
-
openSocket
Open real socket and set time out when waitForAck is enabled is socket open return directly.- Throws:
IOException
- Error opening socket
-
closeSocket
protected void closeSocket()Close socket.- See Also:
-
pushMessage
Push messages with only one socket at a time Wait for ack is needed and make auto retry when write message is failed. After sending error close and reopen socket again. After successful sending update stats WARNING: Subclasses must be very careful that only one thread call this pushMessage at once!!!- Parameters:
data
- Data to sendreconnect
- Do a reconnect (close socket then reopen)waitForAck
- Wait for an acknowledgement- Throws:
IOException
- IO error writing data- Since:
- 5.5.10
- See Also:
-
waitForAck
Wait for Acknowledgement from other server. FIXME Please, not wait only for three characters, better control that the wait ack message is correct.- Throws:
IOException
- An IO error occurred
-