-
Enhancement
-
Resolution: Done
-
Major
-
None
-
6.2.0
-
None
-
Sprint 6.2 - postGA - 1, Sprint 2015-M
A new version (0.5.0) of the AMQP JMS client will be released shortly (with the MRG-M 3.2 release and also updated for A-MQ 6.2). Due to changes in the code, there are some new things to add to the current documentation, mainly updates to configuration options.
Client Connectivity Guide
Chapter 3, section 2.3 Example AMQP Clients
Apache Qpid JMS Client Configuration
- change '0.2.0' to '0.5.0'
Configuring a JNDI InitialContext
- the third option => 'Programatically' should be 'Programmatically'
JMS Configuration options
In the table, replace jms.localMessagePriority with the following three options:
- jms.localMessageExpiry
Controls whether MessageConsumer instances will locally filter expired Messages or deliver them. By default this value is set to true and expired messages will be filtered.
- jms.localMessagePriority
If enabled prefetched messages are reordered locally based on their given Message priority value. Default is false.
- jms.validatePropertyNames
If message property names should be validated as valid Java identifiers. Default is true.
At the end of that section, just prior to TCP Transport Configuration options, add:
"The RedeliveryPolicy controls how redelivered messages are handled on the client.
jms.redeliveryPolicy.maxRedeliveries controls when an incoming message is rejected based on the number of times it has been redelivered, the default value is (-1) disabled. A value of zero would indicate no message redeliveries are accepted, a value of five would allow a message to be redelivered five times, etc."
Under TCP Transport Configuration options, change the URI
from
amqp://localhost:5672?jms.topicPrefix=foo&transport.connectTimeout=30000
to
amqp://localhost:5672?jms.clientID=foo&transport.connectTimeout=30000
Under SSL Transport Configuration Options
option transport.storeType, change text to:
The type of trust store being used. Default is "JKS".
option transport.trustAll, change text to:
Whether to trust the provided server certificate implicitly, regardless of any configured trust store. Defaults to false.
option transport.verifyHost, change text to:
Whether to verify that the hostname being connected to matches with the provided server certificate. Defaults to true.
Failover Configuration Options
Add one additional option at the end of the table:
failover.warnAfterReconnectAttempts
Controls how often the client will log a message indicating that failover reconnection is being attempted. The default is to log every 10 connection attempts.
After the table add the following text:
"
The failover URI also supports defining 'nested' options. These provide means of specifying global option values applicable to all the individual nested broker URI's, which can be useful to avoid repetition. This is accomplished using the same URI options outlined earlier for the individual broker URI but prefixed with failover.nested.. For example, to apply a value for the jms.clientID option to every broker URI you could specify:
failover:(amqp://broker1:5672,amqp://broker2:5672)?failover.nested.jms.clientID=foo
"
AMQP Configuration options
- Add these new options:
*amqp.vhost The vhost to connect to. Used to populate the Sasl and Open hostname fields. Default is the main hostname from the Connection URI.
*amqp.saslLayer Controls whether connections should use a SASL layer or not. Default is true.
*amqp.saslMechanisms Which SASL mechanism(s) the client should allow selection of, if offered by the server and usable with the configured credentials. Comma separated if specifying more than 1 mechanism. Default is to allow selection from all the clients supported mechanisms, which are currently EXTERNAL, CRAM-MD5, PLAIN, and ANONYMOUS.
*amqp.maxFrameSize The max-frame-size value in bytes that is advertised to the peer. Default is 1048576.
Directly after AMQP Configuration options, add a new section Discovery Configuration options (including all text all the way to the end)
Discovery Configuration options
The client has an optional Discovery module, which provides a customised failover layer where the broker URIs to connect to are not given in the initial URI, but discovered as the client operates via associated discovery agents. There are currently two discovery agent implementations, a file watcher that loads URIs from a file, and a multicast listener that works with ActiveMQ 5 brokers which have been configured to broadcast their broker addresses for listening clients.
The general set of failover related options when using discovery are the same as those detailed earlier, with the main prefix updated from failover. to discovery., and with the 'nested' options prefix used to supply URI options common to all the discovered broker URIs bring updated from failover.nested. to discovery.discovered. For example, without the agent URI details, a general discovery URI might look like:
discovery<agent-uri>)?discovery.maxReconnectAttempts=20&discovery.discovered.jms.clientID=foo
To use the file watcher discovery agent, utilise an agent URI of the form:
discoveryfile:///path/to/monitored-file?updateInterval=60000)
The URI options for the file watcher discovery agent are listed below:
updateInterval - Controls the frequency in milliseconds which the file is inspected for change. The default value is 30000.
To use the multicast discovery agent with an ActiveMQ 5 broker, utilise an agent URI of the form:
discovery:(multicast://default?group=default)
Note that the use of default as the host in the multicast agent URI above is a special value (that is substituted by the agent with the default "239.255.2.3:6155"). You may change this to specify the actual IP and port in use with your multicast configuration.
The URI options for the multicast discovery agent are listed below:
group - Controls which multicast group messages are listened for on. The default value is "default".