Package org.apache.catalina.tribes.transport.bio

## Class BioSender

- java.lang.Object
- - org.apache.catalina.tribes.transport.AbstractSender
  - - org.apache.catalina.tribes.transport.bio.BioSender

All Implemented Interfaces:
  `DataSender`

    @Deprecated
    public class BioSender
    extends AbstractSender

Deprecated.
This will be removed in Tomcat 10
Send cluster messages with only one socket. Ack and keep Alive Handling is supported

Since:
  5.5.16
Author:
  Peter Rossbach

### Field Summary

Fields
`protected XByteBuffer` `ackbuf` Deprecated.
`protected static StringManager` `sm` Deprecated. The string manager for this package.

### Constructor Summary

Constructors
`BioSender()` Deprecated.

### Method Summary

All Methods Instance Methods Concrete Methods Deprecated Methods
`protected void` `closeSocket()` Deprecated. Close socket.
`void` `connect()` Deprecated. Connect other cluster member receiver
`void` `disconnect()` Deprecated. disconnect and close socket
`protected void` `openSocket()` Deprecated. 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)` Deprecated. 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)` Deprecated. Send message.
`java.lang.String` `toString()` Deprecated.
`protected void` `waitForAck()` Deprecated. 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`

### Methods inherited from class java.lang.Object

`clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait`

### Field Detail

#### sm

    protected static final StringManager sm

Deprecated.
The string manager for this package.

#### ackbuf

    protected final XByteBuffer ackbuf

Deprecated.

### Constructor Detail

#### BioSender

    public BioSender()

Deprecated.

### Method Detail

#### connect

    public void connect()
                 throws java.io.IOException

Deprecated.
Connect other cluster member receiver

Specified by:
  `connect` in interface `DataSender`
Specified by:
  `connect` in class `AbstractSender`
Throws:
  `java.io.IOException` - TODO Implement this org.apache.catalina.tribes.transport.DataSender method
See Also:
  `DataSender.connect()`

#### disconnect

    public void disconnect()

Deprecated.
disconnect and close socket

Specified by:
  `disconnect` in interface `DataSender`
Specified by:
  `disconnect` in class `AbstractSender`
See Also:
  `DataSender.disconnect()`

#### sendMessage

    public void sendMessage​(byte[] data,
                            boolean waitForAck)
                     throws java.io.IOException

Deprecated.
Send message.

Parameters:
  `data` - The data to send
  `waitForAck` - Wait for an ack
Throws:
  `java.io.IOException` - An IO error occurred sending the message

#### toString

    public java.lang.String toString()

Deprecated.

Overrides:
  `toString` in class `java.lang.Object`

#### openSocket

    protected void openSocket()
                       throws java.io.IOException

Deprecated.
Open real socket and set time out when waitForAck is enabled is socket open return directly.

Throws:
  `java.io.IOException` - Error opening socket

#### closeSocket

    protected void closeSocket()

Deprecated.
Close socket.

See Also:
  `disconnect()`

#### pushMessage

    protected void pushMessage​(byte[] data,
                               boolean reconnect,
                               boolean waitForAck)
                        throws java.io.IOException

Deprecated.
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 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)`

#### waitForAck

    protected void waitForAck()
                       throws java.io.IOException

Deprecated.
Wait 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