Apache Tomcat 7.0.28

org.apache.catalina.tribes.transport.bio
Class BioSender

java.lang.Object
  extended by org.apache.catalina.tribes.transport.AbstractSender
      extended by 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
Version:
$Id: BioSender.java 1033915 2010-11-11 12:40:15Z markt $
Author:
Peter Rossbach, Filip Hanik

Field Summary
protected  XByteBuffer ackbuf
           
protected static StringManager sm
          The string manager for this package.
 
Constructor Summary
BioSender()
           
 
Method Summary
protected  void closeSocket()
          Close socket.
 void connect()
          Connect other cluster member receiver
 void disconnect()
          disconnect and close socket
 String getInfo()
          Return descriptive information about this implementation and the corresponding version number, in the format <description>/<version>.
protected  void openSocket()
          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.
 String toString()
          Name of this SockerSender
protected  void waitForAck()
          Wait for Acknowledgement from other server.
 
Methods inherited from class org.apache.catalina.tribes.transport.AbstractSender
getAddress, getAttempt, getConnectTime, getDestination, getDirect, 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, setDirect, 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
The string manager for this package.


ackbuf

protected XByteBuffer ackbuf
Constructor Detail

BioSender

public BioSender()
Method Detail

getInfo

public String getInfo()
Return descriptive information about this implementation and the corresponding version number, in the format <description>/<version>.


connect

public void connect()
             throws IOException
Connect other cluster member receiver

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

disconnect

public void disconnect()
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 IOException
Send message.

Throws:
IOException

toString

public String toString()
Name of this SockerSender

Overrides:
toString in class Object

openSocket

protected void openSocket()
                   throws IOException
open real socket and set time out when waitForAck is enabled is socket open return directly

Throws:
IOException

closeSocket

protected void closeSocket()
Close socket.

See Also:
disconnect()

pushMessage

protected void pushMessage(byte[] data,
                           boolean reconnect,
                           boolean waitForAck)
                    throws IOException
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
Throws:
IOException
Since:
5.5.10
See Also:
closeSocket(), openSocket(), sendMessage(byte[], boolean)

waitForAck

protected void waitForAck()
                   throws IOException
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
SocketTimeoutException

Apache Tomcat 7.0.28

Copyright © 2000-2012 Apache Software Foundation. All Rights Reserved.