org.apache.catalina.cluster.tcp
Class ReplicationTransmitter

java.lang.Object
  extended byorg.apache.catalina.cluster.tcp.ReplicationTransmitter
All Implemented Interfaces:
ClusterSender

public class ReplicationTransmitter
extends java.lang.Object
implements ClusterSender

Transmit message to ohter cluster members create sender from replicationMode type FIXME i18n log messages FIXME compress data depends on message type and size FIXME send very big messages at some block see FarmWarDeployer! TODO pause and resume senders

Version:
$Revision: 1.22 $ $Date: 2005/03/25 22:12:31 $
Author:
Peter Rossbach, Filip Hanik

Field Summary
protected  StringManager sm
          The string manager for this package.
 
Constructor Summary
ReplicationTransmitter()
           
 
Method Summary
 void add(Member member)
           
protected  void addStats(int length)
          calc number of requests and transfered bytes.
protected  byte[] convertSenderData(byte[] data)
          compress data
 long getAckTimeout()
           
 long getFailureCounter()
           
 java.lang.String getInfo()
          Return descriptive information about this implementation and the corresponding version number, in the format <description>/<version>.
 boolean getIsSenderSynchronized()
          Deprecated. since version 5.5.7
protected  java.lang.String getKey(Member member)
          set unique key to find sender
 long getNrOfRequests()
           
 javax.management.ObjectName getObjectName()
           
 java.lang.Object getProperty(java.lang.String key)
          get current config
 java.util.Iterator getPropertyNames()
          Get all properties keys
 java.lang.String getReplicationMode()
          current replication mode
protected  javax.management.ObjectName getSenderObjectName(IDataSender sender)
          build sender ObjectName ( engine.domain:type=IDataSender,host="host",senderAddress="receiver.address",senderPort="port" )
 javax.management.ObjectName[] getSenderObjectNames()
          get all current senders
 IDataSender[] getSenders()
          get all current senders
 long getTotalBytes()
           
 boolean isAutoConnect()
           
 boolean isCompress()
           
 boolean isWaitForAck()
           
protected  void registerSenderMBean(Member member, IDataSender sender)
          register MBean and check it exist (big problem!)
 void remove(Member member)
          remove sender from transmitter. ( deregister mbean and disconnect sender )
 void removeProperty(java.lang.String key)
          remove a configured property.
 void resetStatistics()
           
 void sendMessage(java.lang.String sessionId, byte[] indata)
          send message to all senders (broadcast)
 void sendMessage(java.lang.String sessionId, byte[] indata, Member member)
          Send data to one member
protected  void sendMessageData(java.lang.String sessionId, byte[] data, IDataSender sender)
          Send message to concrete sender.
 void setAckTimeout(long ackTimeout)
           
 void setAutoConnect(boolean autoConnect)
           
 void setCatalinaCluster(SimpleTcpCluster cluster)
           
 void setCompress(boolean compressMessageData)
           
 void setObjectName(javax.management.ObjectName name)
          Transmitter ObjectName
 void setProperty(java.lang.String name, java.lang.Object value)
          set config attributes with reflect
 void setReplicationMode(java.lang.String mode)
          set replication Mode (pooled, synchonous, asynchonous, fastasyncqueue)
 void setWaitForAck(boolean waitForAck)
           
 void start()
          start the sender and register transmitter mbean
 void stop()
           
protected  void transferSenderProperty(IDataSender sender)
          Transfer all properties from transmitter to concrete sender
protected  void unregisterSenderMBean(IDataSender sender)
          unregsister sendern Mbean
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

sm

protected StringManager sm
The string manager for this package.

Constructor Detail

ReplicationTransmitter

public ReplicationTransmitter()
Method Detail

getInfo

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


getNrOfRequests

public long getNrOfRequests()
Returns:
Returns the nrOfRequests.

getTotalBytes

public long getTotalBytes()
Returns:
Returns the totalBytes.

getFailureCounter

public long getFailureCounter()
Returns:
Returns the failureCounter.

getReplicationMode

public java.lang.String getReplicationMode()
current replication mode

Returns:

setReplicationMode

public void setReplicationMode(java.lang.String mode)
set replication Mode (pooled, synchonous, asynchonous, fastasyncqueue)

Parameters:
mode -
See Also:
IDataSenderFactory.validateMode(String)

setObjectName

public void setObjectName(javax.management.ObjectName name)
Transmitter ObjectName

Parameters:
name -

getObjectName

public javax.management.ObjectName getObjectName()

isCompress

public boolean isCompress()
Returns:
Returns the compress.

setCompress

public void setCompress(boolean compressMessageData)

