The Sun GlassFish Message Queue software supports the following JMS connection features:
Both these features use the AddressList configuration, which is populated with the hosts and ports of the JMS hosts defined in the Enterprise Server. The AddressList is updated whenever a JMS host configuration changes. The AddressList is inherited by any JMS resource when it is created and by any MDB when it is deployed.
In the Sun GlassFish Message Queue software, the AddressList property is called imqAddressList.
The Enterprise Server pools JMS connections automatically.
To dynamically modify connection pool properties using the Admin Console, go to either the Connection Factories page (see Creating JMS Resources: Destinations and Connection Factories) or the Connector Connection Pools page (see Deploying and Configuring a Stand-Alone Connector Module).
To use the command line, use the asadmin create-connector-connection-pool command to manage the pool (see Deploying and Configuring a Stand-Alone Connector Module.
For the developer profile, the addresslist-behavior JMS service attribute is set to random by default. This means that each ManagedConnection (physical connection) created from the ManagedConnectionFactory selects its primary broker in a random way from the AddressList.
For the cluster and enterprise profiles, the addresslist-behavior JMS service attribute is set to priority by default. This means that the first broker in the AddressList is selected first. This first broker is the local colocated Message Queue broker. If this broker is unavailable, connection attempts are made to brokers in the order in which they are listed in the AddressList. This ensures colocated production and consumption of messages and equitable load distribution across the Message Queue broker cluster.
When a JMS connection pool is created, there is one ManagedConnectionFactory instance associated with it. If you configure the AddressList as a ManagedConnectionFactory property, the AddressList configuration in the ManagedConnectionFactory takes precedence over the one defined in the Enterprise Server.
To specify whether the Enterprise Server tries to reconnect to the primary broker if the connection is lost, set the reconnect-enabled attribute in the JMS service. To specify the number of retries and the time between retries, set the reconnect-attempts and reconnect-interval-in-seconds attributes, respectively.
If reconnection is enabled and the primary broker goes down, the Enterprise Server tries to reconnect to another broker in the AddressList. The AddressList is updated whenever a JMS host configuration changes. The logic for scanning is decided by two JMS service attributes, addresslist-behavior and addresslist-iterations.
You can override these settings using JMS connection factory settings. For details, see Chapter 4, Configuring Java Message Service Resources, in Sun GlassFish Enterprise Server v2.1.1 Administration Guide.
The Sun GlassFish Message Queue software transparently transfers the load to another broker when the failover occurs. JMS semantics are maintained during failover.