Class TcpSocketManager

All Implemented Interfaces:
AutoCloseable, ByteBufferDestination
Direct Known Subclasses:
SslSocketManager

public class TcpSocketManager extends AbstractSocketManager
Manager of TCP Socket connections.
  • Field Details

    • DEFAULT_RECONNECTION_DELAY_MILLIS

      public static final int DEFAULT_RECONNECTION_DELAY_MILLIS
      The default reconnection delay (30000 milliseconds or 30 seconds).
      See Also:
  • Constructor Details

    • TcpSocketManager

      @Deprecated public TcpSocketManager(String name, OutputStream os, Socket socket, InetAddress inetAddress, String host, int port, int connectTimeoutMillis, int reconnectionDelayMillis, boolean immediateFail, Layout<? extends Serializable> layout, int bufferSize)
      Constructs.
      Parameters:
      name - The unique name of this connection.
      os - The OutputStream.
      socket - The Socket.
      inetAddress - The Internet address of the host.
      host - The name of the host.
      port - The port number on the host.
      connectTimeoutMillis - the connect timeout in milliseconds.
      reconnectionDelayMillis - Reconnection interval.
      immediateFail - True if the write should fail if no socket is immediately available.
      layout - The Layout.
      bufferSize - The buffer size.
    • TcpSocketManager

      public TcpSocketManager(String name, OutputStream os, Socket socket, InetAddress inetAddress, String host, int port, int connectTimeoutMillis, int reconnectionDelayMillis, boolean immediateFail, Layout<? extends Serializable> layout, int bufferSize, SocketOptions socketOptions)
      Constructs.
      Parameters:
      name - The unique name of this connection.
      os - The OutputStream.
      socket - The Socket.
      inetAddress - The Internet address of the host.
      host - The name of the host.
      port - The port number on the host.
      connectTimeoutMillis - the connect timeout in milliseconds.
      reconnectionDelayMillis - Reconnection interval.
      immediateFail - True if the write should fail if no socket is immediately available.
      layout - The Layout.
      bufferSize - The buffer size.
  • Method Details

    • getSocketManager

      @Deprecated public static TcpSocketManager getSocketManager(String host, int port, int connectTimeoutMillis, int reconnectDelayMillis, boolean immediateFail, Layout<? extends Serializable> layout, int bufferSize)
      Obtains a TcpSocketManager.
      Parameters:
      host - The host to connect to.
      port - The port on the host.
      connectTimeoutMillis - the connect timeout in milliseconds
      reconnectDelayMillis - The interval to pause between retries.
      bufferSize - The buffer size.
      Returns:
      A TcpSocketManager.
    • getSocketManager

      public static TcpSocketManager getSocketManager(String host, int port, int connectTimeoutMillis, int reconnectDelayMillis, boolean immediateFail, Layout<? extends Serializable> layout, int bufferSize, SocketOptions socketOptions)
      Obtains a TcpSocketManager.
      Parameters:
      host - The host to connect to.
      port - The port on the host.
      connectTimeoutMillis - the connect timeout in milliseconds
      reconnectDelayMillis - The interval to pause between retries.
      bufferSize - The buffer size.
      Returns:
      A TcpSocketManager.
    • write

      protected void write(byte[] bytes, int offset, int length, boolean immediateFlush)
      Description copied from class: OutputStreamManager
      Some output streams synchronize writes while others do not. Synchronizing here insures that log events won't be intertwined.
      Overrides:
      write in class OutputStreamManager
      Parameters:
      bytes - The serialized Log event.
      offset - The offset into the byte array.
      length - The number of bytes to write.
      immediateFlush - flushes immediately after writing.
    • closeOutputStream

      protected boolean closeOutputStream()
      Overrides:
      closeOutputStream in class OutputStreamManager
    • getConnectTimeoutMillis

      public int getConnectTimeoutMillis()
    • getContentFormat

      public Map<String,String> getContentFormat()
      Gets this TcpSocketManager's content format. Specified by:
      • Key: "protocol" Value: "tcp"
      • Key: "direction" Value: "out"
      Overrides:
      getContentFormat in class AbstractSocketManager
      Returns:
      Map of content format keys supporting TcpSocketManager
    • createSocket

      protected Socket createSocket(InetSocketAddress socketAddress) throws IOException
      Throws:
      IOException
    • createSocket

      protected static Socket createSocket(InetSocketAddress socketAddress, SocketOptions socketOptions, int connectTimeoutMillis) throws IOException
      Throws:
      IOException
    • setHostResolver

      public static void setHostResolver(TcpSocketManager.HostResolver resolver)
      This method is only for unit testing. It is not Thread-safe.
      Parameters:
      resolver - the HostResolver.
    • getSocketOptions

      public SocketOptions getSocketOptions()
      USE AT YOUR OWN RISK, method is public for testing purpose only for now.
    • getSocket

      public Socket getSocket()
      USE AT YOUR OWN RISK, method is public for testing purpose only for now.
    • getReconnectionDelayMillis

      public int getReconnectionDelayMillis()
    • toString

      public String toString()
      Overrides:
      toString in class Object