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
In the default configuration of 3.2.4, UIL2 is the only external client connector, all other
connection factories reference this one.
<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>
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(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.