org.jgroups.protocols
Class TCP
java.lang.Object
org.jgroups.stack.Protocol
org.jgroups.protocols.TP
org.jgroups.protocols.BasicTCP
org.jgroups.protocols.TCP
- All Implemented Interfaces:
- BasicConnectionTable.Receiver
public class TCP
- extends BasicTCP
- implements BasicConnectionTable.Receiver
TCP based protocol. Creates a server socket, which gives us the local address of this group member. For
each accept() on the server socket, a new thread is created that listens on the socket.
For each outgoing message m, if m.dest is in the ougoing hashtable, the associated socket will be reused
to send message, otherwise a new socket is created and put in the hashtable.
When a socket connection breaks or a member is removed from the group, the corresponding items in the
incoming and outgoing hashtables will be removed as well.
This functionality is in ConnectionTable, which isT used by TCP. TCP sends messages using ct.send() and
registers with the connection table to receive all incoming messages.
- Author:
- Bela Ban
Fields inherited from class org.jgroups.stack.Protocol |
down_handler, down_prot, down_queue, down_thread, down_thread_prio, log, observer, props, stack, stats, up_handler, up_prot, up_queue, up_thread, up_thread_prio |
Constructor Summary |
TCP()
|
Method Summary |
protected ConnectionTable |
getConnectionTable(long reaperInterval,
long connExpireTime,
java.net.InetAddress bindAddress,
java.net.InetAddress externalAddress,
int startPort,
int endPort)
|
java.lang.String |
getName()
|
int |
getOpenConnections()
|
java.lang.String |
printConnections()
|
void |
retainAll(java.util.Collection members)
|
void |
send(Address dest,
byte[] data,
int offset,
int length)
|
boolean |
setProperties(java.util.Properties props)
Setup the Protocol instance acording to the configuration string |
void |
start()
Creates the unicast and multicast sockets and starts the unicast and multicast receiver threads |
void |
stop()
This method is called on a Channel.disconnect() . |
Methods inherited from class org.jgroups.protocols.BasicTCP |
getConnExpireTime, getEndPort, getInfo, getReaperInterval, getStartPort, handleDownEvent, init, postUnmarshalling, postUnmarshallingList, receive, sendToAllMembers, sendToSingleMember, setConnExpireTime, setEndPort, setReaperInterval, setStartPort |
Methods inherited from class org.jgroups.protocols.TP |
down, dumpStats, getBindAddress, getBindToAllInterfaces, getChannelName, getIncomingQueueSize, getLocalAddress, getMaxBundleSize, getMaxBundleTimeout, getNumBytesReceived, getNumBytesSent, getNumMessagesReceived, getNumMessagesSent, getOutgoingQueueMaxSize, getOutgoingQueueSize, getReceiveInterfaces, getSendInterfaces, handleConfigEvent, isDiscardIncompatiblePackets, isEnableBundling, isLoopback, isReceiveOnAllInterfaces, isSendOnAllInterfaces, isUseIncomingPacketHandler, isUseOutgoingPacketHandler, receive, resetStats, setBindAddress, setBindToAllInterfaces, setDiscardIncompatiblePackets, setEnableBundling, setLoopback, setMaxBundleSize, setMaxBundleTimeout, setOutgoingQueueMaxSize, setThreadNames, startUpHandler, toString, unsetThreadNames, up |
Methods inherited from class org.jgroups.stack.Protocol |
destroy, downThreadEnabled, enableStats, getDownProtocol, getDownQueue, getProperties, getUpProtocol, getUpQueue, handleSpecialDownEvent, passDown, passUp, printStats, providedDownServices, providedUpServices, receiveDownEvent, receiveUpEvent, requiredDownServices, requiredUpServices, setDownProtocol, setObserver, setPropertiesInternal, setProtocolStack, setUpProtocol, startDownHandler, statsEnabled, stopInternal, upThreadEnabled |
Methods inherited from class java.lang.Object |
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait |
TCP
public TCP()
getName
public java.lang.String getName()
- Specified by:
getName
in class Protocol
getOpenConnections
public int getOpenConnections()
printConnections
public java.lang.String printConnections()
- Specified by:
printConnections
in class BasicTCP
setProperties
public boolean setProperties(java.util.Properties props)
- Setup the Protocol instance acording to the configuration string
- Overrides:
setProperties
in class BasicTCP
- Returns:
- true if no other properties are left.
false if the properties still have data in them, ie ,
properties are left over and not handled by the protocol stack
send
public void send(Address dest,
byte[] data,
int offset,
int length)
throws java.lang.Exception
- Specified by:
send
in class BasicTCP
- Throws:
java.lang.Exception
retainAll
public void retainAll(java.util.Collection members)
- Specified by:
retainAll
in class BasicTCP
start
public void start()
throws java.lang.Exception
- Description copied from class:
TP
- Creates the unicast and multicast sockets and starts the unicast and multicast receiver threads
- Overrides:
start
in class TP
- Throws:
java.lang.Exception
- Thrown if protocol cannot be started successfully. This will cause the ProtocolStack
to fail, so Channel.connect(String)
will throw an exception
stop
public void stop()
- Description copied from class:
Protocol
- This method is called on a
Channel.disconnect()
. Stops work (e.g. by closing multicast socket).
Will be called from top to bottom. This means that at the time of the method invocation the
neighbor protocol below is still working. This method will replace the
STOP, STOP_OK, CLEANUP and CLEANUP_OK events. The ProtocolStack guarantees that
when this method is called all messages in the down queue will have been flushed
- Overrides:
stop
in class TP
getConnectionTable
protected ConnectionTable getConnectionTable(long reaperInterval,
long connExpireTime,
java.net.InetAddress bindAddress,
java.net.InetAddress externalAddress,
int startPort,
int endPort)
throws java.lang.Exception
- Parameters:
reaperInterval
- connExpireTime
- bindAddress
- startPort
-
- Returns:
- ConnectionTable
Sub classes overrides this method to initialize a different version of
ConnectionTable.
- Throws:
java.lang.Exception
Copyright ? 1998-2006 Bela Ban. All Rights Reserved.