Class TcpTransportServer

    • Field Detail

      • serverSocket

        protected volatile ServerSocket serverSocket
      • selector

        protected volatile Selector selector
      • backlog

        protected int backlog
      • maxInactivityDuration

        protected long maxInactivityDuration
      • maxInactivityDurationInitalDelay

        protected long maxInactivityDurationInitalDelay
      • minmumWireFormatVersion

        protected int minmumWireFormatVersion
      • useQueueForAccept

        protected boolean useQueueForAccept
      • allowLinkStealing

        protected boolean allowLinkStealing
      • verifyHostName

        protected boolean verifyHostName
      • trace

        protected boolean trace
        trace=true -> the Transport stack where this TcpTransport object will be, will have a TransportLogger layer trace=false -> the Transport stack where this TcpTransport object will be, will NOT have a TransportLogger layer, and therefore will never be able to print logging messages. This parameter is most probably set in Connection or TransportConnector URIs.
      • soTimeout

        protected int soTimeout
      • socketBufferSize

        protected int socketBufferSize
      • connectionTimeout

        protected int connectionTimeout
      • logWriterName

        protected String logWriterName
        Name of the LogWriter implementation to use. Names are mapped to classes in the resources/META-INF/services/org/apache/activemq/transport/logwriters directory. This parameter is most probably set in Connection or TransportConnector URIs.
      • dynamicManagement

        protected boolean dynamicManagement
        Specifies if the TransportLogger will be manageable by JMX or not. Also, as long as there is at least 1 TransportLogger which is manageable, a TransportLoggerControl MBean will me created.
      • startLogging

        protected boolean startLogging
        startLogging=true -> the TransportLogger object of the Transport stack will initially write messages to the log. startLogging=false -> the TransportLogger object of the Transport stack will initially NOT write messages to the log. This parameter only has an effect if trace == true. This parameter is most probably set in Connection or TransportConnector URIs.
      • jmxPort

        protected int jmxPort
      • socketHandlerThread

        protected Thread socketHandlerThread
      • maximumConnections

        protected int maximumConnections
        The maximum number of sockets allowed for this server
      • currentTransportCount

        protected final AtomicInteger currentTransportCount
    • Method Detail

      • getWireFormatFactory

        public WireFormatFactory getWireFormatFactory()
        Returns:
        Returns the wireFormatFactory.
      • setWireFormatFactory

        public void setWireFormatFactory​(WireFormatFactory wireFormatFactory)
        Parameters:
        wireFormatFactory - The wireFormatFactory to set.
      • setBrokerInfo

        public void setBrokerInfo​(BrokerInfo brokerInfo)
        Associates a broker info with the transport server so that the transport can do discovery advertisements of the broker.
        Specified by:
        setBrokerInfo in interface TransportServer
        Parameters:
        brokerInfo -
      • getMaxInactivityDuration

        public long getMaxInactivityDuration()
      • setMaxInactivityDuration

        public void setMaxInactivityDuration​(long maxInactivityDuration)
      • getMaxInactivityDurationInitalDelay

        public long getMaxInactivityDurationInitalDelay()
      • setMaxInactivityDurationInitalDelay

        public void setMaxInactivityDurationInitalDelay​(long maxInactivityDurationInitalDelay)
      • getMinmumWireFormatVersion

        public int getMinmumWireFormatVersion()
      • setMinmumWireFormatVersion

        public void setMinmumWireFormatVersion​(int minmumWireFormatVersion)
      • isTrace

        public boolean isTrace()
      • setTrace

        public void setTrace​(boolean trace)
      • getLogWriterName

        public String getLogWriterName()
      • setLogWriterName

        public void setLogWriterName​(String logFormat)
      • isDynamicManagement

        public boolean isDynamicManagement()
      • setDynamicManagement

        public void setDynamicManagement​(boolean useJmx)
      • setJmxPort

        public void setJmxPort​(int jmxPort)
      • getJmxPort

        public int getJmxPort()
      • isStartLogging

        public boolean isStartLogging()
      • setStartLogging

        public void setStartLogging​(boolean startLogging)
      • getBacklog

        public int getBacklog()
        Returns:
        the backlog
      • setBacklog

        public void setBacklog​(int backlog)
        Parameters:
        backlog - the backlog to set
      • isUseQueueForAccept

        public boolean isUseQueueForAccept()
        Returns:
        the useQueueForAccept
      • setUseQueueForAccept

        public void setUseQueueForAccept​(boolean useQueueForAccept)
        Parameters:
        useQueueForAccept - the useQueueForAccept to set
      • run

        public void run()
        pull Sockets from the ServerSocket
        Specified by:
        run in interface Runnable
      • createTransport

        protected Transport createTransport​(Socket socket,
                                            WireFormat format)
                                     throws IOException
        Allow derived classes to override the Transport implementation that this transport server creates.
        Parameters:
        socket -
        format -
        Returns:
        a new Transport instance.
        Throws:
        IOException
      • toString

        public String toString()
        Overrides:
        toString in class Object
        Returns:
        pretty print of this
      • getSocketAddress

        public InetSocketAddress getSocketAddress()
        Specified by:
        getSocketAddress in interface TransportServer
        Returns:
        The socket address that this transport is accepting connections on or null if this does not or is not currently accepting connections on a socket.
      • handleSocket

        protected void handleSocket​(Socket socket)
      • doHandleSocket

        protected final void doHandleSocket​(Socket socket)
      • getSoTimeout

        public int getSoTimeout()
      • setSoTimeout

        public void setSoTimeout​(int soTimeout)
      • getSocketBufferSize

        public int getSocketBufferSize()
      • setSocketBufferSize

        public void setSocketBufferSize​(int socketBufferSize)
      • getConnectionTimeout

        public int getConnectionTimeout()
      • setConnectionTimeout

        public void setConnectionTimeout​(int connectionTimeout)
      • getMaximumConnections

        public int getMaximumConnections()
        Returns:
        the maximumConnections
      • setMaximumConnections

        public void setMaximumConnections​(int maximumConnections)
        Parameters:
        maximumConnections - the maximumConnections to set
      • getCurrentTransportCount

        public AtomicInteger getCurrentTransportCount()
      • isSslServer

        public boolean isSslServer()
        Description copied from interface: TransportServer
        For TransportServers that provide SSL connections to their connected peers they should return true here if and only if they populate the ConnectionInfo command presented to the Broker with the peers certificate chain so that the broker knows it can use that information to authenticate the connected peer.
        Specified by:
        isSslServer in interface TransportServer
        Returns:
        true if this transport server provides SSL level security over its connections.
      • isAllowLinkStealing

        public boolean isAllowLinkStealing()
        Description copied from interface: TransportServer
        Some protocols allow link stealing by default (if 2 connections have the same clientID - the youngest wins). This is the default for AMQP and MQTT. However, JMS 1.1 spec requires the opposite
        Specified by:
        isAllowLinkStealing in interface TransportServer
        Overrides:
        isAllowLinkStealing in class TransportServerSupport
        Returns:
        true if allow link stealing is enabled.