Class BioSender
- java.lang.Object
- 
- org.apache.catalina.tribes.transport.AbstractSender
- 
- org.apache.catalina.tribes.transport.bio.BioSender
 
 
- 
- All Implemented Interfaces:
- DataSender
 
 public class BioSender extends AbstractSender Send cluster messages with only one socket. Ack and keep Alive Handling is supported- Since:
- 5.5.16
- Author:
- Peter Rossbach
 
- 
- 
Field SummaryFields Modifier and Type Field Description protected XByteBufferackbufprotected static StringManagersmThe string manager for this package.
 - 
Constructor SummaryConstructors Constructor Description BioSender()
 - 
Method SummaryAll Methods Instance Methods Concrete Methods Modifier and Type Method Description protected voidcloseSocket()Close socket.voidconnect()Connect other cluster member receivervoiddisconnect()disconnect and close socketprotected voidopenSocket()Open real socket and set time out when waitForAck is enabled is socket open return directly.protected voidpushMessage(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.voidsendMessage(byte[] data, boolean waitForAck)Send message.java.lang.StringtoString()protected voidwaitForAck()Wait for Acknowledgement from other server.- 
Methods inherited from class org.apache.catalina.tribes.transport.AbstractSendergetAddress, 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 Detail- 
smprotected static final StringManager sm The string manager for this package.
 - 
ackbufprotected final XByteBuffer ackbuf 
 
- 
 - 
Method Detail- 
connectpublic void connect() throws java.io.IOExceptionConnect other cluster member receiver- Specified by:
- connectin interface- DataSender
- Specified by:
- connectin class- AbstractSender
- Throws:
- java.io.IOException- TODO Implement this org.apache.catalina.tribes.transport.DataSender method
- See Also:
- DataSender.connect()
 
 - 
disconnectpublic void disconnect() disconnect and close socket- Specified by:
- disconnectin interface- DataSender
- Specified by:
- disconnectin class- AbstractSender
- See Also:
- DataSender.disconnect()
 
 - 
sendMessagepublic void sendMessage(byte[] data, boolean waitForAck) throws java.io.IOExceptionSend message.- Parameters:
- data- The data to send
- waitForAck- Wait for an ack
- Throws:
- java.io.IOException- An IO error occurred sending the message
 
 - 
toStringpublic java.lang.String toString() - Overrides:
- toStringin class- java.lang.Object
 
 - 
openSocketprotected void openSocket() throws java.io.IOExceptionOpen real socket and set time out when waitForAck is enabled is socket open return directly.- Throws:
- java.io.IOException- Error opening socket
 
 - 
closeSocketprotected void closeSocket() Close socket.- See Also:
- disconnect()
 
 - 
pushMessageprotected void pushMessage(byte[] data, boolean reconnect, boolean waitForAck) throws java.io.IOExceptionPush 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 send
- reconnect- Do a reconnect (close socket then reopen)
- waitForAck- Wait for an acknowledgement
- Throws:
- java.io.IOException- IO error writing data
- Since:
- 5.5.10
- See Also:
- closeSocket(),- openSocket(),- sendMessage(byte[], boolean)
 
 - 
waitForAckprotected void waitForAck() throws java.io.IOExceptionWait for Acknowledgement from other server. FIXME Please, not wait only for three characters, better control that the wait ack message is correct.- Throws:
- java.io.IOException- An IO error occurred
 
 
- 
 
-