Skip navigation links

Oracle® Coherence Java API Reference
Release 3.6.1.0

E18814-01


com.tangosol.net
Class NonBlockingTcpDatagramSocket

java.lang.Object
  extended by java.net.DatagramSocket
      extended by com.tangosol.net.TcpDatagramSocket
          extended by com.tangosol.net.NonBlockingTcpDatagramSocket


public class NonBlockingTcpDatagramSocket
extends TcpDatagramSocket

TCP based non-blocking datagram socket implementation. In order to provide a non-blocking API this implementation may drop packets if the underlying TCP transfer buffers are full.

Author:
mf 2009.12.16

Nested Class Summary
static class NonBlockingTcpDatagramSocket.Impl
           

 

Field Summary
static boolean SPLIT
          Flag indicating if split sockets should be used for TcpDatagram sockets.

 

Fields inherited from class com.tangosol.net.TcpDatagramSocket
IO_EXCEPTIONS_LOG_LEVEL, m_impl

 

Constructor Summary
  NonBlockingTcpDatagramSocket()
           
  NonBlockingTcpDatagramSocket(int nPort)
           
  NonBlockingTcpDatagramSocket(int nPort, java.net.InetAddress addr)
           
protected NonBlockingTcpDatagramSocket(NonBlockingTcpDatagramSocket.Impl impl)
           
  NonBlockingTcpDatagramSocket(java.net.SocketAddress addr)
           
  NonBlockingTcpDatagramSocket(SocketProvider provider)
           

 

Method Summary

 

Methods inherited from class com.tangosol.net.TcpDatagramSocket
bind, isBound, provider, receive, send, setAdvanceFrequency, setListenBacklog, setPacketMagic, setSocketOptions, toString

 

Methods inherited from class java.net.DatagramSocket
close, connect, connect, disconnect, getBroadcast, getChannel, getInetAddress, getLocalAddress, getLocalPort, getLocalSocketAddress, getPort, getReceiveBufferSize, getRemoteSocketAddress, getReuseAddress, getSendBufferSize, getSoTimeout, getTrafficClass, isClosed, isConnected, setBroadcast, setDatagramSocketImplFactory, setReceiveBufferSize, setReuseAddress, setSendBufferSize, setSoTimeout, setTrafficClass

 

Field Detail

SPLIT

public static final boolean SPLIT
Flag indicating if split sockets should be used for TcpDatagram sockets. While this should ideally never be needed, testing on Linux has shown that under heavy packet loads the socket can appear to stall and refuse to accept or emit data. Worse still while the socket is in this state the NIC is transmitting ~300,000 packets/second, even when the process is paused CTRL+Z'd. This setting is conceptually similar to the "tangosol.coherence.datagram.splitsocket" but only applies to TcpDatagram sockets. Additionally it does not require multiple listening ports, just multiple connections. As of 3.6.1 this value defaults to false. This became "safe" in 3.6.1 since this version began using multiple listening sockets, and avoids the case which would be likely to trigger the Linux stall issue.

Constructor Detail

NonBlockingTcpDatagramSocket

public NonBlockingTcpDatagramSocket()
                             throws java.net.SocketException
Throws:
java.net.SocketException

NonBlockingTcpDatagramSocket

public NonBlockingTcpDatagramSocket(java.net.SocketAddress addr)
                             throws java.net.SocketException
Throws:
java.net.SocketException

NonBlockingTcpDatagramSocket

public NonBlockingTcpDatagramSocket(int nPort)
                             throws java.net.SocketException
Throws:
java.net.SocketException

NonBlockingTcpDatagramSocket

public NonBlockingTcpDatagramSocket(int nPort,
                                    java.net.InetAddress addr)
                             throws java.net.SocketException
Throws:
java.net.SocketException

NonBlockingTcpDatagramSocket

public NonBlockingTcpDatagramSocket(SocketProvider provider)
                             throws java.net.SocketException
Throws:
java.net.SocketException

NonBlockingTcpDatagramSocket

protected NonBlockingTcpDatagramSocket(NonBlockingTcpDatagramSocket.Impl impl)

Skip navigation links

Oracle® Coherence Java API Reference
Release 3.6.1.0

E18814-01


Copyright © 2000, 2010, Oracle and/or its affiliates. All rights reserved.