Connection URL Format
Format
amqp://[<user>:<pass>@][<clientid>]<virtualhost>[?<option>='<value>'[&<option>='<value>']]
The connection url defines the values that are common across
the cluster of brokers. The virtual host is second in the list
as the AMQP specification demands that it start with a '/'
otherwise it be more readable to be swapped with
clientid. There is currently only one required option and that
is the brokerlist option. In addition the
following options are recognised. Worked Example You could use a URL which looks something like this:
amqp://guest:guest@client1/development?brokerlist='tcp://localhost:5672'
Breaking this example down, here's what it all
means: amqp = the protocol we're using
guest:guest@localhost = username:password@clientid
where the clientid is the name of your server (used under
the covers but don't worry about this for now). Always use
the guest:guest combination at the moment. development = the name of the virtualhost, where the
virtualhost is a path which acts as a namespace. You can
effectively use any value here so long as you're consistent
throughout. The virtualhost must start with a slash "/" and
continue with names separated by slashes. A name consists of
any combination of at least one of [A-Za-z0-9] plus zero or
more of [.-_+!=:]. brokerlist = this is the host address and port for
the broker you want to connect to. The connection factory
will assume tcp if you don't specify a transport
protocol. The port also defaults to 5672. Naturally you have
to put at least one broker in this list. This example is not using failover so only provides
one host for the broker. If you do wish to connect using
failover you can provide two (or more) brokers in the
format:
brokerlist='tcp://host1&tcp://host2:5673' The default failover setup will automatically retry
each broker once after a failed connection. If the
brokerlist contains more than one server then these servers
are tried in a round robin. Details on how to modifiy this
behaviour will follow soon ! Options
Connection URL Options
Option
Default
Description
brokerlist
see below
The list of brokers to use for this connection
failover
see below
The type of failover method to use with the broker list.
maxprefetch
5000
The maximum number of messages to prefetch from the broker.
Brokerlist option
brokerlist='<broker url>[;<broker url>]'
The broker list defines the various brokers that can be used for
this connection. A minimum of one broker url is required
additional URLs are semi-colon(';') delimited.
Broker URL format
<transport>://<host>[:<port>][?<option>='<value>'[&<option>='<value>']]
There are currently quite a few default values that can be
assumed. This was done so that the current client examples would
not have to be re-written. The result is if there is no
transport, 'tcp' is assumed and the default AMQP port of 5672 is
used if no port is specified.
Broker URL- Transport
Transport
tcp
vm
Currently only 'tcp' and 'vm' transports are supported. Each
broker can take have additional options that are specific to that
broker. The following are currently implemented options. To add
support for further transports the
''client.transportTransportConnection'' class needs updating
along with the parsing to handle the transport.
Broker URL - Connection Options
Option
Default
Description
retries
1
The number of times to retry connection to this Broker
ssl
false
Use ssl on the connection
connecttimeout
30000
How long in (milliseconds) to wait for the connection to
succeed
connectdelay
none
How long in (milliseconds) to wait before attempting to
reconnect
Brokerlist failover option
failover='<method>[?<options>]'
This option controls how failover occurs when presented with a
list of brokers. There are only two methods currently implemented
but interface qpid.jms.failover.FailoverMethod can be
used for defining further methods.
Currently implemented failover methods.
Broker List - Failover Options
Method
Description
singlebroker
This will only use the first broker in the list.
roundrobin
This method tries each broker in turn.
nofailover
[New in 0.5] This method disables all retry and failover
logic.
The current defaults are naturally to use the 'singlebroker' when
only one broker is present and the 'roundrobin' method with
multiple brokers. The '''method''' value in the URL may also be
any valid class on the classpath that implements the
FailoverMethod interface.
The 'nofailover' method is useful if you are using a 3rd party
tool such as Mule that has its own reconnection strategy that you
wish to use.
Broker List - Failover Options
Option
Default
Description
cyclecount
1
The number of times to loop through the list of available
brokers before failure.
Note: Default was changed from 0 to 1 in Release 0.5
Sample URLs
amqp:///test?brokerlist='localhost'
amqp:///test?brokerlist='tcp://anotherhost:5684?retries='10''
amqp://guest:guest@/test?brokerlist='vm://:1;vm://:2'&failover='roundrobin'
amqp://guest:guest@/test?brokerlist='vm://:1;vm://:2'&failover='roundrobin?cyclecount='20''
amqp://guest:guest@client/test?brokerlist='tcp://localhost;tcp://redundant-server:5673?ssl='true''&failover='roundrobin'
amqp://guest:guest@/test?brokerlist='vm://:1'&failover='nofailover'