Version 14

    UIL2ConnectionFactory Configuration

     

    JBossMQ connector using a single tcp/ip connection between the server and the client.

     

    The configuration can be found in uil2-service.xml

    In older versions of JBoss it was in jbossmq-service.xml

     

    3.2.4 changes

    In the default configuration of 3.2.4, UIL2 is the only external client connector, all other

    connection factories reference this one.

     

    Default Configuration

      <mbean code="org.jboss.mq.il.uil2.UILServerILService"
          name="jboss.mq:service=InvocationLayer,type=UIL2">
        <!-- The server chain -->
        <depends optional-attribute-name="Invoker">jboss.mq:service=Invoker</depends>
        <!-- JNDI binding -->
        <attribute name="ConnectionFactoryJNDIRef">UIL2ConnectionFactory</attribute>
        <!-- JNDI binding for XA -->
        <attribute name="XAConnectionFactoryJNDIRef">UIL2XAConnectionFactory</attribute>
        <!-- The bind address -->
        <attribute name="BindAddress"></attribute>
        <!-- The bind port -->
        <attribute name="ServerBindPort">8093</attribute>
        <!-- The ping period in millis -->
        <attribute name="PingPeriod">60000</attribute>
        <!-- Whether tcp/ip does not wait for buffer fills -->
        <attribute name="EnableTcpNoDelay">true</attribute>
        <!-- Used to disconnect the client if there is no activity -->
        <!-- Ensure this is greater than the ping period -->
        <attribute name="ReadTimeout">120000</attribute>
        <!-- The size of the buffer (in bytes) wrapping the socket -->
        <!-- The buffer is flushed after each request -->
        <attribute name="BufferSize">2048</attribute>
        <!-- Large messages may block the ping/pong -->
        <!-- A pong is simulated after each chunk (in bytes) for both reading and writing -->
        <!-- It must be larger than the buffer size -->
        <attribute name="ChunkSize">1000000</attribute>
      </mbean>
    

     

    Configurable Attributes

    • Invoker
      - the ObjectName of the interceptor chain that leads to the JMSDestinationManager

    • ConnectionFactoryJNDIRef
      - the jndi binding - default UIL2ConnectionFactory

    • XAConnectionFactoryJNDIRef
      - the jndi binding of the XA connection factory - default UIL2XAConnectionFactory

    • PingPeriod
      - the period after which a ping is sent to the server, if the server does not pong within a further PingPeriod a connection failure is reported to any ExceptionListener

    • ClientID
      - the fixed ClientID for this connection factory

    • ServerBindPort
      - the server socket listens on this port - default 8093

    • BindAddress
      - the server socket binds to this address - default jboss.bind.address which is all interfaces 0.0.0.0 by default

    • EnableTcpNoDelay
      - when true tcp/ip does not wait for buffers to fill before sending them

    • BufferSize
      - the buffer used when serializing/deserializing objects (not to be confused with the tcp/ip buffer)

    • ChunkSize
      - the number of bytes written to the buffer before it simulates a pong from the server to avoid large messages blocking the ping/pong traffic

    • ReadTimeout
      - the period after which the server will disconnect the client if there is no activity (including pings) from the client - normally clients should close their connects

    • ClientReadTimeout
      (4.0.3+) - the period after which the client will disconnect if it is no longer receiving from the server (including pongs from the pings)

    • ClientSocketFactory
      - the class name of a socket implementation used on a client

    • ServerSocketFactory
      - the class name of a socket implementation used on the server

    • SecurityDomain
      - the security configuration used for example by SSL socket factories

    • ClientAddress
      (3.2.6,4.0.1): The address passed to the client as the address that should be used to connect to the server. This may be needed when a client connects through a firewall/proxy (deprecated use
      ConnectAddress
      ).

    • ConnectAddress
      (4.0.3+): The hostname/ip address passed to the client as the address that should be used to connect to the server. This may be needed when a client connects through a firewall/proxy. The hostname is not resolved until its used on the client side using the InetAddress.getName(String) method.

    • ConnectPort
      (4.0.3+): The port passed to the client as the port that should be used to connect to the server. This may be needed when a client connects through a firewall/proxy.

     

    JMS client properties for the UIL2 transport

    There are several system properties that a JMS client using the UIL2 transport can set to control the client connection back to the server

     

    • org.jboss.mq.il.uil2.useServerHost: This system property allows a client to to connect to the server InetAddress.getHostName rather than theInetAddress.getHostAddress value. This will only make a difference if there different address to name resolution between the server and client environments.

    • org.jboss.mq.il.uil2.localAddr: This system property allows a client to define the local interface to which its sockets should be bound.

    • org.jboss.mq.il.uil2.localPort: This system property allows a client to define the local port to which its sockets should be bound

    • org.jboss.mq.il.uil2.serverAddr: This system property allows a client to override the address to which it attempts to connect to. This is useful for networks where NAT is ocurring between the client and JMS server.

    • org.jboss.mq.il.uil2.serverPort: This system property allows a client to override the port to which it attempts to connect. This is useful for for networks where port forwarding is ocurring between the client and jms server.

    • org.jboss.mq.il.uil2.retryCount: This system property controls the number of attempts to retry connecting to the JMS server. Retries are only made for java.net.ConnectException failures. A value <= 0 means no retry atempts will be made.

    • org.jboss.mq.il.uil2.retryDelay: This system property controls the delay in milliseconds between retries due to ConnectException failures.