Package 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
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.
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
-
Nested Class Summary
Nested classes/interfaces inherited from class org.jgroups.protocols.TP
TP.ProbeHandler, TP.ProtocolAdapter
-
Field Summary
Fields inherited from class org.jgroups.protocols.BasicTCP
conn_expire_time, end_port, external_addr, reaper_interval, start_port
Fields inherited from class org.jgroups.protocols.TP
bind_addr, channel_name, discard_incompatible_packets, global_thread_factory, local_addr, members, persistent_ports, persistent_ports_file, pm, pm_expiry_time, thread_naming_pattern, timer, timer_thread_factory, view
-
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionprotected ConnectionTable
getConnectionTable
(long reaperInterval, long connExpireTime, InetAddress bindAddress, InetAddress externalAddress, int startPort, int endPort, PortsManager pm) getName()
int
void
retainAll
(Collection<Address> members) void
boolean
setProperties
(Properties props) Setup the Protocol instance acording to the configuration stringvoid
start()
Creates the unicast and multicast sockets and starts the unicast and multicast receiver threadsvoid
stop()
This method is called on aChannel.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
createThreadPool, destroy, down, dumpStats, getBindAddress, getBindPort, getBindToAllInterfaces, getChannelName, getDefaultThreadPool, getDefaultThreadPoolThreadFactory, getIncomingKeepAliveTime, getIncomingMaxPoolSize, getIncomingMaxQueueSize, getIncomingMessages, getIncomingMinPoolSize, getIncomingPoolSize, getIncomingQueueSize, getLocalAddress, getMaxBundleSize, getMaxBundleTimeout, getNumBytesReceived, getNumBytesSent, getNumMessagesReceived, getNumMessagesSent, getOOBKeepAliveTime, getOOBMaxPoolSize, getOOBMaxQueueSize, getOOBMessages, getOOBMinPoolSize, getOOBPoolSize, getOOBQueueSize, getOOBThreadPool, getOOBThreadPoolThreadFactory, getReceiveInterfaces, getSendInterfaces, getSingletonName, getThreadFactory, getThreadNamingPattern, getTimer, getTimerThreadFactory, getUpProtocols, handleConfigEvent, handleConnect, handleDisconnect, isDefaulThreadPoolEnabled, isDiscardIncompatiblePackets, isEnable_unicast_bundling, isEnableBundling, isLoopback, isOOBThreadPoolEnabled, isReceiveOnAllInterfaces, isSendOnAllInterfaces, isUseIncomingPacketHandler, passToAllUpProtocols, receive, registerProbeHandler, resetStats, sendUpLocalAddressEvent, setBindAddress, setBindPort, setBindToAllInterfaces, setDefaultThreadPool, setDefaultThreadPoolThreadFactory, setDiscardIncompatiblePackets, setEnable_unicast_bundling, setEnableBundling, setIncomingKeepAliveTime, setIncomingMaxPoolSize, setIncomingMinPoolSize, setLoopback, setMaxBundleSize, setMaxBundleTimeout, setOOBKeepAliveTime, setOOBMaxPoolSize, setOOBMinPoolSize, setOOBThreadPool, setOOBThreadPoolThreadFactory, setThreadFactory, setThreadNames, setTimerThreadFactory, toString, unregisterProbeHandler, unsetThreadNames, up
Methods inherited from class org.jgroups.stack.Protocol
downThreadEnabled, enableStats, getDownProtocol, getProperties, getProtocolStack, getTransport, getUpProtocol, printStats, providedDownServices, providedUpServices, requiredDownServices, requiredUpServices, setDownProtocol, setPropertiesInternal, setProtocolStack, setUpProtocol, statsEnabled, upThreadEnabled
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
Methods inherited from interface org.jgroups.blocks.BasicConnectionTable.Receiver
receive
-
Constructor Details
-
TCP
public TCP()
-
-
Method Details
-
getName
-
getOpenConnections
public int getOpenConnections() -
printConnections
- Specified by:
printConnections
in classBasicTCP
-
setProperties
Setup the Protocol instance acording to the configuration string- Overrides:
setProperties
in classBasicTCP
- 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
-
retainAll
-
start
Description copied from class:TP
Creates the unicast and multicast sockets and starts the unicast and multicast receiver threads- Overrides:
start
in classTP
- Throws:
Exception
- Thrown if protocol cannot be started successfully. This will cause the ProtocolStack to fail, soChannel.connect(String)
will throw an exception
-
stop
public void stop()Description copied from class:Protocol
This method is called on aChannel.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 -
getConnectionTable
protected ConnectionTable getConnectionTable(long reaperInterval, long connExpireTime, InetAddress bindAddress, InetAddress externalAddress, int startPort, int endPort, PortsManager pm) throws Exception - Parameters:
reaperInterval
-connExpireTime
-bindAddress
-startPort
-- Returns:
- ConnectionTable Sub classes overrides this method to initialize a different version of ConnectionTable.
- Throws:
Exception
-