Package org.jgroups.protocols
Class TP
java.lang.Object
org.jgroups.stack.Protocol
org.jgroups.protocols.TP
- Direct Known Subclasses:
BasicTCP,LOOPBACK,SHARED_LOOPBACK,TUNNEL,UDP
Generic transport - specific implementations should extend this abstract class.
Features which are provided to the subclasses include
The
- version checking
- marshalling and unmarshalling
- message bundling (handling single messages, and message lists)
- incoming packet handler
- loopback
sendMulticast(byte[], int, int)sendUnicast(org.jgroups.PhysicalAddress, byte[], int, int)init()start(): subclasses must call super.start() after they initialize themselves (e.g., created their sockets).stop(): subclasses must call super.stop() after they deinitialized themselvesdestroy()
The
receive(Address, byte[], int, int) method must
be called by subclasses when a unicast or multicast message has been received.- Author:
- Bela Ban
-
Nested Class Summary
Nested ClassesModifier and TypeClassDescriptionprotected static interfaceprotected classstatic interfacestatic classUsed when the transport is shared (singleton_name is not null). -
Field Summary
FieldsModifier and TypeFieldDescriptionprotected InetAddressprotected Stringprotected intThe port to which the transport binds.protected TP.Bundlerprotected intprotected Stringprotected static final booleanprotected StringThe name of the group to which this member is connected.protected intKeeps track of connects and disconnects, in order to start and stop threadsprotected final ReentrantLockprotected ThreadFactoryFactory which is used by oob_thread_poolprotected TP.DiagnosticsHandlerprotected InetAddressprotected intprotected booleanDiscard packets with a different version.protected booleanprotected booleanprotected booleanEnable bundling for unicast messages.protected static NumberFormatprotected ThreadFactoryUsed by all threads created by JGroups outside of the thread poolsprotected TpHeaderThe header including the cluster name, sent with each message.protected longprotected static final byteprotected AddressThe address (host and port) of this member.protected booleanWhether or not warnings about messages from different groups are logged - private flag, not for common useprotected LazyRemovalCache<Address, PhysicalAddress> Cache which maintains mappings between logical and physical addresses.protected longprotected intprotected booleanIf true, messages sent to self are treated specially: unicast messages are looped back immediately, multicast messages get a local copy first and - when the real copy arrives - it will be discarded.protected intMaximum number of bytes for messages to be queued until they are sent.protected longMax number of milliseconds until queued messages are sent.The members of this group (updated when a member joins or leaves).protected static final byteprotected longprotected longprotected longprotected longprotected longprotected longprotected static final byteprotected ThreadFactoryFactory which is used by oob_thread_poolprotected Executorprotected booleanprotected longprotected intprotected intprotected BlockingQueue<Runnable> Used if oob_thread_pool is a ThreadPoolExecutor and oob_thread_pool_queue_enabled is trueprotected booleanprotected intprotected ThreadGroupprotected intprotected final List<TP.ProbeHandler> protected static final LazyRemovalCache.Printable<Address, PhysicalAddress> protected List<NetworkInterface> Listof interfaces to receive multicasts on. protected booleanprotected Stringprotected SocketFactoryprotected Stringprotected ExecutorThe thread pool which handles unmarshalling, version checks and dispatching of regular messagesprotected booleanprotected longprotected intprotected intprotected BlockingQueue<Runnable> Used if thread_pool is a ThreadPoolExecutor and thread_pool_queue_enabled is trueprotected booleanprotected intprotected Stringprotected longprotected TimeSchedulerprotected longprotected intprotected intprotected intprotected ThreadFactoryprotected Stringprotected final ConcurrentMap<String, Protocol> If singleton_name is enabled, this map is used to de-multiplex incoming messages according to their cluster names (attached to the message by the transport anyway).protected intprotected AgeOutCache<Address> Cache keeping track of WHO_HAS requests for physical addresses (given a logical address) and expiring them after 5000ms -
Constructor Summary
ConstructorsModifierConstructorDescriptionprotectedTP()Creates the TP protocol, and initializes the state variables, does however not start any sockets or threads. -
Method Summary
Modifier and TypeMethodDescriptionprotected voidaddPhysicalAddressToCache(Address logical_addr, PhysicalAddress physical_addr) voidClears the cache.protected static ExecutorServicecreateThreadPool(int min_threads, int max_threads, long keep_alive_time, String rejection_policy, BlockingQueue<Runnable> queue, ThreadFactory factory) voiddestroy()This method is called on aChannel.close().protected voiddispatchToThreadPool(Executor pool, Address sender, byte[] data, int offset, int length) protected voidCaller by the layer above this layer.voidprotected voidGrabs the local address (or addresses in the shared transport case) and registers them with the physical address in the transport's cacheintbooleanDeprecated.intabstract StringgetInfo()booleanintlonglonglonglonglongintintlongintintlongintintprotected abstract PhysicalAddressprotected PhysicalAddressgetPhysicalAddressFromCache(Address logical_addr) intintlongintintstatic List<NetworkInterface> Deprecated.This property was removed in 2.7Returns the SocketFactory associated with this protocol, if overridden in a subclass, or passes the call downSupposed to be overwritten by subclasses.Names the current thread.longintintgetTimer()longintintintintprotected voidprotected voidprotected ObjecthandleDownEvent(Event evt) voidinit()Called after instance has been created (null constructor) and before protocol is started.booleanbooleanbooleanbooleanbooleanbooleanbooleanstatic booleanDeprecated.This property was removed in 2.7booleanstatic booleanDeprecated.With the concurrent stack being the default, this property is ignoredprotected static RejectedExecutionHandlerparseRejectionPolicy(String rejection_policy) protected voidpassMessageUp(Message msg, boolean perform_cluster_name_matching, boolean multicast, boolean discard_own_mcast) protected voidprotected static MessagereadMessage(DataInputStream instream) protected voidSubclasses must call this method when a unicast or multicast message has been received.protected voidregisterLocalAddress(Address addr) Associates the address with the physical address fetched from the cachevoidregisterProbeHandler(TP.ProbeHandler handler) protected voidremoveLogicalAddressFromCache(Address logical_addr) voidprotected voidSerializes and sends a message.abstract voidsendMulticast(byte[] data, int offset, int length) Send to all members in the group.protected voidsendToAllPhysicalAddresses(byte[] buf, int offset, int length) protected voidsendToSingleMember(Address dest, byte[] buf, int offset, int length) abstract voidsendUnicast(PhysicalAddress dest, byte[] data, int offset, int length) Send a unicast to 1 member.voidsetBindAddress(String bind_addr) voidsetBindPort(int port) voidsetBindToAllInterfaces(boolean flag) voidsetDefaultThreadPool(Executor thread_pool) voidvoidsetDiscardIncompatiblePackets(boolean flag) voidsetEnableBundling(boolean flag) voidsetEnableUnicastBundling(boolean enable_unicast_bundling) protected voidsetInAllThreadFactories(String cluster_name, Address local_address, String pattern) voidsetLogDiscardMessages(boolean flag) voidsetLoopback(boolean b) voidsetMaxBundleSize(int size) voidsetMaxBundleTimeout(long timeout) voidsetOOBRejectionPolicy(String rejection_policy) voidsetOOBThreadPool(Executor oob_thread_pool) voidsetOOBThreadPoolKeepAliveTime(long time) voidsetOOBThreadPoolMaxThreads(int size) voidsetOOBThreadPoolMinThreads(int size) voidvoidsetPortRange(int range) voidsetRegularRejectionPolicy(String rejection_policy) voidsetSocketFactory(SocketFactory factory) Sets a SocketFactory.protected voidsetSourceAddress(Message msg) If the sender is null, set our own address.voidsetThreadFactory(ThreadFactory factory) protected voidvoidsetThreadPoolKeepAliveTime(long time) voidsetThreadPoolMaxThreads(int size) voidsetThreadPoolMinThreads(int size) voidsetThreadPoolQueueEnabled(boolean flag) voidsetTimerKeepAliveTime(long time) voidsetTimerMaxThreads(int size) voidsetTimerMinThreads(int size) voidsetTimerThreadFactory(ThreadFactory factory) voidsetUseConcurrentStack(boolean flag) Deprecated.the concurrent stack is used by defaultprotected static voidshutdownThreadPool(Executor thread_pool) voidstart()Creates the unicast and multicast sockets and starts the unicast and multicast receiver threadsvoidstop()This method is called on aChannel.disconnect().abstract booleanWhether or not hardware multicasting is supportedtoString()voidunregisterProbeHandler(TP.ProbeHandler handler) protected voidhandle the UP event.protected voidprotected static voidwriteMessage(Message msg, DataOutputStream dos, boolean multicast) This method needs to be synchronized on out_stream when it is calledprotected static voidwriteMessageList(Address dest, Address src, List<Message> msgs, DataOutputStream dos, boolean multicast) Write a lits of messages with the same destination and *mostly* the same src addresses.Methods inherited from class org.jgroups.stack.Protocol
downThreadEnabled, dumpStats, enableStats, getConfigurableObjects, getDownProtocol, getId, getLevel, getName, getProperties, getProtocolStack, getTransport, getUpProtocol, getValue, isErgonomics, printStats, providedDownServices, providedUpServices, requiredDownServices, requiredUpServices, setDownProtocol, setErgonomics, setId, setLevel, setProperties, setPropertiesInternal, setProperty, setProtocolStack, setUpProtocol, setValue, setValues, statsEnabled, upThreadEnabled
-
Field Details
-
LIST
protected static final byte LIST- See Also:
-
MULTICAST
protected static final byte MULTICAST- See Also:
-
OOB
protected static final byte OOB- See Also:
-
can_bind_to_mcast_addr
protected static final boolean can_bind_to_mcast_addr -
f
-
bind_addr
-
bind_interface_str
-
receive_on_all_interfaces
protected boolean receive_on_all_interfaces -
receive_interfaces
Listof interfaces to receive multicasts on. The multicast receive socket will listen on all of these interfaces. This is a comma-separated list of IP addresses or interface names. E.g. "192.168.5.1,eth1,127.0.0.1". Duplicates are discarded; we only bind to an interface once. If this property is set, it overrides receive_on_all_interfaces. -
logical_addr_cache_max_size
protected int logical_addr_cache_max_size -
logical_addr_cache_expiration
protected long logical_addr_cache_expiration -
bind_port
protected int bind_portThe port to which the transport binds. 0 means to bind to any (ephemeral) port -
port_range
protected int port_range -
loopback
protected boolean loopbackIf true, messages sent to self are treated specially: unicast messages are looped back immediately, multicast messages get a local copy first and - when the real copy arrives - it will be discarded. Useful for Window media (non)sense -
discard_incompatible_packets
protected boolean discard_incompatible_packetsDiscard packets with a different version. Usually minor version differences are okay. Setting this property to true means that we expect the exact same version on all incoming packets -
thread_naming_pattern
-
oob_thread_pool_enabled
protected boolean oob_thread_pool_enabled -
oob_thread_pool_min_threads
protected int oob_thread_pool_min_threads -
oob_thread_pool_max_threads
protected int oob_thread_pool_max_threads -
oob_thread_pool_keep_alive_time
protected long oob_thread_pool_keep_alive_time -
oob_thread_pool_queue_enabled
protected boolean oob_thread_pool_queue_enabled -
oob_thread_pool_queue_max_size
protected int oob_thread_pool_queue_max_size -
thread_pool_min_threads
protected int thread_pool_min_threads -
thread_pool_max_threads
protected int thread_pool_max_threads -
thread_pool_keep_alive_time
protected long thread_pool_keep_alive_time -
thread_pool_enabled
protected boolean thread_pool_enabled -
thread_pool_queue_enabled
protected boolean thread_pool_queue_enabled -
thread_pool_queue_max_size
protected int thread_pool_queue_max_size -
thread_pool_rejection_policy
-
timer_type
-
timer_min_threads
protected int timer_min_threads -
timer_max_threads
protected int timer_max_threads -
timer_keep_alive_time
protected long timer_keep_alive_time -
timer_queue_max_size
protected int timer_queue_max_size -
wheel_size
protected int wheel_size -
tick_time
protected long tick_time -
enable_bundling
protected boolean enable_bundling -
enable_unicast_bundling
protected boolean enable_unicast_bundlingEnable bundling for unicast messages. Ignored if enable_bundling is off -
enable_diagnostics
protected boolean enable_diagnostics -
diagnostics_addr
-
diagnostics_port
protected int diagnostics_port -
singleton_name
-
log_discard_msgs
protected boolean log_discard_msgsWhether or not warnings about messages from different groups are logged - private flag, not for common use -
max_bundle_size
protected int max_bundle_sizeMaximum number of bytes for messages to be queued until they are sent. This value needs to be smaller than the largest datagram packet size in case of UDP -
max_bundle_timeout
protected long max_bundle_timeoutMax number of milliseconds until queued messages are sent. Messages are sent when max_bundle_size or max_bundle_timeout has been exceeded (whichever occurs faster) -
bundler_type
-
bundler_capacity
protected int bundler_capacity -
num_msgs_sent
protected long num_msgs_sent -
num_msgs_received
protected long num_msgs_received -
num_bytes_sent
protected long num_bytes_sent -
num_bytes_received
protected long num_bytes_received -
channel_name
The name of the group to which this member is connected. With a shared transport, the channel name is in TP.ProtocolAdapter (cluster_name), and this field is not used -
num_oob_msgs_received
protected long num_oob_msgs_received -
num_incoming_msgs_received
protected long num_incoming_msgs_received -
local_addr
The address (host and port) of this member. Null by default when a shared transport is used -
members
The members of this group (updated when a member joins or leaves). With a shared transport, members contains *all* members from all channels sitting on the shared transport -
pool_thread_group
-
connect_count
protected int connect_countKeeps track of connects and disconnects, in order to start and stop threads -
connectLock
-
oob_thread_pool
-
oob_thread_factory
Factory which is used by oob_thread_pool -
oob_thread_pool_queue
Used if oob_thread_pool is a ThreadPoolExecutor and oob_thread_pool_queue_enabled is true -
thread_pool
The thread pool which handles unmarshalling, version checks and dispatching of regular messages -
default_thread_factory
Factory which is used by oob_thread_pool -
thread_pool_queue
Used if thread_pool is a ThreadPoolExecutor and thread_pool_queue_enabled is true -
timer
-
timer_thread_factory
-
global_thread_factory
Used by all threads created by JGroups outside of the thread pools -
socket_factory
-
bundler
-
diag_handler
-
preregistered_probe_handlers
-
up_prots
If singleton_name is enabled, this map is used to de-multiplex incoming messages according to their cluster names (attached to the message by the transport anyway). The values are the next protocols above the transports. -
header
The header including the cluster name, sent with each message. Not used with a shared transport (instead TP.ProtocolAdapter attaches the header to the message -
logical_addr_cache
Cache which maintains mappings between logical and physical addresses. When sending a message to a logical address, we look up the physical address from logical_addr_cache and send the message to the physical address
The keys are logical addresses, the values physical addresses -
last_discovery_request
protected long last_discovery_request -
print_function
-
who_has_cache
Cache keeping track of WHO_HAS requests for physical addresses (given a logical address) and expiring them after 5000ms
-
-
Constructor Details
-
TP
protected TP()Creates the TP protocol, and initializes the state variables, does however not start any sockets or threads.
-
-
Method Details
-
setMaxBundleSize
public void setMaxBundleSize(int size) -
getMaxBundleTimeout
public long getMaxBundleTimeout() -
setMaxBundleTimeout
public void setMaxBundleTimeout(long timeout) -
getMaxBundleSize
public int getMaxBundleSize() -
getBundlerBufferSize
public int getBundlerBufferSize() -
setOOBThreadPoolKeepAliveTime
public void setOOBThreadPoolKeepAliveTime(long time) -
getOOBThreadPoolKeepAliveTime
public long getOOBThreadPoolKeepAliveTime() -
setOOBThreadPoolMinThreads
public void setOOBThreadPoolMinThreads(int size) -
getOOBThreadPoolMinThreads
public int getOOBThreadPoolMinThreads() -
setOOBThreadPoolMaxThreads
public void setOOBThreadPoolMaxThreads(int size) -
getOOBThreadPoolMaxThreads
public int getOOBThreadPoolMaxThreads() -
setThreadPoolMinThreads
public void setThreadPoolMinThreads(int size) -
getThreadPoolMinThreads
public int getThreadPoolMinThreads() -
setThreadPoolMaxThreads
public void setThreadPoolMaxThreads(int size) -
getThreadPoolMaxThreads
public int getThreadPoolMaxThreads() -
setThreadPoolKeepAliveTime
public void setThreadPoolKeepAliveTime(long time) -
getThreadPoolKeepAliveTime
public long getThreadPoolKeepAliveTime() -
setTimerMinThreads
public void setTimerMinThreads(int size) -
getTimerMinThreads
public int getTimerMinThreads() -
setTimerMaxThreads
public void setTimerMaxThreads(int size) -
getTimerMaxThreads
public int getTimerMaxThreads() -
setTimerKeepAliveTime
public void setTimerKeepAliveTime(long time) -
getTimerKeepAliveTime
public long getTimerKeepAliveTime() -
getTimerQueueSize
public int getTimerQueueSize() -
getTimerClass
-
supportsMulticasting
public abstract boolean supportsMulticasting()Whether or not hardware multicasting is supported -
toString
-
resetStats
public void resetStats()- Overrides:
resetStatsin classProtocol
-
registerProbeHandler
-
unregisterProbeHandler
-
getPoolThreadGroup
-
setThreadPoolQueueEnabled
public void setThreadPoolQueueEnabled(boolean flag) -
getDefaultThreadPool
-
setDefaultThreadPool
-
getDefaultThreadPoolThreadFactory
-
setDefaultThreadPoolThreadFactory
-
getOOBThreadPool
-
setOOBThreadPool
-
getOOBThreadPoolThreadFactory
-
setOOBThreadPoolThreadFactory
-
getTimerThreadFactory
-
setTimerThreadFactory
-
getTimer
-
getThreadFactory
Description copied from class:ProtocolSupposed to be overwritten by subclasses. Usually the transport returns a valid non-null thread factory, but thread factories can also be created by individual protocols- Overrides:
getThreadFactoryin classProtocol- Returns:
-
setThreadFactory
-
getSocketFactory
Description copied from class:ProtocolReturns the SocketFactory associated with this protocol, if overridden in a subclass, or passes the call down- Overrides:
getSocketFactoryin classProtocol- Returns:
- SocketFactory
-
setSocketFactory
Description copied from class:ProtocolSets a SocketFactory. Socket factories are typically provided by the transport (TP) orTP.ProtocolAdapter- Overrides:
setSocketFactoryin classProtocol- Parameters:
factory-
-
getThreadNamingPattern
Names the current thread. Valid values are "pcl": p: include the previous (original) name, e.g. "Incoming thread-1", "UDP ucast receiver" c: include the cluster name, e.g. "MyCluster" l: include the local address of the current member, e.g. "192.168.5.1:5678" -
getNumMessagesSent
public long getNumMessagesSent() -
getNumMessagesReceived
public long getNumMessagesReceived() -
getNumBytesSent
public long getNumBytesSent() -
getNumBytesReceived
public long getNumBytesReceived() -
getBindAddress
-
setBindAddress
- Throws:
UnknownHostException
-
getBindAddressAsInetAddress
-
getBindPort
public int getBindPort() -
setBindPort
public void setBindPort(int port) -
getBindToAllInterfaces
public boolean getBindToAllInterfaces()Deprecated.UseisReceiveOnAllInterfaces()instead -
setBindToAllInterfaces
public void setBindToAllInterfaces(boolean flag) -
isReceiveOnAllInterfaces
public boolean isReceiveOnAllInterfaces() -
getReceiveInterfaces
-
isSendOnAllInterfaces
public static boolean isSendOnAllInterfaces()Deprecated.This property was removed in 2.7 -
getSendInterfaces
Deprecated.This property was removed in 2.7 -
isDiscardIncompatiblePackets
public boolean isDiscardIncompatiblePackets() -
setDiscardIncompatiblePackets
public void setDiscardIncompatiblePackets(boolean flag) -
isEnableBundling
public boolean isEnableBundling() -
setEnableBundling
public void setEnableBundling(boolean flag) -
isEnableUnicastBundling
public boolean isEnableUnicastBundling() -
setEnableUnicastBundling
public void setEnableUnicastBundling(boolean enable_unicast_bundling) -
setPortRange
public void setPortRange(int range) -
getPortRange
public int getPortRange() -
setUseConcurrentStack
Deprecated.the concurrent stack is used by default -
isOOBThreadPoolEnabled
public boolean isOOBThreadPoolEnabled() -
isDefaulThreadPoolEnabled
public boolean isDefaulThreadPoolEnabled() -
isLoopback
public boolean isLoopback() -
setLoopback
public void setLoopback(boolean b) -
isUseIncomingPacketHandler
public static boolean isUseIncomingPacketHandler()Deprecated.With the concurrent stack being the default, this property is ignored -
getUpProtocols
-
getOOBPoolSize
public int getOOBPoolSize() -
getOOBMessages
public long getOOBMessages() -
getOOBQueueSize
public int getOOBQueueSize() -
getOOBMaxQueueSize
public int getOOBMaxQueueSize() -
setOOBRejectionPolicy
-
getRegularPoolSize
public int getRegularPoolSize() -
getRegularMessages
public long getRegularMessages() -
getRegularQueueSize
public int getRegularQueueSize() -
getRegularMaxQueueSize
public int getRegularMaxQueueSize() -
getNumTimerTasks
public int getNumTimerTasks() -
dumpTimerTasks
-
getTimerThreads
public int getTimerThreads() -
setRegularRejectionPolicy
-
setLogDiscardMessages
public void setLogDiscardMessages(boolean flag) -
getLogDiscardMessages
public boolean getLogDiscardMessages() -
printLogicalAddressCache
-
evictLogicalAddressCache
public void evictLogicalAddressCache() -
sendMulticast
Send to all members in the group. UDP would use an IP multicast message, whereas TCP would send N messages, one for each member- Parameters:
data- The data to be sent. This is not a copy, so don't modify itoffset-length-- Throws:
Exception
-
sendUnicast
public abstract void sendUnicast(PhysicalAddress dest, byte[] data, int offset, int length) throws Exception Send a unicast to 1 member. Note that the destination address is a *physical*, not a logical address- Parameters:
dest- Must be a non-null unicast addressdata- The data to be sent. This is not a copy, so don't modify itoffset-length-- Throws:
Exception
-
getInfo
-
init
Description copied from class:ProtocolCalled after instance has been created (null constructor) and before protocol is started. Properties are already set. Other protocols are not yet connected and events cannot yet be sent. -
destroy
public void destroy()Description copied from class:ProtocolThis method is called on aChannel.close(). Does some cleanup; after the call the VM will terminate -
start
Creates the unicast and multicast sockets and starts the unicast and multicast receiver threads- Overrides:
startin classProtocol- 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:ProtocolThis 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 -
handleConnect
- Throws:
Exception
-
handleDisconnect
protected void handleDisconnect() -
getSingletonName
-
isSingleton
public boolean isSingleton() -
up
handle the UP event. -
down
Caller by the layer above this layer. Usually we just put this Message into the send queue and let one or more worker threads handle it. A worker thread then removes the Message from the send queue, performs a conversion and adds the modified Message to the send queue of the layer below it, by calling down()). -
setSourceAddress
If the sender is null, set our own address. We cannot just go ahead and set the address anyway, as we might be sending a message on behalf of someone else ! E.g. in case of retransmission, when the original sender has crashed, or in a FLUSH protocol when we have to return all unstable messages with the FLUSH_OK response. -
passMessageUp
protected void passMessageUp(Message msg, boolean perform_cluster_name_matching, boolean multicast, boolean discard_own_mcast) -
receive
Subclasses must call this method when a unicast or multicast message has been received. Declared final so subclasses cannot override this method.- Parameters:
sender-data-offset-length-
-
dispatchToThreadPool
-
send
Serializes and sends a message. This method is not reentrant- Throws:
Exception
-
doSend
- Throws:
Exception
-
sendToSingleMember
protected void sendToSingleMember(Address dest, byte[] buf, int offset, int length) throws Exception - Throws:
Exception
-
sendToAllPhysicalAddresses
- Throws:
Exception
-
writeMessage
protected static void writeMessage(Message msg, DataOutputStream dos, boolean multicast) throws Exception This method needs to be synchronized on out_stream when it is called- Parameters:
msg-- Throws:
IOExceptionException
-
readMessage
- Throws:
Exception
-
writeMessageList
protected static void writeMessageList(Address dest, Address src, List<Message> msgs, DataOutputStream dos, boolean multicast) throws Exception Write a lits of messages with the same destination and *mostly* the same src addresses. The message list is marshalled as follows:List: * | version | flags | dest | src | [Message*] | Message: | presence | leading | flags | [src] | length | [buffer] | size | [Headers*] |
- Parameters:
dest-src-msgs-dos-multicast-- Throws:
Exception
-
readMessageList
- Throws:
Exception
-
handleDownEvent
-
registerLocalAddress
Associates the address with the physical address fetched from the cache- Parameters:
addr-
-
fetchLocalAddresses
protected void fetchLocalAddresses()Grabs the local address (or addresses in the shared transport case) and registers them with the physical address in the transport's cache -
setThreadNames
protected void setThreadNames() -
unsetThreadNames
protected void unsetThreadNames() -
setInAllThreadFactories
-
createThreadPool
protected static ExecutorService createThreadPool(int min_threads, int max_threads, long keep_alive_time, String rejection_policy, BlockingQueue<Runnable> queue, ThreadFactory factory) -
shutdownThreadPool
-
verifyRejectionPolicy
- Throws:
Exception
-
parseRejectionPolicy
-
passToAllUpProtocols
-
addPhysicalAddressToCache
-
getPhysicalAddressFromCache
-
removeLogicalAddressFromCache
-
clearLogicalAddressCache
public void clearLogicalAddressCache()Clears the cache. Do not use, this is only for unit testing ! -
getPhysicalAddress
-
isReceiveOnAllInterfaces()instead