Class TCP
java.lang.Object
org.jgroups.stack.Protocol
org.jgroups.protocols.TPConfig
org.jgroups.protocols.TP
org.jgroups.protocols.BasicTCP
org.jgroups.protocols.TCP
- All Implemented Interfaces:
ConnectionListener, Receiver, Lifecycle, DiagnosticsHandler.ProbeHandler
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 outgoing hash table, the associated socket will be reused to send
message, otherwise a new socket is created and put in the hash table. When a
socket connection breaks or a member is removed from the group, the
corresponding items in the incoming and outgoing hash tables will be removed
as well.
This functionality is in TcpServer, which is used by TCP. TCP sends messages using ct.send() and registers with the connection table to receive all incoming messages.
- Author:
- Bela Ban
-
Field Summary
FieldsModifier and TypeFieldDescriptionprotected intprotected intprotected booleanprotected intprotected booleanDeprecated.protected TcpServerprotected TLSprotected booleanFields inherited from class BasicTCP
client_bind_addr, client_bind_port, conn_expire_time, connected, defer_client_bind_addr, enable_suspect_events, is_member, linger, log_details, max_length, num_suspect_events, peer_addr_read_timeout, reaper_interval, recv_buf_size, send_buf_size, sock_conn_timeout, tcp_nodelay, use_acksFields inherited from class TP
LIST, MIN_WAIT_BETWEEN_DISCOVERIES, MSG_OVERHEAD, MULTICASTFields inherited from class TPConfig
async_executor, bind_addr, bind_port, bundler, bundler_type, cluster_name, connectLock, diag_handler, external_addr, external_port, header, is_trace, last_discovery_request, local_physical_addr, local_transport, local_transport_class, log_discard_msgs, log_discard_msgs_version, logical_addr_cache, logical_addr_cache_expiration, logical_addr_cache_max_size, logical_addr_cache_reaper, logical_addr_cache_reaper_interval, members, message_processing_policy, msg_processing_policy, msg_stats, port_range, print_function, receive_interfaces, receive_on_all_interfaces, rtt, socket_factory, suppress_log_different_cluster, suppress_log_different_version, suppress_time_different_cluster_warnings, suppress_time_different_version_warnings, thread_factory, thread_naming_pattern, thread_pool, time_service, time_service_interval, timer, timer_handle_non_blocking_tasks, use_direct_memory, use_vthreads, view, who_has_cache, who_has_cache_timeoutFields inherited from class Protocol
after_creation_hook, down_prot, ergonomics, id, local_addr, log, policies, preview_warning, stack, stats, up_prot -
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionclearConnections(boolean graceful) intintintprotected PhysicalAddressReturns the physical address of this transportprotected voidprotected voidvoidinit()Called after a protocol has been created and before the protocol is started.booleanlogAcceptError(boolean l) intmaxSendQueue(int s) booleannonBlockingSends(boolean b) voidretainAll(Collection<Address> members) voidsendUnicast(PhysicalAddress dest, ByteBuffer data) Send a unicast message to a member.setBufferedInputStreamSize(int buffered_input_stream_size) setBufferedOutputStreamSize(int buffered_output_stream_size) voidsetSocketFactory(SocketFactory factory) Sets a SocketFactory.voidstart()Creates the unicast and multicast sockets and starts the unicast and multicast receiver threadsvoidstop()Called on aJChannel.disconnect(); stops work (e.g.tls()booleanuseLockToSend(boolean u) Methods inherited from class BasicTCP
connectionClosed, connectionEstablished, deferClientBindAddr, deferClientBindAddr, down, enableSuspectEvents, enableSuspectEvents, getClientBindAddr, getClientBindPort, getConnExpireTime, getLinger, getMaxLength, getPeerAddrReadTimeout, getReaperInterval, getRecvBufSize, getSendBufSize, getSockConnTimeout, logDetails, logDetails, numSuspectEvents, reaperInterval, resetStats, setClientBindAddr, setClientBindPort, setConnExpireTime, setLinger, setMaxLength, setPeerAddrReadTimeout, setReaperInterval, setRecvBufSize, setSendBufSize, setSockConnTimeout, supportsMulticasting, tcpNodelay, tcpNodelay, useAcks, useAcksMethods inherited from class TP
addPhysicalAddressToCache, addPhysicalAddressToCache, clearLogicalAddressCache, destroy, disableDiagnostics, doSend, down, enableDiagnostics, evictLogicalAddressCache, evictLogicalAddressCache, fetchLocalAddresses, fetchPhysicalAddrs, fetchResponsesFromDiscoveryProtocol, getAllPhysicalAddressesFromCache, getPhysicalAddressFromCache, handleMessageBatch, handleProbe, handleSingleMessage, passBatchUp, passMessageUp, processBatch, receive, receive, registerLocalAddress, removeLogicalAddressFromCache, sendTo, sendToAll, sendUnicasts, setAddress, setInAllThreadFactories, setSourceAddress, setThreadNames, startDiagnostics, stopDiagnostics, supportedKeys, toString, unicastDestMismatch, unsetThreadNames, versionMatchMethods inherited from class TPConfig
bundler, clearDifferentClusterCache, clearDifferentVersionCache, clusterName, createBundler, createDiagnosticsHandler, defaultHeaders, dumpTimerTasks, enableAllStats, enableBlockingTimerTasks, enableStats, getAsyncExecutor, getBindAddr, getBindAddress, getBindPort, getBundler, getBundlerClass, getBundlerType, getClusterName, getClusterNameAscii, getDiagnosticsHandler, getDifferentClusterMessages, getDifferentVersionMessages, getExternalAddr, getExternalPort, getLocalPhysicalAddress, getLocalTransport, getLogDiscardMessages, getLogDiscardMessagesVersion, getLogicalAddrCacheExpiration, getLogicalAddrCacheMaxSize, getLogicalAddrCacheReaperInterval, getLogicalAddressCache, getMessageProcessingPolicy, getMessageStats, getNumberOfThreadDumps, getNumMcastMsgsReceived, getNumMcastMsgsSent, getNumRejectedMsgs, getNumThreads, getNumTimerTasks, getNumUcastMsgsReceived, getNumUcastMsgsSent, getPortRange, getReceiveInterfaces, getRTT, getSocketFactory, getSuppressTimeDifferentClusterWarnings, getSuppressTimeDifferentVersionWarnings, getThreadFactory, getThreadNamingPattern, getThreadPool, getTimer, getTimerClass, getTimerThreads, getTimeService, getTimeServiceInterval, getWhoHasCacheTimeout, isLogicalAddressCacheReaperRunning, isReceiveOnAllInterfaces, isTrace, isTrace, localPhysicalAddress, logDiscardMsgs, logDiscardMsgs, logDiscardMsgsVersion, logDiscardMsgsVersion, loggerType, msgProcessingPolicy, msgProcessingPolicy, printLogicalAddressCache, printWhoHasCache, receiveOnAllInterfaces, receiveOnAllInterfaces, registerProbeHandler, removeCancelledTimerTasks, sameCluster, setAsyncExecutor, setBindAddr, setBindAddress, setBindPort, setBindToAllInterfaces, setBundler, setBundlerType, setDiagnosticsHandler, setExternalAddr, setExternalPort, setLevel, setLocalTransport, setLocalTransport, setLogDiscardMessages, setLogDiscardMessagesVersion, setLogicalAddrCacheExpiration, setLogicalAddrCacheMaxSize, setLogicalAddrCacheReaperInterval, setMessageProcessingPolicy, setMessageStats, setPortRange, setSuppressTimeDifferentClusterWarnings, setSuppressTimeDifferentVersionWarnings, setThreadFactory, setThreadPool, setTimer, setTimeService, setTimeServiceInterval, setWhoHasCacheTimeout, threadNamingPattern, timestamp, unregisterProbeHandler, unregisterProbeHandler, useDirectMemory, useDirectMemory, useVirtualThreads, useVirtualThreads, viewMethods inherited from class Protocol
accept, addPolicy, addr, addr, afterCreationHook, down, getAddress, getComponents, getDownProtocol, getDownServices, getId, getIdsAbove, getLevel, getLog, getName, getPolicies, getProtocolStack, getTransport, getUpProtocol, getUpServices, getValue, isErgonomics, level, parse, policies, previewWarning, previewWarning, providedDownServices, providedUpServices, removePolicy, requiredDownServices, requiredUpServices, resetStatistics, setDownProtocol, setErgonomics, setId, setPolicies, setProtocolStack, setUpProtocol, setValue, statsEnabled, up, up, up
-
Field Details
-
srv
-
buffered_input_stream_size
protected int buffered_input_stream_size -
buffered_output_stream_size
protected int buffered_output_stream_size -
log_accept_error
protected boolean log_accept_error -
use_lock_to_send
protected boolean use_lock_to_send -
tls
-
non_blocking_sends
Deprecated. -
max_send_queue
protected int max_send_queue
-
-
Constructor Details
-
TCP
public TCP()
-
-
Method Details
-
getBufferedInputStreamSize
public int getBufferedInputStreamSize() -
setBufferedInputStreamSize
-
getBufferedOutputStreamSize
public int getBufferedOutputStreamSize() -
setBufferedOutputStreamSize
-
tls
-
tls
-
logAcceptError
public boolean logAcceptError() -
logAcceptError
-
nonBlockingSends
public boolean nonBlockingSends() -
nonBlockingSends
-
maxSendQueue
public int maxSendQueue() -
maxSendQueue
-
useLockToSend
public boolean useLockToSend() -
useLockToSend
-
getOpenConnections
public int getOpenConnections() -
printConnections
- Specified by:
printConnectionsin classBasicTCP
-
clearConnections
- Specified by:
clearConnectionsin classBasicTCP
-
setSocketFactory
Description copied from class:ProtocolSets a SocketFactory. Socket factories are typically provided by the transport (TP)- Overrides:
setSocketFactoryin classTPConfig- Parameters:
factory-
-
sendUnicast
Description copied from class:TPSend a unicast message to a member. Note that the destination address is a *physical*, not a logical address- Specified by:
sendUnicastin classTP- Parameters:
dest- Must be a non-null physical unicast address (e.g.IpAddress)data- The data to be sent. This is not a copy, so don't modify it- Throws:
Exception
-
retainAll
-
init
Description copied from class:ProtocolCalled after a protocol has been created and before the protocol is started. Attributes are already set. Other protocols are not yet connected and events cannot yet be sent. -
start
Description copied from class:TPCreates the unicast and multicast sockets and starts the unicast and multicast receiver threads -
stop
-
handleConnect
- Overrides:
handleConnectin classTP- Throws:
Exception
-
handleDisconnect
protected void handleDisconnect()- Overrides:
handleDisconnectin classTP
-
getPhysicalAddress
Description copied from class:TPReturns the physical address of this transport- Specified by:
getPhysicalAddressin classTP
-