isAutoConnect

public boolean isAutoConnect()
Returns:
Returns the autoConnect.

setAutoConnect

public void setAutoConnect(boolean autoConnect)
Parameters:
autoConnect - The autoConnect to set.

getAckTimeout

public long getAckTimeout()
Returns:

setAckTimeout

public void setAckTimeout(long ackTimeout)
Parameters:
ackTimeout -

isWaitForAck

public boolean isWaitForAck()
Specified by:
isWaitForAck in interface ClusterSender
Returns:
Returns the waitForAck.

setWaitForAck

public void setWaitForAck(boolean waitForAck)
Specified by:
setWaitForAck in interface ClusterSender
Parameters:
waitForAck - The waitForAck to set.

setCatalinaCluster

public void setCatalinaCluster(SimpleTcpCluster cluster)
Specified by:
setCatalinaCluster in interface ClusterSender
Parameters:
cluster -

getIsSenderSynchronized

public boolean getIsSenderSynchronized()
Deprecated. since version 5.5.7

Returns:

setProperty

public void setProperty(java.lang.String name,
                        java.lang.Object value)
set config attributes with reflect

Parameters:
name -
value -

getProperty

public java.lang.Object getProperty(java.lang.String key)
get current config

Parameters:
key -
Returns:

getPropertyNames

public java.util.Iterator getPropertyNames()
Get all properties keys

Returns:

removeProperty

public void removeProperty(java.lang.String key)
remove a configured property.

Parameters:
key -

sendMessage

public void sendMessage(java.lang.String sessionId,
                        byte[] indata,
                        Member member)
                 throws java.io.IOException
Send data to one member

Specified by:
sendMessage in interface ClusterSender
Throws:
java.io.IOException
See Also:
ClusterSender.sendMessage(java.lang.String, byte[], org.apache.catalina.cluster.Member)

sendMessage

public void sendMessage(java.lang.String sessionId,
                        byte[] indata)
                 throws java.io.IOException
send message to all senders (broadcast)

Specified by:
sendMessage in interface ClusterSender
Throws:
java.io.IOException
See Also:
ClusterSender.sendMessage(java.lang.String, byte[])

start

public void start()
           throws java.io.IOException
start the sender and register transmitter mbean

Specified by:
start in interface ClusterSender
Throws:
java.io.IOException
See Also:
ClusterSender.start()

stop

public void stop()
Specified by:
stop in interface ClusterSender

getSenders

public IDataSender[] getSenders()
get all current senders

Returns:

getSenderObjectNames

public javax.management.ObjectName[] getSenderObjectNames()
get all current senders

Returns:

resetStatistics

public void resetStatistics()

add

public void add(Member member)
Specified by:
add in interface ClusterSender

remove

public void remove(Member member)
remove sender from transmitter. ( deregister mbean and disconnect sender )

Specified by:
remove in interface ClusterSender
See Also:
ClusterSender.remove(org.apache.catalina.cluster.Member)

addStats

protected void addStats(int length)
calc number of requests and transfered bytes. Log stats all 100 requets

Parameters:
length -

transferSenderProperty

protected void transferSenderProperty(IDataSender sender)
Transfer all properties from transmitter to concrete sender

Parameters:
sender -

getKey

protected java.lang.String getKey(Member member)
set unique key to find sender

Parameters:
member -
Returns:
concat member.host:member.port

unregisterSenderMBean

protected void unregisterSenderMBean(IDataSender sender)
unregsister sendern Mbean

Parameters:
sender -
See Also:
getSenderObjectName(IDataSender)

registerSenderMBean

protected void registerSenderMBean(Member member,
                                   IDataSender sender)
register MBean and check it exist (big problem!)

Parameters:
member -
sender -

getSenderObjectName

protected javax.management.ObjectName getSenderObjectName(IDataSender sender)
build sender ObjectName ( engine.domain:type=IDataSender,host="host",senderAddress="receiver.address",senderPort="port" )

Parameters:
sender -
Returns:

convertSenderData

protected byte[] convertSenderData(byte[] data)
                            throws java.io.IOException
compress data

Returns:
Throws:
java.io.IOException - FIXME get CompressMessageDate from cluster instanz
See Also:
XByteBuffer#createDataPackage(byte[])

sendMessageData

protected void sendMessageData(java.lang.String sessionId,
                               byte[] data,
                               IDataSender sender)
                        throws java.io.IOException
Send message to concrete sender. If autoConnect is true, check is connection broken and the reconnect the complete sender.

Parameters:
sessionId - Unique Message Id
data - message Data
sender - concrete message sender
Throws:
java.io.IOException


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