Package org.jgroups.protocols
Class TCP_NIO2
java.lang.Object
org.jgroups.stack.Protocol
org.jgroups.protocols.TP
org.jgroups.protocols.BasicTCP
org.jgroups.protocols.TCP_NIO2
- All Implemented Interfaces:
ConnectionListener,Receiver,Lifecycle,DiagnosticsHandler.ProbeHandler
Protocol using TCP/IP to send and receive messages. Contrary to
TCP, TCP_NIO uses non-blocking I/O (NIO),
which eliminates the thread per connection model. Instead, TCP_NIO uses a single selector to poll for incoming
messages and dispatches handling of those to a (configurable) thread pool.
Most of the functionality is in NioServer. TCP_NIO sends
messages using BaseServer.send(Address,byte[],int,int) and registers with the server
to receive messages.
- Since:
- 3.6.5
-
Field Summary
FieldsModifier and TypeFieldDescriptionprotected booleanprotected intprotected longprotected NioServerFields inherited from class org.jgroups.protocols.BasicTCP
client_bind_addr, client_bind_port, conn_expire_time, defer_client_bind_addr, enable_suspect_events, 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 org.jgroups.protocols.TP
async_executor, bind_addr, bind_port, bundler, bundler_type, cluster_name, connectLock, diag_handler, external_addr, external_port, header, is_trace, last_discovery_request, LIST, 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, loopback_copy, loopback_separate_thread, members, message_processing_policy, MIN_WAIT_BETWEEN_DISCOVERIES, msg_factory, msg_factory_class, MSG_OVERHEAD, msg_processing_policy, msg_stats, MULTICAST, 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_virtual_threads, view, who_has_cache, who_has_cache_timeoutFields inherited from class org.jgroups.stack.Protocol
after_creation_hook, down_prot, ergonomics, id, local_addr, log, policies, stack, stats, up_prot -
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionvoidbooleancopyOnPartialWrite(boolean c) intintprotected PhysicalAddresslongprotected voidprotected voidbooleanbooleanintintvoidreaderIdleTime(long t) voidretainAll(Collection<Address> members) voidsetMaxSendBuffers(int m) setReaderIdleTime(long r) voidstart()Creates the unicast and multicast sockets and starts the unicast and multicast receiver threadsvoidstop()Called on aJChannel.disconnect(); stops work (e.g.Methods inherited from class org.jgroups.protocols.BasicTCP
connectionClosed, connectionEstablished, deferClientBindAddr, deferClientBindAddr, down, enableSuspectEvents, enableSuspectEvents, getClientBindAddr, getClientBindPort, getConnExpireTime, getInfo, getLinger, getMaxLength, getPeerAddrReadTimeout, getReaperInterval, getRecvBufSize, getSendBufSize, getSockConnTimeout, init, logDetails, logDetails, reaperInterval, resetStats, sendUnicast, setClientBindAddr, setClientBindPort, setConnExpireTime, setLinger, setMaxLength, setPeerAddrReadTimeout, setReaperInterval, setRecvBufSize, setSendBufSize, setSockConnTimeout, supportsMulticasting, tcpNodelay, tcpNodelay, useAcks, useAcksMethods inherited from class org.jgroups.protocols.TP
_send, addPhysicalAddressToCache, addPhysicalAddressToCache, bundler, clearDifferentClusterCache, clearDifferentVersionCache, clearLogicalAddressCache, createBundler, createDiagnosticsHandler, defaultHeaders, destroy, disableDiagnostics, doSend, down, dumpTimerTasks, enableBlockingTimerTasks, enableDiagnostics, enableStats, evictLogicalAddressCache, evictLogicalAddressCache, fetchLocalAddresses, fetchPhysicalAddrs, fetchResponsesFromDiscoveryProtocol, getAllPhysicalAddressesFromCache, getAsyncExecutor, getBindAddr, getBindAddress, getBindPort, getBundler, getBundlerClass, getBundlerType, getClusterName, getClusterNameAscii, getDiagnosticsHandler, getDifferentClusterMessages, getDifferentVersionMessages, getExternalAddr, getExternalPort, getLocalPhysicalAddress, getLocalTransport, getLogDiscardMessages, getLogDiscardMessagesVersion, getLogicalAddrCacheExpiration, getLogicalAddrCacheMaxSize, getLogicalAddrCacheReaperInterval, getLogicalAddressCache, getMessageFactory, getMessageFactoryClass, getMessageProcessingPolicy, getMessageStats, getMsgFactoryClass, getNumberOfThreadDumps, getNumMcastMsgsReceived, getNumMcastMsgsSent, getNumRejectedMsgs, getNumThreads, getNumTimerTasks, getNumUcastMsgsReceived, getNumUcastMsgsSent, getPhysicalAddressFromCache, getPortRange, getReceiveInterfaces, getRTT, getSocketFactory, getSuppressTimeDifferentClusterWarnings, getSuppressTimeDifferentVersionWarnings, getThreadFactory, getThreadNamingPattern, getThreadPool, getTimer, getTimerClass, getTimerThreads, getTimeService, getTimeServiceInterval, getWhoHasCacheTimeout, handleMessageBatch, handleProbe, handleSingleMessage, isLogicalAddressCacheReaperRunning, isMulticastCapable, isReceiveOnAllInterfaces, isTrace, isTrace, localPhysicalAddress, logDiscardMsgs, logDiscardMsgs, logDiscardMsgsVersion, logDiscardMsgsVersion, loggerType, loopback, loopbackCopy, loopbackCopy, loopbackSeparateThread, loopbackSeparateThread, passBatchUp, passMessageUp, printLogicalAddressCache, printWhoHasCache, processBatch, receive, receive, receiveOnAllInterfaces, receiveOnAllInterfaces, registerLocalAddress, registerProbeHandler, removeCancelledTimerTasks, removeLogicalAddressFromCache, sameCluster, sendTo, sendToAll, setAddress, setAsyncExecutor, setBindAddr, setBindAddress, setBindPort, setBindToAllInterfaces, setBundler, setBundlerType, setDiagnosticsHandler, setExternalAddr, setExternalPort, setInAllThreadFactories, setLevel, setLocalTransport, setLocalTransport, setLogDiscardMessages, setLogDiscardMessagesVersion, setLogicalAddrCacheExpiration, setLogicalAddrCacheMaxSize, setLogicalAddrCacheReaperInterval, setMessageFactory, setMessageProcessingPolicy, setMsgFactoryClass, setPortRange, setSocketFactory, setSourceAddress, setSuppressTimeDifferentClusterWarnings, setSuppressTimeDifferentVersionWarnings, setThreadFactory, setThreadNames, setThreadPool, setTimer, setTimeService, setTimeServiceInterval, setWhoHasCacheTimeout, startDiagnostics, stopDiagnostics, supportedKeys, timestamp, toString, unicastDestMismatch, unregisterProbeHandler, unsetThreadNames, useVirtualThreads, useVirtualThreads, versionMatch, viewMethods inherited from class org.jgroups.stack.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, providedDownServices, providedUpServices, removePolicy, requiredDownServices, requiredUpServices, resetStatistics, setDownProtocol, setErgonomics, setId, setPolicies, setProtocolStack, setUpProtocol, setValue, statsEnabled, up, up, up
-
Field Details
-
server
-
max_send_buffers
protected int max_send_buffers -
copy_on_partial_write
protected boolean copy_on_partial_write -
reader_idle_time
protected long reader_idle_time
-
-
Constructor Details
-
TCP_NIO2
public TCP_NIO2()
-
-
Method Details
-
getMaxSendBuffers
public int getMaxSendBuffers() -
setMaxSendBuffers
-
copyOnPartialWrite
public boolean copyOnPartialWrite() -
copyOnPartialWrite
-
getReaderIdleTime
public long getReaderIdleTime() -
setReaderIdleTime
-
getOpenConnections
public int getOpenConnections() -
printConnections
- Specified by:
printConnectionsin classBasicTCP
-
printBuffers
-
clearConnections
public void clearConnections() -
isSelectorOpen
public boolean isSelectorOpen() -
isAcceptorRunning
public boolean isAcceptorRunning() -
numSelects
public int numSelects() -
numPartialWrites
public int numPartialWrites() -
readerIdleTime
public void readerIdleTime(long t) -
send
-
retainAll
-
start
Description copied from class:TPCreates the unicast and multicast sockets and starts the unicast and multicast receiver threads -
stop
public void stop()Description copied from class:ProtocolCalled on aJChannel.disconnect(); stops work (e.g. by closing multicast socket). Will be called from top to bottom. -
handleConnect
- Overrides:
handleConnectin classTP- Throws:
Exception
-
handleDisconnect
protected void handleDisconnect()- Overrides:
handleDisconnectin classTP
-
getPhysicalAddress
- Specified by:
getPhysicalAddressin classTP
-