Sun GlassFish Message Queue 4.4 Administration Guide

Part III Reference

Chapter 16 Command Line Reference

This chapter provides reference information on the use of the Message Queue command line administration utilities. It consists of the following sections:

Command Line Syntax

Message Queue command line utilities are shell commands. The name of the utility is a command and its subcommands or options are arguments passed to that command. There is no need for separate commands to start or quit the utility.

All the command line utilities share the following command syntax:

   utilityName [subcommand] [commandArgument] [ [-optionName [optionArgument] ] … ]

where utilityName is one of the following:

Subcommands and command-level arguments, if any, must precede all options and their arguments; the options themselves may appear in any order. All subcommands, command arguments, options, and option arguments are separated with spaces. If the value of an option argument contains a space, the entire value must be enclosed in quotation marks. (It is generally safest to enclose any attribute-value pair in quotation marks.)

The following command, which starts the default broker, is an example of a command line with no subcommand clause:

   imqbrokerd

Here is a fuller example:

   imqcmd  destroy dst  -t q  -n myQueue  -u admin  -f  -s

This command destroys a queue destination (destination type q) named myQueue. Authentication is performed on the user name admin; the command will prompt for a password. The command will be performed without prompting for confirmation (-f option) and in silent mode, without displaying any output (-s option).

Broker Utility

The Broker utility (imqbrokerd) starts a broker. Command line options override values in the broker configuration files, but only for the current broker session.

Table 16–1 shows the options to the imqbrokerd command and the configuration properties, if any, overridden by each option.

Table 16–1 Broker Utility Options

Option 

Properties Overridden 

Description 

-name instanceName

imq.instancename

Instance name of broker

Multiple broker instances running on the same host must have different instance names.  

Default value: imqbroker

-port portNumber

imq.portmapper.port

Port number for broker’s Port Mapper

Message Queue clients use this port number to connect to the broker. Multiple broker instances running on the same host must have different Port Mapper port numbers.  

Default value: 7676

-cluster broker1 [ [ ,broker2 ] … ]

imq.cluster.brokerlist

Connect brokers into cluster [Applies only to broker clusters]

The specified brokers are merged with the list in the imq.cluster.brokerlist property. Each broker argument has one of the forms

    hostName:portNumber


    hostName


    :portNumber


If hostName is omitted, the default value is localhost; if portNumber is omitted, the default value is 7676.

-Dproperty=value

Corresponding property in instance configuration file 

Set configuration property 

See Chapter 17, Broker Properties Reference for information about broker configuration properties.

Caution: Be careful to check the spelling and formatting of properties set with this option. Incorrect values will be ignored without notification or warning.

-reset props

None 

Reset configuration properties 

Replaces the broker’s existing instance configuration file config.properties with an empty file; all properties assume their default values.

-reset store

None 

Reset persistent data store

Clears all persistent data from the data store (including persistent messages, durable subscriptions, and transaction information), allowing you to start the broker instance with a clean slate. To prevent the persistent store from being reset on subsequent restarts, restart the broker instance without the -reset option.

To clear only persistent messages or durable subscriptions, use -reset messages or -reset durables instead.

-reset messages

None 

Clear persistent messages from data store 

-reset durables

None 

Clear durable subscriptions from data store 

-backup fileName

None 

Back up configuration change record to file

See Managing a Conventional Cluster's Configuration Change Record for more information.

-restore fileName

None 

Restore configuration change record from backup file

The backup file must have been previously created using the -backup option.

See Managing a Conventional Cluster's Configuration Change Record for more information.

-remove instance

None 

Remove broker instance [Requires user confirmation unless -force is also specified]

Deletes the instance configuration file, log files, persistent store, and other files and directories associated with the instance.  

-dbuser userName

imq.persist.jdbc.user

User name for JDBC-based persistent data store

-passfile filePath

imq.passfile.enabledimq.passfile.dirpathimq.passfile.name

Location of password file

Sets the broker’s imq.passfile.enabled property to true, imq.passfile.dirpath to the path containing the password file, and imq.passfile.name to the file name itself.

See Password Files for more information.

-shared

imq.jms.threadpool_model

Use shared thread pool model to implement jms connection service

Execution threads will be shared among connections to increase the number of connections supported.  

Sets the broker’s imq.jms.threadpool_model property to shared.

-javahome path

None 

Location of alternative Java runtime

Default behavior: Use runtime installed on system or bundled with Message Queue.

-vmargs arg1 [ [ arg2 ] … ]

None 

Pass arguments to Java virtual machine 

Arguments are separated with spaces. To pass more than one argument, or an argument containing a space, enclose the argument list in quotation marks.  

VM arguments can be passed only from the command line; there is no associated configuration property in the instance configuration file.

-startRmiRegistry

imq.jmx.rmiregistry.start

Start RMI registry at broker startup

-useRmiRegistry

imq.jmx.rmiregistry.use

Use external RMI registry

-rmiRegistryPort

imq.jmx.rmiregistry.port

Port number of RMI registry

-upgrade-store-nobackup

None 

Automatically remove old data store on upgrade to Message Queue 3.5 or 3.5 SPx from an incompatible version

See the Message Queue Installation Guide for more information.

-force

None 

Perform action without user confirmation 

This option applies only to the -remove instance and -upgrade-store-nobackup options, which normally require confirmation.

-loglevel level

imq.broker.log.level

Logging level:

    NONE


    ERROR


    WARNING


    INFO


Default value: INFO

-metrics interval

imq.metrics.interval

Logging interval for broker metrics, in seconds

-tty

imq.log.console.output

Log all messages to console 

Sets the broker’s imq.log.console.output property to ALL.

If not specified, only error and warning messages will be logged.  

-s | -silent

imq.log.console.output

Silent mode (no logging to console)

Sets the broker’s imq.log.console.output property to NONE.

-version

None 

Display version information [Any other options specified on the command line are ignored. ]

-h | -help

None 

Display usage help

Command Utility

The Command utility (imqcmd) is used for managing brokers, connection services, connections, physical destinations, durable subscriptions, and transactions.

All imqcmd commands must include a subcommand (except those using the -v or -h option to display product version information or usage help, respectively). The possible subcommands are listed in Table 16–2 and described in detail in the corresponding sections below. In addition, each imqcmd subcommand supports the general options shown in General Command Utility Options.


Note –

The -u userName option (and corresponding password) is required except when using the -v or -h option. Also if a subcommand accepts a broker address (-b option) and no host name or port number is specified, the values localhost and 7676 are assumed by default.


Table 16–2 Command Utility Subcommands

Broker Management

shutdown bkr

Shut down broker 

restart bkr

Restart broker 

pause bkr

Pause broker 

quiesce bkr

Quiesce broker 

unquiesce bkr

Unquiesce broker 

resume bkr

Resume broker 

takeover bkr

Initiate broker takeover 

update bkr

Set broker properties 

reload cls

Reload cluster configuration 

query bkr

List broker property values 

list bkr

List brokers in cluster 

metrics bkr

Display broker metrics 

Connection Service Management

pause svc

Pause connection service 

resume svc

Resume connection service 

update svc

Set connection service properties 

list svc

List connection services available on broker 

query svc

List connection service property values 

metrics svc

Display connection service metrics 

Connection Management

list cxn

List connections on broker 

query cxn

Display connection information 

destroy cxn

Destroy connection 

Physical Destination Management

create dst

Create physical destination 

destroy dst

Destroy physical destination 

pause dst

Pause message delivery for physical destination 

resume dst

Resume message delivery for physical destination 

purge dst

Purge all messages from physical destination 

compact dst

Compact physical destination 

update dst

Set physical destination properties 

list dst

List physical destinations 

query dst

List physical destination property values 

metrics dst

Display physical destination metrics 

Durable Subscription Management

destroy dur

Destroy durable subscription 

purge dur

Purge all messages for durable subscription 

list dur

List durable subscriptions for topics 

Transaction Management

commit txn

Commit transaction 

rollback txn

Roll back transaction 

list txn

List transactions being tracked by broker 

query txn

Display transaction information 

list dur

List durable subscriptions for topic 

JMX Management

list jmx

List JMX service URLs of JMX connectors

General Command Utility Options

The additional options listed in Table 16–3 can be applied to any subcommand of the imqcmd command.

Table 16–3 General Command Utility Options

Option 

Description 

-secure

Use secure connection to broker with ssladmin connection service

-u userName

User name for authentication 

If this option is omitted, the Command utility will prompt for it interactively.  

-passfile path

Location of password file 

See Password Files for more information.

-D

Set connection-related system property that affects how imqcomd creates a connection to the broker. Not used to set broker configuration properties.

Usually overrides connection factory attributes for imqcmd client runtime. For example, the option in the following command changes the default value of imqSSLIsTrusted:

imqcmd list svc -secure -DimqSSLIsTrusted=true

-rtm timeoutInterval

Initial timeout interval, in seconds 

This is the initial length of time that the Command utility will wait for a reply from the broker before retrying a request. Each subsequent retry will use a timeout interval that is a multiple of this initial interval.  

Default value: 10.

-rtr numRetries

Number of retries to attempt after a broker request times out 

Default value: 5.

-javahome path

Location of alternative Java runtime

Default behavior: Use runtime installed on system or bundled with Message Queue.

-f

Perform action without user confirmation 

-s

Silent mode (no output displayed) 

-v

Display version information [Any other options specified on the command line are ignored. ] , [User name and password not needed]

-h

Display usage help,

-H

Display expanded usage help, including attribute list and examples,

Broker Management

The Command utility cannot be used to start a broker; use the Broker utility (imqbrokerd) instead. Once the broker is started, you can use the imqcmd subcommands listed in Table 16–4 to manage and control it.

Table 16–4 Command Utility Subcommands for Broker Management

Syntax 

Description 

shutdown bkr [-b hostName:portNumber]

    [-time nSeconds]


    [-nofailover]


Shut down broker

The -time option specifies the interval, in seconds, to wait before shutting down the broker. (The broker will not block, but will return immediately from the delayed shutdown request.) During the shutdown interval, the broker will not accept any new jms connections; admin connections will be accepted, and existing jms connections will continue to operate. A broker belonging to an enhanced cluster will not attempt to take over for any other broker during the shutdown interval.

The -nofailover option indicates that no other broker is to take over the persistent data of the one being shut down. [Applies only to broker clusters]

restart bkr [-b hostName:portNumber]

Restart broker

Shuts down the broker and then restarts it using the same options specified when it was originally started.  

pause bkr [-b hostName:portNumber]

Pause broker

See Pausing and Resuming a Broker for more information.

quiesce bkr [-b hostName:portNumber]

Quiesce broker

The broker will stop accepting new connections; existing connections will continue to operate.  

unquiesce bkr [-b hostName:portNumber]

Unquiesce broker

The broker will resume accepting new connections, returning to normal operation.  

resume bkr [-b hostName:portNumber]

Resume broker

takeover bkr -n brokerID

    [-f]


Initiate broker takeover

Before taking over a broker, you should first shut it down manually using the shutdown bkr subcommand with the -nofailover option. If the specified broker appears to be still running, takeover bkr will display a confirmation message (Do you want to take over for this broker?). The -f option suppresses this message and initiates the takeover unconditionally.


Note –

The takeover bkr subcommand is intended only for use in failed-takeover situations. You should use it only as a last resort, and not as a general way of forcibly taking over a running broker.


update bkr [-b hostName:portNumber]

    -o property1=value1


    [ [-o property2=value2] … ]


Set broker properties

See Chapter 17, Broker Properties Reference for information on broker properties.

reload cls

Reload cluster configuration

Forces all persistent information to be brought up to date.  

query bkr -b hostName:portNumber

List broker property values

For brokers belonging to a cluster, also lists cluster properties such as broker list, master broker (for conventional clusters), and cluster identifier (for enhanced clusters).

list bkr

List brokers in cluster

metrics bkr [-b hostName:portNumber]

    [-m metricType]


    [-int interval]


    [-msp numSamples]


Display broker metrics

The -m option specifies the type of metrics to display:

    ttl: Messages and packets flowing into and out of the broker


    rts: Rate of flow of messages and packets into and out of the broker per second


    cxn: Connections, virtual memory heap, and threads


Default value: ttl.

The -int option specifies the interval, in seconds, at which to display metrics. Default value: 5.

The -msp option specifies the number of samples to display. Default value: Unlimited (infinite).

Connection Service Management

Table 16–5 lists the imqcmd subcommands for managing connection services.

Table 16–5 Command Utility Subcommands for Connection Service Management

Syntax 

Description 

pause svc -n serviceName

    [-b hostName:portNumber]


Pause connection service

The admin connection service cannot be paused.

resume svc -n serviceName

    [-b hostName:portNumber]


Resume connection service

update svc -n serviceName

    [-b hostName:portNumber]


    -o property1=value1


    [ [-o property2=value2] … ]


Set connection service properties

See Connection Properties for information on connection service properties.

list svc [-b hostName:portNumber]

List connection services available on broker

query svc -n serviceName

    [-b hostName:portNumber]


List connection service property values

metrics svc -n serviceName

    [-b hostName:portNumber]


    [-m metricType]


    [-int interval]


    [-msp numSamples]


Display connection service metrics

The -m option specifies the type of metrics to display:

    ttl: Messages and packets flowing into and out of the broker by way of the specified connection service


    rts: Rate of flow of messages and packets into and out of the broker per second by way of the specified connection service


    cxn: Connections, virtual memory heap, and threads


Default value: ttl.

The -int option specifies the interval, in seconds, at which to display metrics. Default value: 5.

The -msp option specifies the number of samples to display. Default value: Unlimited (infinite).

Connection Management

Table 16–6 lists the imqcmd subcommands for managing connections.

Table 16–6 Command Utility Subcommands for Connection Service Management

Syntax 

Description 

list cxn [-svn serviceName]

    [-b hostName:portNumber]


List connections on broker

Lists all connections on the broker to the specified connection service. If no connection service is specified, all connections are listed.  

query cxn -n connectionID

    [-b hostName:portNumber]


Display connection information

destroy cxn -n connectionID

    [-b hostName:portNumber]


Destroy connection

Physical Destination Management

Table 16–7 lists the imqcmd subcommands for managing physical destinations. In all cases, the -t (destination type) option can take either of two values:

Table 16–7 Command Utility Subcommands for Physical Destination Management

Syntax 

Description 

create dst -t destType -n destName

    [ [-o property=value] … ]


Create physical destination [Cannot be performed in a broker cluster whose master broker is temporarily unavailable]

The destination name destName may contain only alphanumeric characters (no spaces) and must begin with an alphabetic character or the underscore (_) or dollar sign ($) character. It may not begin with the characters mq.

destroy dst -tdestType -n destName

Destroy physical destination

This operation cannot be applied to a system-created destination, such as a dead message queue.  

pause dst [-t destType -n destName]

    [-pst pauseType]


Pause message delivery for physical destination

Pauses message delivery for the physical destination specified by the -t and -n options. If these options are not specified, all destinations are paused.

The -pst option specifies the type of message delivery to be paused:

    PRODUCERS: Pause delivery from message producers


    CONSUMERS: Pause delivery to message consumers


    ALL: Pause all message delivery


Default value: ALL

resume dst [-t destType -n destName]

Resume message delivery for physical destination

Resumes message delivery for the physical destination specified by the -t and -n options. If these options are not specified, all destinations are resumed.

purge dst -t destType -n destName

Purge all messages from physical destination

compact dst [-t destType -n destName]

Compact physical destination

Compacts the file-based persistent data store for the physical destination specified by the -t and -n options. If these options are not specified, all destinations are compacted.

A destination must be paused before it can be compacted.  

update dst -t destType -n destName

    -o property1=value1


    [ [ -o property2=value2] … ]


Set physical destination properties

See Chapter 18, Physical Destination Property Reference for information on physical destination properties.

list dst [-t destType]

    [-tmp]


List physical destinations

Lists all physical destinations of the type specified by the -t option. If no destination type is specified, both queue and topic destinations are listed. If the -tmp option is specified, temporary destinations are listed as well.

query dst -t destType -n destName

List physical destination property values

metrics dst -t destType -n destName

    [-m metricType]


    [-int interval]


    [-msp numSamples]


Display physical destination metrics

The -m option specifies the type of metrics to display:

    ttl: Messages and packets flowing into and out of the destination and residing in memory


    rts: Rate of flow of messages and packets into and out of the destination per second, along with other rate information


    con: Metrics related to message consumers


    dsk: Disk usage


Default value: ttl.

The -int option specifies the interval, in seconds, at which to display metrics. Default value: 5.

The -msp option specifies the number of samples to display. Default value: Unlimited (infinite).

Durable Subscription Management

Table 16–8 lists the imqcmd subcommands for managing durable subscriptions.

Table 16–8 Command Utility Subcommands for Durable Subscription Management

Syntax 

Description 

destroy dur -n subscriberName -c clientID

Destroy durable subscription [Cannot be performed in a conventional broker cluster whose master broker is temporarily unavailable]

purge dur -n subscriberName -c clientID

Purge all messages for durable subscription

list dur -[d topicName]

List durable subscriptions for the specified topic. If -d option is omitted then the command lists all durable subscriptions for all topics.

Transaction Management

Table 16–9 lists the imqcmd subcommands for managing local (non-distributed) Message Queue transactions. Distributed transactions are managed by a distributed transaction manager rather than imqcmd.

Table 16–9 Command Utility Subcommands for Transaction Management

Syntax 

Description 

commit txn -n transactionID

Commit transaction 

rollback txn -n transactionID

Roll back transaction 

list txn

List transactions being tracked by broker 

query txn -n transactionID

Display transaction information

JMX Management

The imqcmd subcommand shown in Table 16–10 is used for administrative support of Java applications using the Java Management Extensions (JMX) application programming interface to configure and monitor Message Queue resources. See Appendix D, JMX Support for further information on the broker's JMX support.

Table 16–10 Command Utility Subcommand for JMX Management

Syntax 

Description 

list jmx

List JMX service URLs of JMX connectors

Object Manager Utility

The Object Manager utility (imqobjmgr) creates and manages Message Queue administered objects. Table 16–11 lists the available subcommands.

Table 16–11 Object Manager Subcommands

Subcommand 

Description 

add

Add administered object to object store 

delete

Delete administered object from object store 

list

List administered objects in object store 

query

Display administered object information 

update

Modify administered object 

Table 16–12 lists the options to the imqobjmgr command.

Table 16–12 Object Manager Options

Option 

Description 

-l lookupName

JNDI lookup name of administered object

-j attribute=value

Attributes of JNDI object store (see Object Stores)

-t objectType

Type of administered object:  

    q: Queue destination


    t: Topic destination


    cf: Connection factory


    qf: Queue connection factory


    tf: Topic connection factory


    xcf: Connection factory for distributed transactions


    xqf: Queue connection factory for distributed transactions


    xtf: Topic connection factory for distributed transactions


-o attribute=value

Attributes of administered object (see Administered Object Attributes and Chapter 19, Administered Object Attribute Reference)

-r readOnlyState

Is administered object read-only?  

If true, client cannot modify object’s attributes.

Default value: false.

-i fileName

Name of command file containing all or part of subcommand clause 

-pre

Preview results without performing command 

This option is useful for checking the values of default attributes.  

-javahome path

Location of alternative Java runtime

Default behavior: Use runtime installed on system or bundled with Message Queue.

-f

Perform action without user confirmation 

-s

Silent mode (no output displayed) 

-v

Display version information [Any other options specified on the command line are ignored. ]

-h

Display usage help

-H

Display expanded usage help, including attribute list and examples

Database Manager Utility

The Database Manager utility (imqdbmgr) sets up the database schema for a JDBC-based data store. You can also use it to delete Message Queue database tables that have become corrupted, change the database, display information about the database, convert a standalone database for use in an enhanced broker cluster, or back up and restore a highly-available database. Table 16–13 lists the imqdbmgr subcommands.

Table 16–13 Database Manager Subcommands

Subcommand 

Description 

create all

Create new database and persistent data store schema 

Used on embedded database systems. The broker property imq.persist.jdbc.vendorName.createdburl must be specified.

create tbl

Create persistent data store schema for existing database 

Used on external database systems.  

For brokers belonging to an enhanced broker cluster (imq.cluster.ha = true), the schema created is for the cluster’s shared data store, in accordance with the database vendor identified by the broker’s imq.persist.jdbc.dbVendor property. If imq.cluster.ha = false, the schema is for the individual broker’s standalone data store. Since the two types of data store can coexist in the same database, they are distinguished by appending a suffix to all table names:

    C clusterID: Shared data store


    S brokerID: Standalone data store


delete tbl

Delete Message Queue database tables from current data store 

delete oldtbl

Delete Message Queue database tables from earlier-version data store 

Used after the data store has been automatically migrated to the current version of Message Queue.  

recreate tbl

Re-create persistent store schema 

Deletes all existing Message Queue database tables from the current persistent store and then re-creates the schema.  

query

Display information about the data store 

upgrade hastore

Upgrade standalone data store to shared data store 

backup

Back up JDBC-based data store to backup files

restore

Restore JDBC-based data store from backup files

remove bkr

Remove broker from shared data store 

The broker must not be running.  

remove jmsbridge

Remove JMS bridge from the shared data store 

The broker hosting the JMS bridge must not be running. 

reset lck

Reset data store lock 

Resets the lock so that the database can be used by other processes.  

Table 16–14 lists the options to the imqdbmgr command.

Table 16–14 Database Manager Options

Option 

Description 

-b instanceName

Instance name of broker 

-Dproperty=value

Set broker configuration property 

See Persistence Properties for information about persistence-related broker configuration properties.

Caution: Be careful to check the spelling and formatting of properties set with this option. Incorrect values will be ignored without notification or warning.

-u userName

User name for authentication against the database 

-passfile filePath

Location of password file 

See Password Files for more information.

-n brokerID

(Used with the remove bkr subcommand) Broker identifier of broker to be removed from shared data store

-n bridgeName

(Used with the remove jmsbridge subcommand) Bridge name of the JMS bridge to be removed from shared data store

-dir dirPath

Backup directory for backing up or restoring JDBC-based data store

-v

Display version information [Any other options specified on the command line are ignored. ]

-h

Display usage help

User Manager Utility

The User Manager utility (imqusermgr) is used for populating or editing a flat-file user repository. The utility must be run on the same host where the broker is installed; if a broker-specific user repository does not yet exist, you must first start up the corresponding broker instance in order to create it. You will also need the appropriate permissions to write to the repository: on the Solaris or Linux platforms, this means you must be either the root user or the user who originally created the broker instance.

Table 16–15 lists the subcommands available with the imqusermgr command. In all cases, the -i option specifies the instance name of the broker to whose user repository the command applies; if not specified, the default name imqbroker is assumed.

Table 16–15 User Manager Subcommands

Syntax 

Description 

add [-i instanceName]

    -u userName -p password


    [-g group]


Add user and password to repository 

The optional -g option specifies a group to which to assign this user:

    admin


    user


    anonymous


delete [-i instanceName]

    -u userName


Delete user from repository 

update [-i instanceName]

    -u userName -p password


update [-i instanceName]

    -u userName -a activeStatus


update [-i instanceName]

    -u userName -p password


    -a activeStatus


Set user’s password or active status (or both) 

The -a option takes a boolean value specifying whether to make the user active (true) or inactive (false). An inactive status means that the user entry remains in the user repository, but the user will not be authenticated, even if using the correct password.

Default value: true.

list [-i instanceName]

    [-u userName]


Display user information 

If no user name is specified, all users in the repository are listed.  

In addition, the options listed in Table 16–16 can be applied to any subcommand of the imqusermgr command.

Table 16–16 General User Manager Options

Option 

Description 

-f

Perform action without user confirmation 

-s

Silent mode (no output displayed) 

-v

Display version information [Any other options specified on the command line are ignored. ]

-h

Display usage help

Bridge Manager Utility

The Bridge Manager utility (imqbridgemgr) is used to manage the bridges configured for a broker, including the links within bridge types that support links. The basic syntax of imqbridgemgr is:

imqbridgemgr subcommand commandArgument [ options ]
imqbridgemgr -h | -help
imqbridgemgr -H | -Help
imqbridgemgr -v | -version

Table 16–17 lists the imqbridgemgr subcommands for general bridge management, Table 16–18 lists the imqbridgemgr subcommands for link management, which are applicable only to bridge types that support links, and Table 16–19 lists the imqbridgemgr options.

Table 16–17 Bridge Manager Subcommands for Bridge Management

Subcommand 

Description 

list bridge

Lists the bridges specified by the command options provided. For each bridge, the bridge name, type and state are displayed. 

pause bridge

Pauses the bridges specified by the command options provided if the bridge type supports this subcommand. 

Attempting to pause a bridge that is stopped generates an error, and attempting to pause a bridge that is already paused has no effect. 

resume bridge

Resumes the bridges specified by the command options provided if the bridge type supports this subcommand. 

Attempting to resume a bridge that is stopped generates an error, and attempting to resume a bridge that is already started has no effect. 

start bridge

Starts the bridges specified by the command options provided. 

Attempting to start a bridge that is paused causes the bridge to resume, and attempting to start a bridge that is already started has no effect. 

stop bridge

Stops the bridges specified by the command options provided. 

Attempting to stop a bridge that is paused causes the bridge to stop, and attempting to stop a bridge that is already stopped has no effect. 

Table 16–18 Bridge Manager Subcommands for Link Management

Subcommand 

Description 

list link

Lists the links specified by the command options provided. For each link, the link name, state, source, target, and transaction status are displayed. 

pause link

Pauses the link specified by the command options provided. 

Attempting to pause a link that is stopped, in the process of stopping, or has never been started generates an error. Attempting to pause a link that is already paused or in the process of pausing has no effect. 

resume link

Resumes the link specified by the command options provided. 

Attempting to resume a link that is stopped, in the process of stopping, or has never been started generates an error. Attempting to resume a link that is already started or in the process of starting has no effect. 

start link

Starts the link specified by the command options provided. 

Attempting to start a link that is paused causes the link to resume. Attempting to start a link that is in the process of pausing causes the link to complete pausing and then to resume. Attempting to start a link that is already started or in the process of starting has no effect. 

stop link

Stops the link specified by the command options provided. 

Attempting to stop a link that has never been started generates an error. Attempting to stop a link that is in the process of starting causes the link to complete starting and then to stop. Attempting to stop a link that is paused causes the link to stop. Attempting to stop a link that is in the process of pausing causes the link to complete pausing and then to stop. Attempting to stop a link that is already stopped or in the process of stopping has no effect. 

Table 16–19 lists the options to the imqbridgemgr command.

Table 16–19 Bridge Manager Options

Option 

Description 

-b hostName:portNumber

The broker housing the bridge. 

Default value: localhost:7676 

-bn bridgeName

The name of the bridge. 

-f

Perform the action without user confirmation 

-javahome path

Location of an alternative Java runtime. 

Default behavior: Use the runtime installed with Message Queue. 

-ln linkName

The name of the link. 

-passfile path

Location of password file 

-rtm timeoutInterval

Initial timeout interval, in seconds 

This is the initial length of time that the Command utility will wait for a reply from the broker before retrying a request. Each subsequent retry will use a timeout interval that is a multiple of this initial interval. 

Default value: 10 

-rtr numRetries

Number of retries to attempt after a broker request times out 

Default value: 5 

-s

Silent mode (no output displayed) 

-secure

Use secure connection to broker with ssladmin connection service

-t bridgeType

The type of the bridge: JMS or STOMP

-u userName

User name for authentication 

Service Administrator Utility

The Service Administrator utility (imqsvcadmin) installs a broker as a Windows service. Table 16–20 lists the available subcommands.

Table 16–20 Service Administrator Subcommands

Subcommand 

Description 

install

Install service 

remove

Remove service 

query

Display startup options 

Startup options can include whether the service is started manually or automatically, its location, the location of the Java runtime, and the values of arguments passed to the broker on startup (see Table 16–21).

Table 16–21 lists the options to the imqsvcadmin command.

Table 16–21 Service Administrator Options

Option 

Description 

-javahome path

Location of alternative Java runtime

Default behavior: Use runtime installed on system or bundled with Message Queue.

-jrehome path

Location of alternative Java Runtime Environment (JRE)

-vmargs arg1 [ [arg2] … ]

Additional arguments to pass to Java Virtual Machine (JVM) running broker service [These arguments can also be specified in the Start Parameters field under the General tab in the service’s Properties window (reached by way of the Services tool in the Windows Administrative Tools control panel). ]

Example:

imqsvcadmin install -vmargs "-Xms16m -Xmx128m"

-args arg1 [ [arg2] … ]

Additional command line arguments to pass to broker service

Example:

imqsvcadmin install -args "-passfile d:\\imqpassfile"

See Broker Utility for information about broker command line arguments.

-h

Display usage help [Any other options specified on the command line are ignored. ]

Any information you specify using the -javahome, -vmargs, and -args options is stored in the Windows registry under the keys JREHome, JVMArgs, and ServiceArgs in the path

   HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\iMQ_Broker\Parameters

Key Tool Utility

The Key Tool utility (imqkeytool) generates a self-signed certificate for the broker, which can be used for the ssljms, ssladmin, or cluster connection service. The syntax is

   imqkeytool -broker

On UNIX systems, you might need to run the utility from the root user account.

Chapter 17 Broker Properties Reference

This chapter provides reference information about configuration properties for a message broker. It consists of the following sections:

Connection Properties

Table 17–1 lists the broker properties related to connection services.

Table 17–1 Broker Connection Properties

Property 

Type 

Default Value 

Description 

imq.brokerid

String 

None 

Broker identifier 

For brokers using a shared JDBC-based data store, this string is appended to the names of all database tables to identify each table with a particular broker. 

Must be a unique alphanumeric string of no more than n - 13 characters, where n is the maximum table name length allowed by the database.

This property is unnecessary for an embedded database or a standalone database which stores data for only one broker instance.  


Note –

For enhanced broker clusters (imq.cluster.ha = true), database table names also use the imq.cluster.clusterid property (see Table 17–12).


imq.service.activelist [Must have the same value for all brokers in an enhanced cluster. ]

String 

jms,admin

List of connection services to be activated at broker startup, separated by commas

See Table 6–1 under Configuring Connection Services for the names of the available connection services.

imq.hostname

String 

All available IP addresses

Default host name or IP address for all connection services

imq.portmapper.hostname

String 

None 

Host name or IP address of Port Mapper

If specified, overrides imq.hostname. This might be necessary, for instance, if the broker’s host computer has more than one network interface card installed.

imq.portmapper.port [Can be used with imqcmd update bkr command]

Integer 

7676

Port number of Port Mapper 


Note –

If multiple broker instances are running on the same host, each must be assigned a unique Port Mapper port.


imq.serviceName.protocolType.hostname [jms, ssljms, admin, and ssladmin services only; see Appendix C, HTTP/HTTPS Support for information on configuring the httpjms and httpsjms services]

String 

None 

Host name or IP address for connection service

If specified, overrides imq.hostname for the designated connection service. This might be necessary, for instance, if the broker’s host computer has more than one network interface card installed.

imq.serviceName.protocolType.port

Integer 

0

Port number for connection service 

A value of 0 specifies that the port number should be allocated dynamically by the Port Mapper. You might need to set a different value, for instance, to specify a static port number for connecting to the broker through a firewall.

imq.portmapper.backlog

Integer 

50

Maximum number of pending Port Mapper requests in operating system backlog 

imq.serviceName.threadpool_model [jms and admin services only]

String 

dedicated

Threading model for thread pool management:  

    dedicated: Two dedicated threads per connection, one for incoming and one for outgoing messages


    shared: Connections processed by shared thread when sending or receiving messages


     

The dedicated model limits the number of connections that can be supported, but provides higher performance; the shared model increases the number of possible connections, but at the cost of lower performance because of the additional overhead needed for thread management.  

imq.serviceName.min_threads

Integer 

jms: 10ssljms: 10httpjms: 10 httpsjms: 10 admin: 4ssladmin: 4

Minimum number of threads maintained in connection service’s thread pool 

When the number of available threads exceeds this threshold, threads will be shut down as they become free until the minimum is reached.  

The default value varies by connection service, as shown.  

imq.serviceName.max_threads

Integer 

jms: 1000ssljms: 500httpjms: 500httpsjms : 500admin: 10ssladmin: 10

Number of threads beyond which no new threads are added to the thread pool for use by the named connection service 

Must be greater than 0 and greater than the value of imq.serviceName.min_threads.

The default value varies by connection service, as shown.  

imq.shared.connectionMonitor_limit [Shared threading model only]

Integer 

Solaris: 512Linux: 512Windows: 64

Maximum number of connections monitored by a distributor thread 

The system allocates enough distributor threads to monitor all connections. The smaller the value of this property, the faster threads can be assigned to active connections. A value of -1 denotes an unlimited number of connections per thread.

The default value varies by operating-system platform, as shown.  

imq.ping.interval

Integer 

120

Interval, in seconds, at which to test connection between client and broker 

A value of 0 or -1 disables periodic testing of the connection.

Routing and Delivery Properties

Table 17–2 lists the broker properties related to routing and delivery services. Properties that configure the automatic creation of destinations are listed in Table 17–3.

Table 17–2 Broker Routing and Delivery Properties

Property 

Type 

Default Value 

Description 

imq.system.max_count [Can be used with imqcmd update bkr command]

Integer 

-1

Maximum number of messages held by broker 

A value of -1 denotes an unlimited message count.

imq.system.max_size

String 

-1

Maximum total size of messages held by broker 

The value may be expressed in bytes, kilobytes, or megabytes, using the following suffixes:  

    b: Bytes


    k: Kilobytes (1024 bytes)


    m: Megabytes (1024 × 1024 = 1,048,576 bytes)


     

An unsuffixed value is expressed in bytes; a value of -1 denotes an unlimited message capacity.

     

Examples:

    1600: 1600 bytes


    1600b: 1600 bytes


    16k: 16 kilobytes (= 16,384 bytes)


    16m: 16 megabytes (= 16,777,216 bytes)


    -1: No limit


imq.message.max_size

String 

70m

Maximum size of a single message body 

The syntax is the same as for imq.system.max_size (see above).

imq.message.expiration.interval

Integer 

60

Interval, in seconds, at which expired messages are reclaimed 

imq.resourceState.threshold

Integer 

green: 0yellow: 80orange: 90red: 98

Percent utilization at which memory resource state is triggered (where resourceState is green, yellow, orange, or red)

imq.resourceState.count

Integer 

green: 5000yellow: 500orange: 50red: 0

Maximum number of incoming messages allowed in a batch before checking whether memory resource state threshold has been reached (where resourceState is green, yellow, orange , or red)

This limit throttles back message producers as system memory becomes increasingly scarce.  

imq.destination.DMQ.truncateBody

Boolean 

false

Remove message body before storing in dead message queue?  

If true, only the message header and property data will be saved.

imq.transaction.autorollback

Boolean 

false

Automatically roll back distributed transactions left in prepared state at broker startup?  

If false, transactions must be manually committed or rolled back using the Command utility (imqcmd).

imq.transaction.producer.maxNumMsgs

Integer 

1000

The maximum number of messages that a producer can process in a single transaction. It is recommended that the value be less than 5000 to prevent the exhausting of resources. 

imq.transaction.consumer.maxNumMsgs

Integer 

100

The maximum number of messages that a consumer can process in a single transaction. It is recommended that the value be less than 1000 to prevent the exhausting of resources. 

Table 17–3 Broker Properties for Auto-Created Destinations

Property 

Type 

Default Value 

Description 

imq.autocreate.queue [Can be used with imqcmd update bkr command] , [Queue destinations only]

Boolean 

true

Allow auto-creation of queue destinations?  

imq.autocreate.topic [Topic destinations only]

Boolean 

true

Allow auto-creation of topic destinations? 

imq.autocreate.reaptime

Integer 

120 seconds 

The delay, in seconds. before which auto-created destinations are removed from the system when they no longer have consumers nor contain messages, . A smaller value means that memory reclamation takes place more often. 

imq.autocreate.destination.maxNumMsgs

Integer 

100000

Maximum number of unconsumed messages 

A value of -1 denotes an unlimited number of messages.


Note –

When flow control is in effect (imq.autocreate.destination.limitBehavior = FLOW_CONTROL), it is possible for the specified message limit to be exceeded because the broker cannot react quickly enough to stop the flow of incoming messages. In such cases, the value specified for imq.autocreate.destination.maxNumMsgs serves as merely a hint for the broker rather than a strictly enforced limit. However, if the number of unconsumed messages would exceed imq.system.max_count, the broker generates a ResourceAllocationException indicating that the destination is full and rejecting new messages.


imq.autocreate.destination.maxBytesPerMsg

String 

10k

Maximum size, in bytes, of any single message 

The value may be expressed in bytes, kilobytes, or megabytes, using the following suffixes:  

    b: Bytes


    k: Kilobytes (1024 bytes)


    m: Megabytes (1024 × 1024 = 1,048,576 bytes)


     

An unsuffixed value is expressed in bytes; a value of -1 denotes an unlimited message size.

     

Examples:

    1600: 1600 bytes


    1600b: 1600 bytes


    16k: 16 kilobytes (= 16,384 bytes)


    16m: 16 megabytes (= 16,777,216 bytes)


    -1: No limit


imq.autocreate.destination.maxTotalMsgBytes

String 

10m

Maximum total memory, in bytes, for unconsumed messages

The syntax is the same as for imq.autocreate.destination.maxBytesPerMsg (see above).

imq.autocreate.destination.limitBehavior

String 

REJECT_NEWEST

Broker behavior when memory-limit threshold reached:  

    FLOW_CONTROL: Slow down producers


    REMOVE_OLDEST: Throw out oldest messages


    REMOVE_LOW_PRIORITY: Throw out lowest-priority messages according to age; no notification to producing client


    REJECT_NEWEST: Reject newest messages; notify producing client with an exception only if message is persistent


When FLOW_CONTROL is specified, it is still possible for the number of messages to exceed imq.system.max_count. In this situation, the broker generates a ResourceAllocationException indicating that the destination is full and rejecting new messages.

     

If the value is REMOVE_OLDEST or REMOVE_LOW_PRIORITY and the imq.autocreate.destination.useDMQ property is true, excess messages are moved to the dead message queue.

imq.autocreate.destination.maxNumProducers

Integer 

100

Maximum number of message producers for destination

When this limit is reached, no new producers can be created. A value of -1 denotes an unlimited number of producers.

imq.autocreate.queue.maxNumActiveConsumers

Integer 

-1

Maximum number of active message consumers in load-balanced delivery from queue destination

A value of -1 denotes an unlimited number of consumers.

imq.autocreate.queue.maxNumBackupConsumers

Integer 

0

Maximum number of backup message consumers in load-balanced delivery from queue destination

A value of -1 denotes an unlimited number of consumers.

imq.autocreate.queue.consumerFlowLimit

Integer 

1000

Maximum number of messages delivered to queue consumer in a single batch

In load-balanced queue delivery, this is the initial number of queued messages routed to active consumers before load balancing begins. A destination consumer can override this limit by specifying a lower value on a connection.  

A value of -1 denotes an unlimited number of messages.

imq.autocreate.topic.consumerFlowLimit

Integer 

1000

Maximum number of messages delivered to topic consumer in a single batch

A value of -1 denotes an unlimited number of consumers.

imq.autocreate.destination.isLocalOnly

Boolean 

false

Local delivery only?  

This property applies only to destinations in broker clusters, and cannot be changed once the destination has been created. If true, the destination is not replicated on other brokers and is limited to delivering messages only to local consumers (those connected to the broker on which the destination is created).

imq.autocreate.queue.localDeliveryPreferred

Boolean 

false

Local delivery preferred?  

This property applies only to load-balanced queue delivery in broker clusters. If true, messages will be delivered to remote consumers only if there are no consumers on the local broker; the destination must not be restricted to local-only delivery (imq.autocreate.destination.isLocalOnly must be false).

imq.autocreate.destination.useDMQ

Boolean 

true

Send dead messages to dead message queue?  

If false, dead messages will simply be discarded.

validateXMLSchemaEnabled

Boolean 

false

XML schema validation is enabled? 

If set to false or not set, then XML schema validation is not enabled for the destination.

XMLSchemaURIList

String 

null 

Space separated list of XML schema document (XSD) URI strings  

The URIs point to the location of one or more XSDs to use for XML schema validation, if enabled.  

Use double quotes around this value if multiple URIs are specified. 

Example: 

http://foo/flap.xsd http://test.com/test.xsd

If this property is not set or null and XML validation is enabled, XML validation is performed using a DTD specified in the XML document. 

reloadXMLSchemaOnFailure

Boolean 

false

Reload XML schema on failure enabled? 

If set to false or not set, then the schema is not reloaded if validation fails. 

Persistence Properties

Message Queue supports both file-based and JDBC-based persistence modules. The broker property imq.persist.store (Table 17–4) specifies which module to use. The following sections describe the broker configuration properties for the two modules.

Table 17–4 Global Broker Persistence Property

Property 

Type 

Default Value 

Description 

imq.persist.store

String 

file

Module used for persistent data storage:  

    file: File-based persistence


    jdbc: JDBC-based persistence


Must be set to jdbc for enhanced broker clusters (imq.cluster.ha = true).

File-Based Persistence Properties

Table 17–5 lists the broker properties related to file-based persistence.

Table 17–5 Broker Properties for File-Based Persistence

Property 

Type 

Default Value 

Description 

imq.persist.file.message.max_record_size

String 

1m

Maximum-size message to add to message storage file 

Any message exceeding this size will be stored in a separate file of its own.  

     

The value may be expressed in bytes, kilobytes, or megabytes, using the following suffixes:  

    b: Bytes


    k: Kilobytes (1024 bytes)


    m: Megabytes (1024 × 1024 = 1,048,576 bytes)


An unsuffixed value is expressed in bytes.  

     

Examples:

    1600: 1600 bytes


    1600b: 1600 bytes


    16k: 16 kilobytes (= 16,384 bytes)


    16m: 16 megabytes (= 16,777,216 bytes)


imq.persist.file.destination.message.filepool.limit

Integer 

100

Maximum number of free files available for reuse in destination file pool 

Free files in excess of this limit will be deleted. The broker will create and delete additional files in excess of the limit as needed.  

The higher the limit, the faster the broker can process persistent data.  

imq.persist.file.message.filepool.cleanratio

Integer 

0

Percentage of files in free file pools to be maintained in a clean (empty) state 

The higher this value, the less disk space is required for the file pool, but the more overhead is needed to clean files during operation.  

imq.persist.file.message.cleanup

Boolean 

false

Clean up files in free file pools on shutdown?  

Setting this property to true saves disk space for the file store, but slows broker shutdown.

imq.persist.file.sync.enabled

Boolean 

false

Synchronize in-memory state with physical storage device? 

Setting this property to true eliminates data loss due to system crashes, but at a cost in performance.


Note –

If running Sun Cluster and the Sun Cluster Data Service for Message Queue, set this property to true for brokers on all cluster nodes.


imq.persist.file.transaction.memorymappedfile.enabled

Boolean 

true

Use memory-mapped file to store transaction data?  

Setting this property to true improves performance at the cost of increased memory usage. Set to false for file systems that do not support memory-mapped files.

File-Based Persistence Properties for Transaction Logging

Table 17–6 lists the file-based persistence properties for the transaction logging mechanism introduced in Message Queue 4.4 Update 1.

Table 17–6 Broker Properties for File-Based Persistence Using the Transaction Logging Mechanism

Property 

Type 

Default Value 

Description 

imq.persist.file.newTxnLog.enabled

Boolean 

false

Enables the transaction logging mechanism introduced in Message Queue 4.4 Update 1. For information about this mechanism, see Optimizing File-Based Transaction Persistence.

imq.persist.file.txnLog.groupCommit

Boolean 

false

This property is applicable only if imq.persist.file.newTxnLog.enabled is true.

Can improve performance if imq.persist.file.sync.enabled is true and the number of concurrent transactions being processed is high:

  • If true, write operations to the transaction log are not handled by individual connection threads; instead, writes from connection threads are added to a transaction queue. The connection threads then wait until they are notified that the transactions have been logged. A separate thread periodically drains the transaction queue and writes it to the transaction log. When possible, this thread groups together multiple active transactions and writes them to the transaction log in a single operation. After the write completes, waiting client threads are notified.

  • If false, write operations to the transaction log are handled by individual connection threads. Only one thread at a time is able to write to the log.

imq.persist.file.txnLog.logNonTransactedMsgSend

Boolean 

false

This property is applicable only if imq.persist.file.newTxnLog.enabled is true.

Overrides the behavior for persisting non-transacted messages (as defined by the imq.persist.file.sync.enabled property):

  • If true, non-transacted messages are written to the transaction log before they are written to the persistent store.

  • If false, non-transacted messages are written directly to the persistent store.

imq.persist.file.txnLog.logNonTransactedMsgAck

Boolean 

false

This property is applicable only if imq.persist.file.newTxnLog.enabled is true.

Overrides the behavior for persisting non-transacted message acknowledgements (as defined by the imq.persist.file.sync.enabled property):

  • If true, acknowledgements of non-transacted messages are written to the transaction log before they are written to the persistent store.

  • If false, acknowledgements of non-transacted messages are written directly to the persistent store.

JDBC-Based Persistence Properties

Table 17–7 lists the broker properties related to JDBC-based persistence. The first of these properties, imq.persist.jdbc.dbVendor, identifies the database vendor being used for the broker’s persistent data store; all of the remaining properties are qualified by this vendor name.

Table 17–7 Broker Properties for JDBC-Based Persistence

Property 

Type 

Default Value 

Description 

imq.persist.jdbc.dbVendor

String 

None 

Name of database vendor for persistent data store:  

    hadb: HADB (Sun Microsystems, Inc.)


    derby: Java DB (Sun Microsystems, Inc.)


    oracle: Oracle (Oracle Corporation)


    mysql: MySQL (Sun Microsystems, Inc.)


    postgresql: postgreSQL


imq.persist.jdbc.connection.limit

Integer 

5

The maximum number of connections that can be opened to the database. 

imq.persist.jdbc.vendorName.driver

String 

per vendor 

Java class name of JDBC driver, if needed, for connecting to database from vendor vendorName

imq.persist.jdbc.vendorName.opendburl

String 

None 

URL for connecting to existing database from vendor vendorName

Applicable when driver is used to connect to database. 

imq.persist.jdbc.vendorName.createdburl [Optional]

String 

None 

URL for creating new database from vendor vendorName

Applies for embedded database, such as Java DB. 

imq.persist.jdbc.vendorName.closedburl

String 

None 

URL for closing connection to database from vendor vendorName

Applies for some embedded databases, such as Java DB. 

imq.persist.jdbc.vendorName.user

String 

None 

User name, if required, for connecting to database from vendor vendorName

For security reasons, the value can instead be specified using command line options imqbrokerd -dbuser and imqdbmgr -u.

imq.persist.jdbc.vendorName.needpassword

Boolean 

false

Does database from vendor vendorName require a password for broker access?

If true, the imqbrokerd and imqdbmgr commands will prompt for a password, unless you use the -passfile option to specify a password file containing it.

imq.persist.jdbc.vendorName.password, [Should be used only in password files]

String 

None 

Password, if required, for connecting to database from vendor vendorName

imq.persist.jdbc.vendorName.property.propName

String 

None 

Vendor-specific property propName for database from vendor vendorName

imq.persist.jdbc.vendorName.tableoption

String 

None 

Vendor-specific options passed to the database when creating the table schema. 

Security Properties

Table 17–8 lists broker properties related to security services: authentication, authorization, and encryption. Table 17–9 lists broker properties related specifically to LDAP-based authentication, and Table 17–10 lists broker properties related specifically to JAAS-based authentication.

Table 17–8 Broker Security Properties

Property 

Type 

Default Value 

Description 

imq.authentication.basic.user_repository

String 

file

Type of user authentication:  

    file: File-based


    ldap: Lightweight Directory Access Protocol


    jaas: Java Authentication and Authorization Service


imq.authentication.type

String 

digest

Password encoding method:

    digest: MD5 (for file-based authentication)


    basic: Base-64 (for LDAP or JAAS authentication)


imq.serviceName.authentication.type

String 

None 

Password encoding method for connection service serviceName:

    digest: MD5 (for file-based authentication)


    basic: Base-64 (for LDAP or JAAS authentication)


If specified, overrides imq.authentication.type for the designated connection service.

imq.authentication.client.response.timeout

Integer 

180

Interval, in seconds, to wait for client response to authentication requests 

imq.accesscontrol.enabled

Boolean 

true

Use access control?

If true, the system will check the access control file to verify that an authenticated user is authorized to use a connection service or to perform specific operations with respect to specific destinations.

imq.accesscontrol.type

String 

file

Specifies the access control type 

imq.serviceName.accesscontrol.enabled

Boolean 

None 

Use access control for connection service?  

If specified, overrides imq.accesscontrol.enabled for the designated connection service.

If true, the system will check the access control file to verify that an authenticated user is authorized to use the designated connection service or to perform specific operations with respect to specific destinations.

imq.accesscontrol.file.filename

String 

accesscontrol.properties

Name of access control file 

The file name specifies a path relative to the access control directory (see Appendix A, Distribution-Specific Locations of Message Queue Data).

imq.serviceName.accesscontrol.file.filename

String 

None 

Name of access control file for connection service 

If specified, overrides imq.accesscontrol.file.filename for the designated connection service.

The file name specifies a path relative to the access control directory (see Appendix A, Distribution-Specific Locations of Message Queue Data).

imq.accesscontrol.file.url

String 

Not set 

The location, as a URL, of the access control file. 

imq.serviceName.accesscontrol.file.url

String 

None 

The location, as a URL, of the access control file for connection service 

If specified, overrides imq.accesscontrol.file.url for the designated connection service.

imq.keystore.file.dirpath

String 

See Appendix A, Distribution-Specific Locations of Message Queue Data

Path to directory containing key store file 

imq.keystore.file.name

String 

keystore

Name of key store file 

imq.keystore.password [To be used only in password files]

String 

None 

Password for key store file 

imq.passfile.enabled

Boolean 

false

Obtain passwords from password file?  

imq.passfile.dirpath

String 

See Appendix A, Distribution-Specific Locations of Message Queue Data

Path to directory containing password file 

imq.passfile.name

String 

passfile

Name of password file

imq.imqcmd.password

String 

None 

Password for administrative user 

The Command utility (imqcmd) uses this password to authenticate the user before executing a command.

imq.audit.enabled

Boolean 

false

Is audit logging to broker log file enabled? 

imq.audit.bsm.disabled

Boolean 

true

Is audit logging to the Solaris BSM audit log disabled? 

Table 17–9 lists broker properties related to LDAP-based user authentication.

Table 17–9 Broker Security Properties for LDAP Authentication

Property 

Type 

Default Value 

Description 

imq.user_repository.ldap.server

String 

None 

Host name and port number for LDAP server

The value is of the form  

    hostName:port


where hostName is the fully qualified DNS name of the host running the LDAP server and port is the port number used by the server.

     

To specify a list of failover servers, use the following syntax:  

    host1:port1


    ldap://host2: port2


    ldap://host3 :port3



     

Entries in the list are separated by spaces. Note that each failover server address is prefixed with ldap://. Use this format even if you use SSL and have set the property imq.user_repository.ldap.ssl.enabled to true. You need not specify ldaps in the address.

imq.user_repository.ldap.principal

String 

None 

Distinguished name for binding to LDAP user repository

Not needed if the LDAP server allows anonymous searches.

imq.user_repository.ldap.password [Should be used only in password files]

String 

None 

Password for binding to LDAP user repository

Not needed if the LDAP server allows anonymous searches.

imq.user_repository.ldap.propertyName

 

 

 

imq.user_repository.ldap.base

String 

None 

Directory base for LDAP user entries

imq.user_repository.ldap.uidattr

String 

None 

Provider-specific attribute identifier for LDAP user name

imq.user_repository.ldap.usrformat

String 

None 

When set to a value of dn, specifies that DN username format is used for authentication (for example: uid=mquser,ou=People,dc=red,dc=sun,dc=com).

Also, the broker extracts the value of the imq.user.repository.lpdap.uidatr attribute from the DN username, and uses this value as the user name in access control operations.

If not set, then normal username format is used. 

imq.user_repository.ldap.usrfilter [Optional]

String 

None 

JNDI filter for LDAP user searches

imq.user_repository.ldap.grpsearch

Boolean 

false

Enable LDAP group searches?


Note –

Message Queue does not support nested groups.


imq.user_repository.ldap.grpbase

String 

None 

Directory base for LDAP group entries

imq.user_repository.ldap.gidattr

String 

None 

Provider-specific attribute identifier for LDAP group name

imq.user_repository.ldap.memattr

String 

None 

Provider-specific attribute identifier for user names in LDAP group

imq.user_repository.ldap.grpfilter

String 

None 

JNDI filter for LDAP group searches

imq.user_repository.ldap.timeout

Integer 

280

Time limit for LDAP searches, in seconds

imq.user_repository.ldap.ssl.enabled

Boolean 

false

Use SSL when communicating with LDAP server?

Table 17–10 lists broker properties related to JAAS-based user authentication.

Table 17–10 Broker Security Properties for JAAS Authentication

Property 

Type 

Default Value 

Description 

imq.user_repository.jaas.name

String 

None 

Set to the name of the desired entry (in the JAAS configuration file) that references the login modules you want to use as the authentication service. This is the name you noted in Step 3.

imq.user_repository.jaas.userPrincipalClass

String 

None 

This property, used by Message Queue access control, specifies the java.security.Principal implementation class in the login module(s) that the broker uses to extract the Principal name to represent the user entity in the Message Queue access control file. If, it is not specified, the user name passed from the Message Queue client when a connection was requested is used instead.

imq.user_repository.jaas.groupPrincipalClass

String 

None 

This property, used by Message Queue access control, specifies the java.security.Principal implementation class in the login module(s) that the broker uses to extract the Principal name to represent the group entity in the Message Queue access control file. If, it is not specified, the user name passed from the Message Queue client when a connection was requested is used instead.

Monitoring Properties

Table 17–11 lists the broker properties related to monitoring services.

Table 17–11 Broker Monitoring Properties

Property 

Type 

Default Value 

Description 

imq.log.level [Can be used with imqcmd update bkr command]

String 

INFO

Logging level 

Specifies the categories of logging information that can be written to an output channel. Possible values, from high to low:  

    ERROR


    WARNING


    INFO


Each level includes those above it (for example, WARNING includes ERROR).

imq.destination.logDeadMsgs

Boolean 

false

Log information about dead messages?  

If true, the following events will be logged:

  • A destination is full, having reached its maximum size or message count.

  • The broker discards a message for a reason other than an administrative command or delivery acknowledgment.

  • The broker moves a message to the dead message queue.

imq.log.console.stream

String 

ERR

Destination for console output:  

    OUT: stdout


    ERR: stderr


imq.log.console.output

String 

ERROR|WARNING

Categories of logging information to write to console:  

    NONE


    ERROR


    WARNING


    INFO


    ALL


The ERROR, WARNING, and INFO categories do not include those above them, so each must be specified explicitly if desired. Any combination of categories can be specified, separated by vertical bars (|).

imq.log.file.dirpath

String 

See Appendix A, Distribution-Specific Locations of Message Queue Data

Path to directory containing log file 

imq.log.file.filename

String 

log.txt

Name of log file 

imq.log.file.output

String 

ALL

Categories of logging information to write to log file:  

    NONE


    ERROR


    WARNING


    INFO


    ALL


The ERROR, WARNING, and INFO categories do not include those above them, so each must be specified explicitly if desired. Any combination of categories can be specified, separated by vertical bars (|).

imq.log.file.rolloverbytes

Integer 

-1

File length, in bytes, at which output rolls over to a new log file 

A value of -1 denotes an unlimited number of bytes (no rollover based on file length).

imq.log.file.rolloversecs

Integer 

604800 (one week)

Age of file, in seconds, at which output rolls over to a new log file 

A value of -1 denotes an unlimited number of seconds (no rollover based on file age).

imq.log.syslog.output [Solaris platform only]

String 

ERROR

Categories of logging information to write to syslogd(1M):

    NONE


    ERROR


    WARNING


    INFO


    ALL


The ERROR, WARNING, and INFO categories do not include those above them, so each must be specified explicitly if desired. Any combination of categories can be specified, separated by vertical bars (|).

imq.log.syslog.facility

String 

LOG_DAEMON

syslog facility for logging messages

Possible values mirror those listed on the syslog(3C) man page. Appropriate values for use with Message Queue include:

    LOG_USER


    LOG_DAEMON


    LOG_LOCAL0


    LOG_LOCAL1


    LOG_LOCAL2


    LOG_LOCAL3


    LOG_LOCAL4


    LOG_LOCAL5


    LOG_LOCAL6


    LOG_LOCAL7


imq.log.syslog.identity

String 

imqbrokerd_${imq.instanceName}

Identity string to be prefixed to all messages logged to syslog

imq.log.syslog.logpid

Boolean 

true

Log broker process ID with message?  

imq.log.syslog.logconsole

Boolean 

false

Write messages to system console if they cannot be sent to syslog?

imq.log.timezone

String 

Local time zone 

Time zone for log time stamps 

Possible values are the same as those used by the method java.util.TimeZone.getTimeZone.

Examples:

    GMT


    GMT-8:00


    America/LosAngeles


    Europe/Rome


    Asia/Tokyo


imq.metrics.enabled

Boolean 

true

Enable writing of metrics information to Logger?

Does not affect the production of metrics messages (controlled by imq.metrics.topic.enabled).

imq.metrics.interval

Integer 

-1

Time interval, in seconds, at which to write metrics information to Logger 

Does not affect the time interval for production of metrics messages (controlled by imq.metrics.topic.interval).

A value of -1 denotes an indefinite interval (never write metrics information to Logger).

imq.metrics.topic.enabled

Boolean 

true

Enable production of metrics messages to metric topic destinations?  

If false, an attempt to subscribe to a metric topic destination will throw a client-side exception.

imq.metrics.topic.interval

Integer 

60

Time interval, in seconds, at which to produce metrics messages to metric topic destinations 

imq.metrics.topic.persist

Boolean 

false

Are metrics messages sent to metric topic destinations persistent?  

imq.metrics.topic.timetolive

Integer 

300

Lifetime, in seconds, of metrics messages sent to metric topic destinations 

imq.primaryowner.name [Used by JES Monitoring Framework]

String 

System property user.name (user who started the broker)

Name of primary system owner 

imq.primaryowner.contact

String 

System property user.name (user who started the broker)

Contact information for primary system owner 

imq.broker.adminDefinedRoles.count

Integer 

None 

Number of defined roles 

imq.broker.adminDefinedRoles.nameN

String 

Broker instance name 

Name of defined role N (where N ranges from 0 to .count-1)

Example:


...name0=Stocks JMS Server
...name1=JMS provider for appserver

Cluster Configuration Properties

Table 17–12 lists the configuration properties related to broker clusters.

Table 17–12 Broker Properties for Cluster Configuration

Property 

Type 

Default Value 

Description 

imq.cluster.url [Must have the same value for all brokers in a cluster] , [Can be used with imqcmd update bkr command]

String 

None 

URL of cluster configuration file, if any

Examples:

    http://webserver/imq/cluster.properties


    (for a file on a Web server)


     
    

    file:/net/mfsserver/imq/cluster.properties


    (for a file on a shared drive)


imq.cluster.ha

Boolean 

false

Is broker part of a high-availability cluster?  

imq.cluster.brokerlist, [Conventional clusters only]

String 

None 

List of broker addresses belonging to cluster 

The list consists of one or more addresses, separated by commas. Each address specifies the host name and Port Mapper port number of a broker in the cluster, in the form hostName:portNumber.

Example:

    host1:3000,host2:8000,ctrlhost



Note –

If set, this property is ignored (and a warning logged) for high-availability clusters; all brokers configured to use the cluster’s shared persistent store are automatically recognized as members of the cluster.


imq.cluster.hostname [Can be specified independently for each broker in a cluster]

String 

None 

Host name or IP address for cluster connection service

If specified, overrides imq.hostname (see Table 17–1) for the cluster connection service. This might be necessary, for instance, if the broker’s host computer has more than one interface card installed.

imq.cluster.port

Integer 

0

Port number for cluster connection service

A value of 0 specifies that the port number should be allocated dynamically by the Port Mapper. You might need to set a different value, for instance, to specify a static port number for connecting to the broker through a firewall.

imq.cluster.transport

String 

tcp

Network transport protocol for cluster connection service

For secure, encrypted message delivery between brokers, set this property to ssl.

imq.cluster.masterbroker,

String 

None 

Host name and Port Mapper port number of host on which cluster’s master broker (if any) is running 

The value has the form hostName:portNumber, where hostName is the host name of the master broker’s host and portNumber is its Port Mapper port number.

Example:

    ctrlhost:7676



Note –

enhanced clusters cannot have a master broker. If this property is set for a broker belonging to an enhanced cluster, the broker will log a warning message and ignore the property.


imq.cluster.clusterid [enhanced clusters only] ,

String 

None 

Cluster identifier

Must be a unique alphanumeric string of no more than n–13 characters, where n is the maximum table name length allowed by the database. No two running clusters may have the same cluster identifier.

This string is appended to the names of all database tables in the cluster’s shared persistent store.  


Note –

For brokers belonging to a high-availability cluster, this property is used in database table names in place of imq.brokerid (see Table 17–1).


imq.cluster.heartbeat.hostname

String 

None 

Host name or IP address for heartbeat service

If specified, overrides imq.hostname (see Table 17–1) for the heartbeat service.

imq.cluster.heartbeat.port

Integer 

7676

Port number for heartbeat service 

A value of 0 specifies that the port number should be allocated dynamically by the Port Mapper.

imq.cluster.heartbeat.interval

Integer 

Interval between heartbeats, in seconds 

imq.cluster.heartbeat.threshold

Integer 

Number of missed heartbeat intervals after which to invoke monitor service 

imq.cluster.monitor.interval

Integer 

30 

Interval, in seconds, at which to update monitor time stamp 


Note –

Larger values for this property will reduce the frequency of database access and thus improve overall system performance, but at the cost of slower detection and takeover in the event of broker failure.


imq.cluster.monitor.threshold

Integer 

Number of missed monitor intervals after which to initiate broker takeover 

Bridge Properties

Table 17–13 lists broker properties related to the bridge service manager. Table 17–14 lists broker properties related specifically to the JMS bridge service, and Table 17–15 lists broker properties related specifically to the STOMP bridge service.

Table 17–13 Broker Properties for the Bridge Service Manager

Property 

Type 

Default Value 

Description 

imq.bridge.enabled

Boolean 

false

Is the bridge service enabled on this broker? 

imq.bridge.activelist

String 

None 

List of bridges that will be loaded on broker startup. 

The list consists of one or more bridge names, separated by commas. All bridge names for a broker must be unique. 

imq.bridge.admin.user

String 

None 

The Message Queue broker administrative user to be used by the bridge service manager and individual bridges to create ADMIN connections to the broker. For JMS bridges, this user is also used to access the JMS bridge's built-in DMQ destination. 

imq.bridge.admin.password

String 

None 

The password for the imq.bridge.admin.user user.

Table 17–14 Broker Properties for a JMS Bridge Service

Property 

Type 

Default Value 

Description 

imq.bridge.name.type

String 

None 

The bridge type of the bridge named name. For JMS bridges, specify a value of JMS or jms.

imq.bridge.name.xmlurl

String 

None 

The URL where the XML configuration file for the JMS bridge name is stored.

Examples:

    http://webserver/imq/jmsbridge1.config.xml


    (for a file on a Web server)


     
    

    file:/net/fileserver/imq/jmsbridge1.config.xml


    (for a file on a shared drive)


imq.bridge.name.autostart

Boolean 

true

Should the JMS bridge name be automatically started when the broker is started?

imq.bridge.name.logfile.limit

Integer 

0

The approximate maximum number of bytes the JMS bridge name writes to any one log file.

A value of 0 (zero) indicates that there is no maximum limit.

imq.bridge.name.logfile.count

Integer 

1

The number of log files the JMS bridge name cycles through.

imq.bridge.tm.props

imq.bridge.name.tm.props

String 

None 

Each of these properties specifies a list of key-value pairs for the built-in transaction coordinator for the JMS bridge name.

The list consists of one or more key=value pairs separated by commas.

When the imq.persist.store is file, the built-in transaction coordinator supports these keys: txlogSize, txlogSync, and txlogMmap.

If the same key appears in both properties, the value specified in imq.bridge.name.tm.props takes precedence.

Table 17–15 Broker Properties for the STOMP Bridge Service

Property 

Type 

Default Value 

Description 

imq.bridge.stomp.tcp.enabled

Boolean 

true

Does the STOMP bridge accept TCP connections? 

imq.bridge.stomp.tcp.port

Integer 

7672

The port on which the STOMP bridge listens for TCP connections, provided that imq.bridge.stomp.tcp.enabled is true.

imq.bridge.stomp.tls.enabled

Boolean 

false

Does the STOMP bridge accept SSL/TLS connections? 

If true, a keystore must be created using the imqkeytool utility before starting the broker.

imq.bridge.stomp.tls.port

Integer 

7673

The port on which the STOMP bridge listens for SSL/TLS connections, provided that imq.bridge.stomp.tls.enabled is true.

imq.bridge.stomp.tls.requireClientAuth

Boolean 

false

Do SSL/TLS connections require client authentication? 

imq.bridge.stomp.consumerFlowLimit

Integer 

1000

The maximum number of unacknowledged messages that the STOMP bridge will deliver on a transacted STOMP subscription. The STOMP client must then acknowledge the messages and commit the transaction. 

imq.bridge.stomp.messageTransformer

String 

None 

The fully qualified class name of a class that extends the Message Queue bridge MessageTransformer abstract class by implementing the transform() method. Place this class under the IMQ_HOME/lib/ext. directory

imq.bridge.stomp.logfile.limit

Integer 

0

The approximate maximum number of bytes the STOMP bridge writes to any one log file. 

A value of 0 (zero) indicates that there is no maximum limit.

imq.bridge.stomp.logfile.count

Integer 

1

The number of log files the STOMP bridge cycles through. 

JMX Properties

The broker properties listed in Table 17–16 support the use of the Java Management Extensions (JMX) application programming interface by Java applications. The JMX API is used to configure and monitor broker resources.

These JMX-related properties can be set in the broker's instance configuration file (config.properties) or at broker startup with the -D option of the Broker utility (imqbrokerd). None of these properties can be set dynamically with the Command utility (imqcmd).

In addition, some of these properties (imq.jmx.rmiregistry.start, imq.jmx.rmiregistry.use, imq.jmx.rmiregistry.port) can be set with corresponding Broker utilityimqbrokerd options described in Table 16–1.

See Appendix D, JMX Support for further information on administrative support of JMX clients.

Table 17–16 Broker Properties for JMX Support

Property 

Type 

Default Value 

Description 

imq.jmx.connector.activelist

String 

jmxrmi

Names of JMX connectors to be activated at broker startup, separated by commas

imq.jmx.connector.RMIconnectorName.urlpath

String 

Shown in next column 

urlpath component of JMX service URL for connector connectorName

Useful in cases where an RMI registry is being used and the JMX service URL path must be set explicitly (such as when a shared external RMI registry is used). See The JMX Service URL.

Default:

   /jndi/rmi://brokerHost:rmiPort
      /brokerHost/brokerPort/connectorName

imq.jmx.connector.RMIconnectorName.port

Integer 

None: the port is dynamically allocated 

Port number of JMX connector 

Used to specify a static/known JMX connector port, typically in cases where a JMX client is accessing the broker's MBean server through a firewall. See JMX Connections Through a Firewall.

imq.jmx.connector.RMIconnectorName.useSSL

Boolean 

false

Use Secure Socket Layer (SSL) for connector connectorName?

This property is set to true for the ssljmxrmi connector.

imq.jmx.connector.RMIconnectorName.brokerHostTrusted

Boolean 

false

Trust any certificate presented by broker for connector connectorName?

Applies only when imq.jmx.connector.connectorName.useSSL is true.

If false, the JMX client runtime will validate all certificates presented to it. Validation will fail if the signer of the certificate is not in the client's trust store.

If true, validation of certificates is skipped. This can be useful, for instance, during software testing when a self-signed certificate is used.

imq.jmx.rmiregistry.start

Boolean 

false

Start RMI registry at broker startup?

If true, the broker will start an RMI registry at the port specified by imq.jmx.rmiregistry.port and use the regsitry to store the JMX connector stub. (The value of imq.jmx.rmiregistry.use is ignored in this case.)

For convenience, this property can also be set at broker startup with the -startRmiRegistry option ofimqbrokerd.

imq.jmx.rmiregistry.use

Boolean 

false

Use an existing RMI registry?

Applies only if imq.jmx.rmiregistry.start is false.

If true, the broker will use an existing RMI registry on the local host at the port specified by imq.jmx.rmiregistry.port to store the JMX connector stub. The existing RMI registry must already be running at broker startup.

For convenience, this property can also be set at broker startup with the -useRmiRegistry option ofimqbrokerd.

imq.jmx.rmiregistry.port

Integer 

1099

Port number of RMI registry

Applies only if imq.jmx.rmiregistry.start is true or imq.jmx.rmiregistry.use is true.

This port number will be included in the URL path of the JMX service URL.  

For convenience, this property can also be set at broker startup with the -rmiRegistryPort option of imqbrokerd.

Alphabetical List of Broker Properties

Alphabetical List of Broker Properties is an alphabetical list of broker configuration properties, with cross-references to the relevant tables in this chapter.

Table 17–17 Alphabetical List of Broker Properties

Property 

Table 

imq.accesscontrol.enabled

Table 17–8

imq.accesscontrol.type

Table 17–8

imq.accesscontrol.file.filename

Table 17–8

imq.audit.bsm.disabled

Table 17–8

imq.audit.enabled

Table 17–8

imq.authentication.basic.user_repository

Table 17–8

imq.authentication.client.response.timeout

Table 17–8

imq.authentication.type

Table 17–8

imq.autocreate.destination.isLocalOnly

Table 17–3

imq.autocreate.destination.limitBehavior

Table 17–3

imq.autocreate.destination.maxBytesPerMsg

Table 17–3

imq.autocreate.destination.maxNumMsgs

Table 17–3

imq.autocreate.destination.maxNumProducers

Table 17–3

imq.autocreate.destination.maxTotalMsgBytes

Table 17–3

imq.autocreate.destination.useDMQ

Table 17–3

imq.autocreate.queue

Table 17–3

imq.autocreate.queue.consumerFlowLimit

Table 17–3

imq.autocreate.queue.localDeliveryPreferred

Table 17–3

imq.autocreate.queue.maxNumActiveConsumers

Table 17–3

imq.autocreate.queue.maxNumBackupConsumers

Table 17–3

imq.autocreate.reaptime

Table 17–3

imq.autocreate.topic

Table 17–3

imq.autocreate.topic.consumerFlowLimit

Table 17–3

imq.broker.adminDefinedRoles.count

Table 17–11

imq.broker.adminDefinedRoles.namen

Table 17–11

imq.brokerid

Table 17–1

imq.bridge.activelist

Table 17–13

imq.bridge.admin.password

Table 17–13

imq.bridge.admin.user

Table 17–13

imq.bridge.enabled

Table 17–13

imq.bridge.name.autostart

Table 17–14

imq.bridge.name.logfile.count

Table 17–14

imq.bridge.name.logfile.limit

Table 17–14

imq.bridge.name.tm.props

Table 17–14

imq.bridge.name.type

Table 17–14

imq.bridge.name.xmlurl

Table 17–14

imq.bridge.stomp.consumerFlowLimit

Table 17–15

imq.bridge.stomp.logfile.count

Table 17–15

imq.bridge.stomp.logfile.limit

Table 17–15

imq.bridge.stomp.messageTransformer

Table 17–15

imq.bridge.stomp.tcp.enabled

Table 17–15

imq.bridge.stomp.tcp.port

Table 17–15

imq.bridge.stomp.tls.enabled

Table 17–15

imq.bridge.stomp.tls.port

Table 17–15

imq.bridge.stomp.tls.requireClientAuth

Table 17–15

imq.bridge.tm.props

Table 17–14

imq.cluster.brokerlist

Table 17–12

imq.cluster.clusterid

Table 17–12

imq.cluster.ha

Table 17–12

imq.cluster.heartbeat.hostname

Table 17–12

imq.cluster.heartbeat.interval

Table 17–12

imq.cluster.heartbeat.port

Table 17–12

imq.cluster.heartbeat.threshold

Table 17–12

imq.cluster.hostname

Table 17–12

imq.cluster.masterbroker

Table 17–12

imq.cluster.monitor.interval

Table 17–12

imq.cluster.monitor.threshold

Table 17–12

imq.cluster.port

Table 17–12

imq.cluster.transport

Table 17–12

imq.cluster.url

Table 17–12

imq.destination.DMQ.truncateBody

Table 17–2

imq.destination.logDeadMsgs

Table 17–11

imq.hostname

Table 17–1

imq.imqcmd.password

Table 17–8

imq.jmx.connector.activelist

Table 17–16

imq.jmx.connector.RMIconnectorName.brokerHostTrusted

Table 17–16

imq.jmx.connector.RMIconnectorName.port

Table 17–16

imq.jmx.connector.RMIconnectorName.urlpath

Table 17–16

imq.jmx.connector.RMIconnectorName.useSSL

Table 17–16

imq.jmx.rmiregistry.port

Table 17–16

imq.jmx.rmiregistry.start

Table 17–16

imq.jmx.rmiregistry.use

Table 17–16

imq.keystore.file.dirpath

Table 17–8

imq.keystore.file.name

Table 17–8

imq.keystore.password

Table 17–8

imq.keystore.propertyName

Table 17–8

imq.log.console.output

Table 17–11

imq.log.console.stream

Table 17–11

imq.log.file.dirpath

Table 17–11

imq.log.file.filename

Table 17–11

imq.log.file.output

Table 17–11

imq.log.file.rolloverbytes

Table 17–11

imq.log.file.rolloversecs

Table 17–11

imq.log.level

Table 17–11

imq.log.syslog.facility

Table 17–11

imq.log.syslog.identity

Table 17–11

imq.log.syslog.logconsole

Table 17–11

imq.log.syslog.logpid

Table 17–11

imq.log.syslog.output

Table 17–11

imq.log.timezone

Table 17–11

imq.message.expiration.interval

Table 17–2

imq.message.max_size

Table 17–2

imq.metrics.enabled

Table 17–11

imq.metrics.interval

Table 17–11

imq.metrics.topic.enabled

Table 17–11

imq.metrics.topic.interval

Table 17–11

imq.metrics.topic.persist

Table 17–11

imq.metrics.topic.timetolive

Table 17–11

imq.passfile.dirpath

Table 17–8

imq.passfile.enabled

Table 17–8

imq.passfile.name

Table 17–8

imq.persist.file.destination.message.filepool.limit

Table 17–5

imq.persist.file.message.cleanup

Table 17–5

imq.persist.file.message.filepool.cleanratio

Table 17–5

imq.persist.file.message.max_record_size

Table 17–5

imq.persist.file.sync.enabled

Table 17–5

imq.persist.file.transaction.memorymappedfile.enabled

Table 17–5

imq.persist.jdbc.dbVendor

Table 17–7

imq.persist.jdbc.vendorName.closedburl

Table 17–7

imq.persist.jdbc.vendorName.createdburl

Table 17–7

imq.persist.jdbc.vendorName.driver

Table 17–7

imq.persist.jdbc.vendorName.needpassword

Table 17–7

imq.persist.jdbc.vendorName.opendburl

Table 17–7

imq.persist.jdbc.vendorName.password

Table 17–7

imq.persist.jdbc.vendorName.property.propName

Table 17–7

imq.persist.jdbc.vendorName.user

Table 17–7

imq.persist.store

Table 17–4

imq.ping.interval

Table 17–1

imq.portmapper.backlog

Table 17–1

imq.portmapper.hostname

Table 17–1

imq.portmapper.port

Table 17–1

imq.primaryowner.contact

Table 17–11

imq.primaryowner.name

Table 17–11

imq.resourceState.count

Table 17–2

imq.resourceState.threshold

Table 17–2

imq.service.activelist

Table 17–1

imq.serviceName.accesscontrol.enabled

Table 17–8

imq.serviceName.accesscontrol.file.filename

Table 17–8

imq.serviceName.authentication.type

Table 17–8

imq.serviceName.max_threads

Table 17–1

imq.serviceName.min_threads

Table 17–1

imq.serviceName.protocolType.hostname

Table 17–1

imq.serviceName.protocolType.port

Table 17–1

imq.serviceName.threadpool_model

Table 17–1

imq.shared.connectionMonitor_limit

Table 17–1

imq.system.max_count

Table 17–2

imq.system.max_size

Table 17–2

imq.transaction.autorollback

Table 17–2

imq.user_repository.ldap.base

Table 17–9

imq.user_repository.ldap.gidattr

Table 17–9

imq.user_repository.ldap.grpbase

Table 17–9

imq.user_repository.ldap.grpfilter

Table 17–9

imq.user_repository.ldap.grpsearch

Table 17–9

imq.user_repository.ldap.memattr

Table 17–9

imq.user_repository.ldap.password

Table 17–9

imq.user_repository.ldap.principal

Table 17–9

imq.user_repository.ldap.propertyName

Table 17–9

imq.user_repository.ldap.server

Table 17–9

imq.user_repository.ldap.ssl.enabled

Table 17–9

imq.user_repository.ldap.timeout

Table 17–9

imq.user_repository.ldap.uidattr

Table 17–9

imq.user_repository.ldap.usrfilter

Table 17–9

imq.user_repository.jaas.name

Table 17–10

imq.user_repository.jaas.userPrincipalClass

Table 17–10

imq.user_repository.jaas.groupPrincipalClass

Table 17–10

Chapter 18 Physical Destination Property Reference

This chapter provides reference information about configuration properties for physical destinations.

Physical Destination Properties

Table 18–1 lists the configuration properties for physical destinations. These properties can be set when creating or updating a physical destination. For auto-created destinations, you set default values in the broker’s instance configuration file (see Table 17–3).

Table 18–1 Physical Destination Properties

Property 

Type 

Default Value 

Description 

maxNumMsgs [In a cluster environment, applies to each individual instance of a destination rather than collectively to all instances in the cluster]

Integer 

-1

Maximum number of unconsumed messages 

A value of -1 denotes an unlimited number of messages.

For the dead message queue, the default value is 1000.


Note –

When flow control is in effect (limitBehavior = FLOW_CONTROL), it is possible for the specified message limit to be exceeded because the broker cannot react quickly enough to stop the flow of incoming messages. In such cases, the value specified for maxNumMsgs serves as merely a hint for the broker rather than a strictly enforced limit. However, if the number of unconsumed messages would exceed imq.system.max_count, the broker generates a ResourceAllocationException indicating that the destination is full and rejecting new messages.


maxBytesPerMsg

String 

-1

Maximum size, in bytes, of any single message 

Rejection of a persistent message is reported to the producing client with an exception; no notification is sent for nonpersistent messages.  

     

The value may be expressed in bytes, kilobytes, or megabytes, using the following suffixes:  

    b: Bytes


    k: Kilobytes (1024 bytes)


    m: Megabytes (1024 × 1024 = 1,048,576 bytes)


     

An unsuffixed value is expressed in bytes; a value of -1 denotes an unlimited message size.

     

Examples:

    1600: 1600 bytes


    1600b: 1600 bytes


    16k: 16 kilobytes (= 16,384 bytes)


    16m: 16 megabytes (= 16,777,216 bytes)


    -1: No limit


maxTotalMsgBytes

String 

-1

Maximum total memory, in bytes, for unconsumed messages

The syntax is the same as for maxBytesPerMsg (see above).

For the dead message queue, the default value is 10m.

limitBehavior

String 

REJECT_NEWEST

Broker behavior when memory-limit threshold reached:  

    FLOW_CONTROL: Slow down producers


    REMOVE_OLDEST: Throw out oldest messages


    REMOVE_LOW_PRIORITY: Throw out lowest-priority messages according to age; no notification to producing client


    REJECT_NEWEST: Reject newest messages; notify producing client with an exception only if message is persistent


When FLOW_CONTROL is specified, it is still possible for the number of messages to exceed imq.system.max_count. In this situation, the broker generates a ResourceAllocationException indicating that the destination is full and rejecting new messages.

     

If the value is REMOVE_OLDEST or REMOVE_LOW_PRIORITY and the useDMQ property is true, excess messages are moved to the dead message queue. For the dead message queue itself, the default limit behavior is REMOVE_OLDEST and cannot be set to FLOW_CONTROL.

maxNumProducers [Does not apply to dead message queue]

Integer 

100

Maximum number of message producers for destination

When this limit is reached, no new producers can be created. A value of -1 denotes an unlimited number of producers.

maxNumActiveConsumers [Queue destinations only]

Integer 

-1

Maximum number of active message consumers in load-balanced delivery from queue destination

A value of -1 denotes an unlimited number of consumers.

This property used mostly in cases where message order is important and you want to provide backup consumers in case the principal consumer of a queue fails. If message order is not important, then you would simply use multiple consumers to provide for scalability and availability. 

maxNumBackupConsumers

Integer 

0

Maximum number of backup message consumers in load-balanced delivery from queue destination

A value of -1 denotes an unlimited number of consumers.

consumerFlowLimit

Integer 

1000

Maximum number of messages delivered to consumer(s) in a single batch

In load-balanced queue delivery, this is the initial number of queued messages routed to active consumers before load balancing begins.  

The client runtime can override this limit by specifying a lower value on the connection factory object..  

A value of -1 denotes an unlimited number of messages.

isLocalOnly

Boolean 

false

Local delivery only?  

This property applies only to destinations in broker clusters, and cannot be changed once the destination has been created. If true, the destination is not replicated on other brokers and is limited to delivering messages only to local consumers (those connected to the broker on which the destination is created).

localDeliveryPreferred ,

Boolean 

false

Local delivery preferred?  

This property applies only to load-balanced queue delivery in broker clusters. If true, messages will be delivered to remote consumers only if there are no consumers on the local broker; the destination must not be restricted to local-only delivery (isLocalOnly must be false).

useDMQ

Boolean 

true

Send dead messages to dead message queue?  

If false, dead messages will simply be discarded.

validateXMLSchemaEnabled

[This property should be set when a destination is inactive: when it has no consumers or producers and when there are no messages in the destination. Otherwise the producer must reconnect.]

Boolean 

false

XML schema validation is enabled? 

When XML validation is enabled, the Message Queue client runtime will attempt to validate an XML message against the specified XSDs (or against the DTD, if no XSD is specified) before sending it to the broker. If the specified schema cannot be located or the message cannot be validated, the message is not sent, and an exception is thrown. Client applications using this feature should use JRE 1.5 or above. 

If set to false or not set, then XML schema validation is not enabled for the destination.

XMLSchemaURIList

String 

null 

Space separated list of XML schema document (XSD) URI strings  

The URIs point to the location of one or more XSDs to use for XML schema validation, if enabled.  

Use double quotes around this value if multiple URIs are specified. 

Example: 

http://foo/flap.xsd http://test.com/test.xsd

If this property is not set or null and XML validation is enabled, XML validation is performed using a DTD specified in the XML document. 

if an XSD is changed, as a result of changing application requirements, all client applications producing XML messages based on the changed XSD must reconnect to the broker. 

reloadXMLSchemaOnFailure

Boolean 

false

Reload XML schema on failure enabled? 

If set to true and XML validation fails, then the Message Queue client runtime will attempt to reload the XSD before attempting again to validate a message. The client runtime will throw an exception if the validation fails using the reloaded SXD.

If set to false or not set, then the schema is not reloaded if validation fails. 

Chapter 19 Administered Object Attribute Reference

This chapter provides reference information about the attributes of administered objects. It consists of the following sections:

Connection Factory Attributes

The attributes of a connection factory object are grouped into categories described in the following sections below:

Connection Handling

Table 19–1 lists the connection factory attributes for connection handling.

Table 19–1 Connection Factory Attributes for Connection Handling

Attribute 

Type 

Default Value 

Description 

imqAddressList

String 

An existing Message Queue 3.0 address, if any; if none, the first entry in Table 19–2

List of broker addresses 

The list consists of one or more addresses, separated by commas. Each address specifies (or implies) the host name, port number, and connection service for a broker instance to which the client can connect. Address syntax varies depending on the connection service and port assignment method; see below for details.  


Note –

In an enhanced broker cluster, the value of this attribute is updated dynamically as brokers enter and leave the cluster, so that it always reflects the cluster’s current membership.


imqAddressListBehavior

String 

PRIORITY

Order in which to attempt connection to broker addresses:  

    PRIORITY: Order specified in address list


    RANDOM: Random order



Note –

If many clients share the same connection factory, specify random connection order to prevent them from all attempting to connect to the same address.


imqAddressListIterations

Integer 

1

Number of times to iterate through address list attempting to establish or reestablish a connection 

A value of -1 denotes an unlimited number of iterations.


Note –

In the event of broker failure in an enhanced broker cluster, this attribute is ignored and the Message Queue client runtime iterates through the address list indefinitely until it succeeds in reconnecting to a takeover broker. The effect is equivalent to an imqAddressListIterations value of -1, overriding any other explicit or default setting of this attribute. The only way for a client application to avoid this behavior is to close the connection explicitly on broker failure.


imqPingInterval

Integer 

30

Interval, in seconds, at which to test connection between client and broker 

A value of 0 or -1 disables periodic testing of the connection.

imqReconnectEnabled

Boolean 

false

Attempt to reestablish a lost connection?  


Note –

In the event of broker failure in an enhanced broker cluster, this attribute is ignored and automatic reconnection is always attempted. The effect is equivalent to an imqReconnectEnabled value of true, overriding any other explicit or default setting of this attribute. The only way for a client application to avoid this behavior is to close the connection explicitly on broker failure.


imqReconnectAttempts

Integer 

0

Number of times to attempt connection (or reconnection) to each address in address list before moving on to next 

A value of -1 denotes an unlimited number of connection attempts: attempt repeatedly to connect to first address until successful. For example, in an enhanced broker cluster, this value will allow for connection to the failover broker.

imqReconnectInterval

Long integer 

3000

Interval, in milliseconds, between reconnection attempts 

This value applies both for successive attempts on a given address and for successive addresses in the list.  


Note –

Too small a value may give the broker insufficient recovery time; too large a value may cause unacceptable connection delays.


imqSSLIsHostTrusted

Boolean 

false

Trust any certificate presented by broker?  

If false, the Message Queue client runtime will validate all certificates presented to it. Validation will fail if the signer of the certificate is not in the client's trust store.

If true, validation of certificates is skipped. This can be useful, for instance, during software testing when a self-signed certificate is used.

NOTE: To use signed certificates from a certification authority, set this attribute to false.

The value of the imqAddressList attribute is a comma-separated string specifying one or more broker addresses to which to connect. The general syntax for each address is as follows:

   scheme://address

where scheme identifies one of the addressing schemes shown in the first column of Table 19–2 and address denotes the broker address itself. The exact syntax for specifying the address depends on the addressing scheme, as shown in the last column of the table.

Table 19–2 Message Broker Addressing Schemes

Scheme 

Service 

Syntax 

Description 

mq

jms or ssljms

[hostName][:portNumber][/serviceName]

Assign port dynamically for jms or ssljms connection service

The address list entry specifies the host name and port number for the Message Queue Port Mapper. The Port Mapper itself dynamically assigns a port to be used for the connection.  

Default values:

    hostName = localhost


    portNumber = 7676


    serviceName = jms


For the ssljms connection service, all variables must be specified explicitly.

mqtcp

jms

hostName:portNumber/jms

Connect to specified port using jms connection service

Bypasses the Port Mapper and makes a TCP connection directly to the specified host name and port number.

mqssl

ssljms

hostName:portNumber/ssljms

Connect to specified port using ssljms connection service

Bypasses the Port Mapper and makes a secure SSL connection directly to the specified host name and port number.

http

httpjms

http://hostName:portNumber/contextRoot/tunnel

If multiple broker instances use the same tunnel servlet, the following syntax connects to a specific broker instance rather than a randomly selected one:  

http://hostName:portNumber/contextRoot/tunnel?

    ServerName=hostName:instanceName


Connect to specified port using httpjms connection service

Makes an HTTP connection to a Message Queue tunnel servlet at the specified URL. The broker must be configured to access the HTTP tunnel servlet.

https

httpsjms

https://hostName:portNumber/contextRoot/tunnel

If multiple broker instances use the same tunnel servlet, the following syntax connects to a specific broker instance rather than a randomly selected one:  

https://hostName:portNumber/contextRoot/tunnel?

    ServerName=hostName:instanceName


Connect to specified port using httpsjms connection service

Makes a secure HTTPS connection to a Message Queue tunnel servlet at the specified URL. The broker must be configured to access the HTTPS tunnel servlet.

Table 19–3 Message Broker Address Examples

Service 

Broker Host 

Port 

Example Address 

Not specified 

Not specified 

Not specified 

No address (mq://localHost:7676/jms)

Not specified 

Specified host 

Not specified 

myBkrHost (mq://myBkrHost:7676/jms)

Not specified 

Not specified 

Specified Port Mapper port 

1012 (mq://localHost:1012/jms)

ssljms

Local host 

Standard Port Mapper port 

mq://localHost:7676/ssljms

ssljms

Specified host 

Standard Port Mapper port 

mq://myBkrHost:7676/ssljms

ssljms

Specified host 

Specified Port Mapper port 

mq://myBkrHost:1012/ssljms

jms

Local host 

Specified service port 

mqtcp://localhost:1032/jms

ssljms

Specified host 

Specified service port 

mqssl://myBkrHost:1034/ssljms

httpjms

Not applicable 

Not applicable 

http://websrvr1:8085/imq/tunnel

httpsjms

Not applicable 

Not applicable 

https://websrvr2:8090/imq/tunnel

Client Identification

Table 19–4 lists the connection factory attributes for client identification.

Table 19–4 Connection Factory Attributes for Client Identification

Attribute 

Type 

Default Value 

Description 

imqDefaultUsername

String 

guest

Default user name for authenticating with broker 

imqDefaultPassword

String 

guest

Default password for authenticating with broker 

imqConfiguredClientID

String 

null

Administratively configured client identifier 

imqDisableSetClientID

Boolean 

false

Prevent client from changing client identifier using setClientID method?

Reliability and Flow Control

Table 19–5 lists the connection factory attributes for reliability and flow control.

Table 19–5 Connection Factory Attributes for Reliability and Flow Control

Attribute 

Type 

Default Value 

Description 

imqAckTimeout

String 

0

Maximum time, in milliseconds, to wait for broker acknowledgment before throwing an exception 

A value of 0 denotes no timeout (wait indefinitely).


Note –

In some situations, too low a value can cause premature timeout: for example, initial authentication of a user against an LDAP user repository using a secure (SSL) connection can take more than 30 seconds.


imqConnectionFlowCount

Integer 

100

Number of payload messages in a metered batch 

Delivery of payload messages to the client is temporarily suspended after this number of messages, allowing any accumulated control messages to be delivered. Payload message delivery is resumed on notification by the client runtime, and continues until the count is again reached.  

A value of 0 disables metering of message delivery and may cause Message Queue control messages to be blocked by heavy payload message traffic.

imqConnectionFlowLimitEnabled

Boolean 

false

Limit message flow at connection level?  

imqConnectionFlowLimit

Integer 

1000

Maximum number of messages per connection to deliver and buffer for consumption 

Message delivery on a connection stops when the number of unconsumed payload messages pending (subject to flow metering governed by imqConnectionFlowCount) exceeds this limit. Delivery resumes only when the number of pending messages falls below the limit. This prevents the client from being overwhelmed with pending messages that might cause it to run out of memory.

This attribute is ignored if imqConnectionFlowLimitEnabled is false.

imqConsumerFlowLimit

Integer 

1000

Maximum number of messages per consumer to deliver and buffer for consumption 

Message delivery to a given consumer stops when the number of unconsumed payload messages pending for that consumer exceeds this limit. Delivery resumes only when the number of pending messages for the consumer falls below the percentage specified by imqConsumerFlowThreshold. This can be used to improve load balancing among multiple consumers and prevent any single consumer from starving others on the same connection.

This limit can be overridden by a lower value set for a queue’s own consumerFlowLimit attribute (see Chapter 18, Physical Destination Property Reference). Note also that message delivery to all consumers on a connection is subject to the overall limit specified by imqConnectionFlowLimit.

imqConsumerFlowThreshold

Integer 

50

Number of messages per consumer buffered in the client runtime, as a percentage of imqConsumerFlowLimit, below which to resume message delivery

Queue Browser and Server Sessions

Table 19–6 lists the connection factory attributes for queue browsing and server sessions.

Table 19–6 Connection Factory Attributes for Queue Browser and Server Sessions

Attribute 

Type 

Default Value 

Description 

imqQueueBrowserMaxMessagesPerRetrieve

Integer 

1000

Maximum number of messages to retrieve at one time when browsing contents of a queue destination 


Note –

This attribute does not affect the total number of messages browsed, only the way they are chunked for delivery to the client runtime (fewer but larger chunks or more but smaller ones). The client application will always receive all messages in the queue. Changing the attribute's value may affect performance, but will not affect the total amount of data retrieved.


imqQueueBrowserRetrieveTimeout

Long integer 

60000

Maximum time, in milliseconds, to wait to retrieve messages, when browsing contents of a queue destination, before throwing an exception 

imqLoadMaxToServerSession

Boolean 

true

Load up to maximum number of messages into a server session?  

If false, the client will load only a single message at a time.

This attribute applies only to JMS application server facilities.

Standard Message Properties

The connection factory attributes listed in Table 19–7 control whether the Message Queue client runtime sets certain standard message properties defined in the Java Message Service Specification.

Table 19–7 Connection Factory Attributes for Standard Message Properties

Property 

Type 

Default Value 

Description 

imqSetJMSXUserID

Boolean 

false

Set JMSXUserID property (identity of user sending message) for produced messages?

imqSetJMSXAppID

Boolean 

false

Set JMSXAppID property (identity of application sending message) for produced messages?

imqSetJMSXProducerTXID

Boolean 

false

Set JMSXProducerTXID property (transaction identifier of transaction within which message was produced) for produced messages?

imqSetJMSXConsumerTXID

Boolean 

false

Set JMSXConsumerTXID property (transaction identifier of transaction within which message was consumed) for consumed messages?

imqSetJMSXRcvTimestamp

Boolean 

false

Set JMSXRcvTimestamp property (time message delivered to consumer) for consumed messages?

Message Header Overrides

Table 19–8 lists the connection factory attributes for overriding JMS message header fields.

Table 19–8 Connection Factory Attributes for Message Header Overrides

Attribute 

Type 

Default Value 

Description 

imqOverrideJMSDeliveryMode

Boolean 

false

Allow client-set delivery mode to be overridden? 

imqJMSDeliveryMode

Integer 

2

Overriding value of delivery mode: 

1 Nonpersistent

2 Persistent

imqOverrideJMSExpiration

Boolean 

false

Allow client-set expiration time to be overridden? 

imqJMSExpiration

Long integer 

0

Overriding value of expiration time, in milliseconds 

A value of 0 denotes an unlimited expiration time (message never expires).

imqOverrideJMSPriority

Boolean 

false

Allow client-set priority level to be overridden? 

imqJMSPriority

Integer 

4 (normal)

Overriding value of priority level (0 to 9)

imqOverrideJMSHeadersToTemporaryDestinations

Boolean 

false

Apply overrides to temporary destinations? 

Destination Attributes

Table 19–9 lists the attributes that can be set for a destination administered object.

Table 19–9 Destination Attributes

Attribute 

Type 

Default Value 

Description 

imqDestinationName

String 

Untitled_Destination_Object

Name of physical destination 

The destination name may contain only alphanumeric characters (no spaces) and must begin with an alphabetic character or the underscore (_) or dollar sign ($) character. It may not begin with the characters mq.

imqDestinationDescription

String 

None 

Descriptive string for destination 

Chapter 20 JMS Resource Adapter Property Reference

This chapter describes the configuration properties of the Message Queue JMS Resource Adapter (JMS RA), which enables you to integrate Sun GlassFish Message Queue with any J2EE 1.4 application server by means of the standard J2EE connector architecture (JCA). When plugged into an application server, the Resource Adapter allows applications deployed in that application server to use Message Queue to send and receive JMS messages.

The Message Queue JMS Resource Adapter exposes its configuration properties through three JavaBean components:

To set property values for these entities, you use the tools provided by your application server for configuration and deployment of the Resource Adapter and for deployment of MDBs.

This chapter lists and describes the configuration properties of the Message Queue JMS Resource Adapter. It contains the following sections:

About Shared Topic Subscriptions for Clustered Containers

The Message Queue JMS Resource Adapter provides a special feature called shared subscriptions for containers that support clustering, such as Sun Java System GlassFish Enterprise Server. This feature enables clustered containers to share the load of processing messages for topic subscriptions across the instances of a cluster.

When this feature is enabled, the following behaviors apply:

By default, the shared subscriptions feature is enabled. In some applications that use nondurable subscriptions, however, the shared behavior is not desired. In such cases, the useSharedSubscriptionInClusteredContainer property can be set to false to disable the feature.

ResourceAdapter JavaBean

The ResourceAdapter configuration configures the default JMS Resource Adapter behavior. Table 20–1 lists and describes the properties with which you can configure this JavaBean.

Table 20–1 Resource Adapter Properties

Property 

Type 

Default Value 

Description 

addressList [Exactly one of these properties must be specified]

String 

mq://localhost:7676/jms

Message service address for connecting to Message Queue service 

Equivalent to connectionURL (below).

connectionURL

String 

mq://localhost:7676/jms

Message service address for connecting to the Message Queue service 

Equivalent to addressList(above).

brokerInstanceName

String 

imqbroker

Name of broker instance 

brokerPort

Integer 

7676

Port number for connecting to broker 

brokerBindAddress

String 

Null 

Address to which broker binds on host machine 

If null, the broker will bind to all addresses on the host machine.  

userName [Required]

String 

guest

Default user name for connecting to Message Queue service 

password

String 

guest

Default password for connecting to Message Queue service 

addressListBehavior

String 

PRIORITY

Order in which to attempt connection to Message Queue service:  

    PRIORITY: Order specified in address list


    RANDOM: Random order



Note –

Reconnection attempts after a connection failure start with the broker whose connection failed and proceed sequentially through the address list, regardless of the value set for this property.


addressListIterations

Integer 

1

Number of times to iterate through address list attempting to establish or reestablish a connection 

reconnectEnabled

Boolean 

false

Attempt to reestablish a lost connection?

reconnectAttempts

Integer 

6

Number of times to attempt reconnection to each address in address list before moving on to next

reconnectInterval

Long integer 

30000

Interval, in milliseconds, between reconnection attempts

brokerEnableHA

Boolean 

false

Enable high availability? 

clusterID

String 

None 

Cluster identifier 

If specified, only brokers with the same cluster identifier can be clustered together. In the event of broker failure, client connections will fail over only to brokers with the same cluster identifier as the original broker. If not specified, client connections can fail over to any other broker with an unspecified cluster identifier.  

For standalone brokers (those not belonging to a cluster), this property is ignored.  

The identifier may contain only alphabetic letters (AZ, az), numeric digits (09), and the underscore character (_).

brokerID

String 

None 

Broker identifier 

For brokers using a JDBC-based persistent data store, this string is appended to the names of all database tables to make them unique in the case where more than one broker instance is using the same database. For brokers using a file-based data store, this property is ignored.

In an enhanced cluster, each broker must have a unique broker identifier.  

The identifier may contain only alphabetic letters (AZ, az), numeric digits (09), and the underscore character (_).

ManagedConnectionFactory JavaBean

A managed connection factory defines the connections that the Resource Adapter provides to a message-driven bean. Table 20–2 shows the properties of the ManagedConnectionFactory JavaBean; if set, these properties override the corresponding properties of the ResourceAdapter JavaBean.

Table 20–2 Managed Connection Factory Properties

Property 

Type 

Default Value 

Description 

addressList

String 

Inherited from ResourceAdapter JavaBean (see Table 20–1)

List of message service addresses for connecting to Message Queue service 

userName [Optional]

String 

guest

User name for connecting to Message Queue service 

password

String 

guest

Password for connecting to Message Queue service 

clientID

String 

None 

Client identifier for connections to Message Queue service 

addressListBehavior

String 

PRIORITY

Order in which to attempt connection to Message Queue service:  

    PRIORITY: Order specified in address list


    RANDOM: Random order



Note –

Reconnection attempts after a connection failure start with the broker whose connection failed and proceed sequentially through the address list, regardless of the value set for this property.


addressListIterations

Integer 

1

Number of times to iterate through address list attempting to establish or reestablish a connection 

reconnectEnabled

Boolean 

false

Attempt to reestablish a lost connection?

reconnectAttempts

Integer 

6

Number of times to attempt reconnection to each address in address list before moving on to next 

reconnectInterval

Long integer 

30000

Interval, in milliseconds, between reconnection attempts 

options

String 

None 

A list of additional connection factory properties to be used when creating connections to a Message Queue broker. 

When specified, the value of options must be a comma-separated list of connection factory properties and their values, in the form:


propertyName=value

If value contains a comma or an equals sign, precede the symbol with a backslash (\) or enclose the entire value in quotes; for example:


prop1=comma\,val,prop2="equals=val"

The options property cannot specify properties that are configured internally or that have their own setter methods, specifically: imqReconnectEnabled, imqReconnectAttempts, imqReconnectInterval, imqDefaultUsername, imqDefaultPassword, imqAddressList, imqAddressListIterations. Any values specified in options for these properties are ignored.

useSharedSubscriptionInClusteredContainer

Boolean 

true

Controls whether topic subscriptions created using this ManagedConnectionFactory will be shared when running in a clustered container, as described in About Shared Topic Subscriptions for Clustered Containers.

Set to true (the default) to share subscriptions. The clientID property must also be set, even if the subscription is nondurable.

Set to false to not share subscriptions. This setting should only be used for nondurable subscriptions. The clientID property does not need to be set.

ActivationSpec JavaBean

Table 20–3 shows the configurable properties of the ActivationSpec JavaBean. These properties are used by the application server when instructing the Resource Adapter to activate a message endpoint and associate it with a message-driven bean.

Table 20–3 ActivationSpec Properties

Property 

Type 

Default Value 

Description 

addressList [Optional] , [Property specific to Message Queue JMS Resource Adapter]

String 

Inherited from ResourceAdapter JavaBean

Message service address for connecting to Message Queue service 

destination [Standard Enterprise JavaBean (EJB) and J2EE Connector Architecture (CA) property]

String 

None 

Name of destination from which to consume messages 

The value must be that of the destinationName property for a Message Queue destination administered object.

destinationType

String 

None 

Type of destination specified by destination property:

    javax.jms.Queue: Queue destination


    javax.jms.Topic: Topic destination


messageSelector,

String 

None 

Message selector for filtering messages delivered to consumer 

subscriptionName

String 

None 

Name for durable subscriptions 

This property must be set if subscriptionDurability is set to Durable.

subscriptionDurability

String 

NonDurable

Durability of consumer for topic destination:  

    Durable: Durable consumer


    NonDurable: Nondurable consumer


This property is valid only if destinationType is set to javax.jms.Topic, and is optional for nondurable subscriptions and required for durable ones. If set to Durable, the clientID and subscriptionName properties must also be set.

clientId

String 

None 

Client ID for connections to Message Queue service 

This property must be set if subscriptionDurability is set to Durable.

acknowledgeMode,

String 

Auto-acknowledge

Acknowledgment mode:  

    Auto-acknowledge: Auto-acknowledge mode


    Dups-ok-acknowledge: Dups-OK-acknowledge mode


customAcknowledgeMode

String 

None 

Acknowledgment mode for MDB message consumption

Valid values are No_acknowledge or null.

You can use no-acknowledge mode only for a nontransacted, nondurable topic subscription; if you use this setting with a transacted subscription or a durable subscription, subscription activation will fail.  

endpointExceptionRedeliveryAttempts

Integer 

6

Number of times to redeliver a message when MDB throws an exception during message delivery

sendUndeliverableMsgsToDMQ

Boolean 

true

Place message in dead message queue when MDB throws a runtime exception and number of redelivery attempts exceeds the value of endpointExceptionRedeliveryAttempts?

If false, the Message Queue broker will attempt redelivery of the message to any valid consumer, including the same MDB.

options

String 

None 

A list of additional connection factory properties to be used when creating connections to a Message Queue broker. 

When specified, the value of options must be a comma-separated list of connection factory properties and their values, in the form:


propertyName=value

If value contains a comma or an equals sign, precede the symbol with a backslash (\) or enclose the entire value in quotes; for example:


prop1=comma\,val,prop2="equals=val"

The options property cannot be used to specify properties that are configured internally or that have their own setter methods, specifically: imqReconnectEnabled, imqReconnectAttempts, imqReconnectInterval, imqDefaultUsername, imqDefaultPassword, imqAddressList, imqAddressListIterations. Any values specified in options for these properties are ignored.

useSharedSubscriptionInClusteredContainer

Boolean 

true

Controls whether topic subscriptions created using this ActivationSpec will be shared when running in a clustered container, as described in About Shared Topic Subscriptions for Clustered Containers.

Set to true (the default) to share subscriptions. The clientID property must also be set, even if the subscription is nondurable.

Set to false to not share subscriptions. This setting should only be used for nondurable subscriptions. The clientID property does not need to be set.

Chapter 21 Metrics Information Reference

This chapter describes the metrics information that a Message Queue broker can provide for monitoring, tuning, and diagnostic purposes. This information can be made available in a variety of ways:

The tables in this chapter list the kinds of metrics information available and the forms in which it can be provided. For metrics provided through the Command utility’s imqcmd metrics subcommand, the tables list the metric type with which they can be requested; for those provided in metrics messages, the tables list the metrics topic destination to which they are delivered. All the metrics information in this chapter can be accessed progamatically using the JMX Administration API as described in the Message Queue Developer’s Guide for JMX Clients

The chapter consists of the following sections:

JVM Metrics

Table 21–1 shows the metrics information that the broker reports for the broker process JVM (Java Virtual Machine) heap.

Table 21–1 JVM Metrics

Metrics Quantity 

Description 

Log File? 

metrics bkrMetric Type

Metrics Topic 

JVM heap: total memory

Current total memory, in bytes 

Yes 

cxn

mq.metrics.jvm

JVM heap: free memory

Amount of memory currently available for use, in bytes 

Yes 

cxn

mq.metrics.jvm

JVM heap: max memory

Maximum allowable heap size, in bytes 

Yes 

None 

mq.metrics.jvm

Brokerwide Metrics

Table 21–2 shows the brokerwide metrics information that the broker reports.

Table 21–2 Brokerwide Metrics

Metrics Quantity 

Description 

Log File? 

metrics bkrMetric Type

Metrics Topic 

Connections

Num connections 

Total current number of connections for all connection services 

Yes 

cxn

mq.metrics.broker

Num threads 

Total current number of threads for all connection services 

Yes 

cxn

None 

Min threads 

Total minimum number of threads for all connection services 

Yes 

cxn

None 

Max threads 

Total maximum number of threads for all connection services 

Yes 

cxn

None 

Stored Messages

Num messages 

Current number of payload messages stored in memory and persistent store 

No 

None [Use query bkr command instead]

mq.metrics.broker

Total message bytes 

Total size in bytes of payload messages currently stored in memory and persistent store 

No 

None

mq.metrics.broker

Message Flow

Num messages in 

Cumulative number of payload messages received since broker started 

Yes 

ttl

mq.metrics.broker

Num messages out 

Cumulative number of payload messages sent since broker started 

Yes 

ttl

mq.metrics.broker

Rate messages in 

Current rate of flow of payload messages into broker 

Yes 

rts

None 

Rate messages out 

Current rate of flow of payload messages out of broker 

Yes 

rts

None 

Message bytes in 

Cumulative size in bytes of payload messages received since broker started 

Yes 

ttl

mq.metrics.broker

Message bytes out 

Cumulative size in bytes of payload messages sent since broker started 

Yes 

ttl

mq.metrics.broker

Rate message bytes in 

Current rate of flow of payload message bytes into broker 

Yes 

rts

None 

Rate message bytes out 

Current rate of flow of payload message bytes out of broker 

Yes 

rts

None 

Num packets in 

Cumulative number of payload and control packets received since broker started 

Yes 

ttl

mq.metrics.broker

Num packets out 

Cumulative number of payload and control packets sent since broker started 

Yes 

ttl

mq.metrics.broker

Rate packets in 

Current rate of flow of payload and control packets into broker 

Yes 

rts

None 

Rate packets out 

Current rate of flow of payload and control packets out of broker 

Yes 

rts

None 

Packet bytes in 

Cumulative size in bytes of payload and control packets received since broker started 

Yes 

ttl

mq.metrics.broker

Packet bytes out 

Cumulative size in bytes of payload and control packets sent since broker started 

Yes 

ttl

mq.metrics.broker

Rate packet bytes in 

Current rate of flow of payload and control packet bytes into broker 

Yes 

rts

None 

Rate packet bytes out 

Current rate of flow of payload and control packet bytes out of broker 

Yes 

rts

None 

Destinations

Num destinations 

Current number of physical destinations 

No 

None 

mq.metrics.broker

Connection Service Metrics

Table 21–3 shows the metrics information that the broker reports for individual connection services.

Table 21–3 Connection Service Metrics

Metrics Quantity 

Description 

Log File? 

metrics svcMetric Type

Metrics Topic 

Connections

Num connections 

Current number of connections 

No 

cxn [Also available with query svc command]

None 

Num threads 

Current number of threads 

No 

cxn

None 

Min threads 

Minimum number of threads assigned to service 

No 

cxn

None 

Max threads 

Maximum number of threads assigned to service 

No 

cxn

None 

Message Flow

Num messages in 

Cumulative number of payload messages received through connection service since broker started 

No 

ttl

None 

Num messages out 

Cumulative number of payload messages sent through connection service since broker started 

No 

ttl

None 

Rate messages in 

Current rate of flow of payload messages into broker through connection service 

No 

rts

None 

Rate messages out 

Current rate of flow of payload messages out of broker through connection service 

No 

rts

None 

Message bytes in 

Cumulative size in bytes of payload messages received through connection service since broker started 

No 

ttl

None 

Message bytes out 

Cumulative size in bytes of payload messages sent through connection service since broker started 

No 

ttl

None 

Rate message bytes in 

Current rate of flow of payload message bytes into broker through connection service 

No 

rts

None 

Rate message bytes out 

Current rate of flow of payload message bytes out of broker through connection service 

No 

rts

None 

Num packets in 

Cumulative number of payload and control packets received through connection service since broker started 

No 

ttl

None 

Num packets out 

Cumulative number of payload and control packets sent through connection service since broker started 

No 

ttl

None 

Rate packets in 

Current rate of flow of payload and control packets into broker through connection service 

No 

rts

None 

Rate packets out 

Current rate of flow of payload and control packets out of broker through connection service 

No 

rts

None 

Packet bytes in 

Cumulative size in bytes of payload and control packets received through connection service since broker started 

No 

ttl

None 

Packet bytes out 

Cumulative size in bytes of payload and control packets sent through connection service since broker started 

No 

ttl

None 

Rate packet bytes in 

Current rate of flow of payload and control packet bytes into broker through connection service 

No 

rts

None 

Rate packet bytes out 

Current rate of flow of payload and control packet bytes out of broker through connection service 

No 

rts

None 

Physical Destination Metrics

Table 21–4 shows the metrics information that the broker reports for individual destinations.

Table 21–4 Physical Destination Metrics

Metrics Quantity 

Description 

Log File? 

metrics dstMetric Type

Metrics Topic 

Message Consumers

Num consumers 

Current number of associated message consumers 

For queue destinations, this attribute includes both active and backup consumers. For topic destinations, it includes both nondurable and (active and inactive) durable subscribers and is equivalent to “Num active consumers.”  

No 

con

mq.metrics.destination.queue.queueNamemq.metrics.destination.topic.topicName

Peak num consumers 

Peak number of associated message consumers since broker started 

For queue destinations, this attribute includes both active and backup consumers. For topic destinations, it includes both nondurable and (active and inactive) durable subscribers and is equivalent to “Peak num active consumers.”  

No 

con

mq.metrics.destination.queue.queueNamemq.metrics.destination.topic.topicName

Avg num consumers 

Average number of associated message consumers since broker started 

For queue destinations, this attribute includes both active and backup consumers. For topic destinations, it includes both nondurable and (active and inactive) durable subscribers and is equivalent to “Avg num active consumers.”  

No 

con

mq.metrics.destination.queue.queueNamemq.metrics.destination.topic.topicName

Num active consumers 

Current number of associated active message consumers 

For topic destinations, this attribute includes both nondurable and (active and inactive) durable subscribers and is equivalent to “Num consumers.”  

No 

con

mq.metrics.destination.queue.queueNamemq.metrics.destination.topic.topicName

Peak num active consumers 

Peak number of associated active message consumers since broker started 

For topic destinations, this attribute includes both nondurable and (active and inactive) durable subscribers and is equivalent to “Peak num consumers.”  

No 

con

mq.metrics.destination.queue.queueNamemq.metrics.destination.topic.topicName

Avg num active consumers 

Average number of associated active message consumers since broker started 

For topic destinations, this attribute includes both nondurable and (active and inactive) durable subscribers and is equivalent to “Avg num consumers.”  

No 

con

mq.metrics.destination.queue.queueNamemq.metrics.destination.topic.topicName

Num backup consumers [Queue destinations only]

Current number of associated backup message consumers 

No 

con

mq.metrics.destination.queue.queueNamemq.metrics.destination.topic.topicName

Peak num backup consumers

Peak number of associated backup message consumers since broker started 

No 

con

mq.metrics.destination.queue.queueNamemq.metrics.destination.topic.topicName

Avg num backup consumers

Average number of associated backup message consumers since broker started 

No 

con

mq.metrics.destination.queue.queueNamemq.metrics.destination.topic.topicName

Stored Messages

Num messages 

Current number of messages stored in memory and persistent store 

No 

conttlrts [Also available with query dst command]

mq.metrics.destination.queue.queueNamemq.metrics.destination.topic.topicName

Num messages remote 

Current number of messages stored in memory and persistent store that were sent from a remote broker in a cluster. This number does not include messages included in transactions. 

No 

Not Available [Available only with imqcmd query dst command]

Not Available 

Peak num messages 

Peak number of messages stored in memory and persistent store since broker started 

No 

conttlrts

mq.metrics.destination.queue.queueNamemq.metrics.destination.topic.topicName

Avg num messages 

Average number of messages stored in memory and persistent store since broker started 

No 

conttlrts

mq.metrics.destination.queue.queueNamemq.metrics.destination.topic.topicName

Total message bytes 

Current total size in bytes of messages stored in memory and persistent store 

No 

ttlrts

mq.metrics.destination.queue.queueNamemq.metrics.destination.topic.topicName

Total message bytes remote 

Current total size in bytes of messages stored in memory and persistent store that were sent from a remote broker in a cluster. This value does not include messages included in transactions. 

No 

Not Available

Not Available 

Peak total message bytes 

Peak total size in bytes of messages stored in memory and persistent store since broker started 

No 

ttlrts

mq.metrics.destination.queue.queueNamemq.metrics.destination.topic.topicName

Avg total message bytes 

Average total size in bytes of messages stored in memory and persistent store since broker started 

No 

ttlrts

mq.metrics.destination.queue.queueNamemq.metrics.destination.topic.topicName

Message Flow

Num messages in 

Cumulative number of messages received since broker started 

No 

ttl

mq.metrics.destination.queue.queueNamemq.metrics.destination.topic.topicName

Num messages out 

Cumulative number of messages sent since broker started 

No 

ttl

mq.metrics.destination.queue.queueNamemq.metrics.destination.topic.topicName

Msg bytes in 

Cumulative size in bytes of messages received since broker started 

No 

ttl

mq.metrics.destination.queue.queueNamemq.metrics.destination.topic.topicName

Msg bytes out 

Cumulative size in bytes of messages sent since broker started 

No 

ttl

mq.metrics.destination.queue.queueNamemq.metrics.destination.topic.topicName

Peak message bytes 

Size in bytes of largest single message received since broker started 

No 

ttlrts

mq.metrics.destination.queue.queueNamemq.metrics.destination.topic.topicName

Rate num messages in 

Current rate of flow of messages received 

No 

rts

None 

Rate num messages out 

Current rate of flow of messages sent 

No 

rts

None 

Rate msg bytes in 

Current rate of flow of message bytes received 

No 

rts

None 

Rate msg bytes out 

Current rate of flow of message bytes sent 

No 

rts

None 

Disk Utilization

Disk reserved [File-based persistence only]

Amount of disk space, in bytes, reserved for destination 

No 

dsk

mq.metrics.destination.queue.queueNamemq.metrics.destination.topic.topicName

Disk used

Amount of disk space, in bytes, currently in use by destination 

No 

dsk

mq.metrics.destination.queue.queueNamemq.metrics.destination.topic.topicName

Disk utilization ratio

Ratio of disk space in use to disk space reserved for destination 

No 

dsk

mq.metrics.destination.queue.queueNamemq.metrics.destination.topic.topicName

Chapter 22 JES Monitoring Framework Reference

This chapter describes the monitoring information items that Message Queue exposes through the Sun JavaTM Enterprise System Monitoring Framework (JESMF), using the Monitoring Framework’s Common Monitoring Model (CMM). It contains the following sections:

Common Attributes

The attributes listed in Table 22–1 are common to all (or almost all) CMM objects.

Table 22–1 JESMF Common Object Attributes

Attribute 

Description 

Name

Object name 

Caption

Short description 

Description

Full description 

LastUpdateTime

Time last updated 

OperationalStatus

Current status (for example, OK or DORMANT)

StatusDescriptions

Description of status 

OperationalStatusLastChange

Time of last change in operational status 

Message Queue Product Information

Table 22–2 shows attributes of the Message Queue product itself that can be accessed with JESMF.

Table 22–2 JESMF-Accessible Message Queue Product Attributes

Attribute 

Description 

ProductName

Product name 

ProductIdentifyingNumber

Identifying number of product, in the form  

    urn:uuid:xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx


Value changes for every version.  

ProductVendor

Vendor name 

ProductVersion

Version number 

RevisionNumber

Revision number 

BuildNumber

Build number 

PatchID

Patch identifier (if any) 

CollectionID

Identification key for installed product object 

Differentiates among product installations; usually identifies the installation location.  

InstallDate

Installation date 

Broker Information

Table 22–3 shows the JESMF-accessible attributes pertaining to each broker instance.

Table 22–3 JESMF-Accessible Message Queue Broker Attributes

Attribute 

Description 

PrimaryOwnerName

Name of primary system owner (broker property imq.primaryowner.name; see Table 17–11)

PrimaryOwnerContact

Contact information for primary system owner (broker property imq.primaryowner.contact; see Table 17–11)

Roles

Array of strings denoting broker’s roles (taken from broker properties imq.broker.adminDefinedRoles.namen; see Table 17–11)

StartupTime

Time of last startup (date and time in milliseconds) 

URL

URL of Port Mapper

ConfigurationDirectory

Broker instance directory (for example, /var/imq/instances/mybroker)

DirectoryName

Distinguished name of directory (for example, LDAP) entry where static information about application is stored

An empty string indicates that no information about the application is available in the directory.  

Port Mapper Information

The attributes shown in Table 22–4 provide information about a broker’s Port Mapper.

Table 22–4 JESMF-Accessible Message Queue Port Mapper Attributes

Attribute 

Description 

LabeledURI

URI for accessing Port Mapper, in the form

    mq://hostName:portNumber


Secured

Is Port Mapper access secure (SSL/TLS)?

Connection Service Information

Table 22–5 shows the JESMF-accessible attributes pertaining to each connection service.

Table 22–5 JESMF-Accessible Message Queue Connection Service Attributes

Attribute 

Description 

LabeledURI

URI for accessing connection service, in the form

    mq://hostName:portNumber/serviceName


if dynamically allocated, or  

    mqtcp://hostName:servicePort/serviceName


or  

    mqssl://hostName:servicePort/serviceName


if statically assigned 

Secured

Is connection service access secure (SSL/TLS)?

ConnectionsCount

Current number of connections 

NumConnectionsCreated

Cumulative number of connections created since broker started 

FailedConnectionsCount

Cumulative number of connections rejected since broker started 

CurrentNumberOfThreads

Current number of threads actively handling connections 

MinThreadPoolSize

Minimum number of threads maintained in connection service’s thread pool (broker property imq.serviceName.min_threads; see Table 17–1)

MaxThreadPoolSize

Number of threads beyond which no new threads are added to thread pool for use by connection service (broker property imq.serviceName.max_threads; see Table 17–1)

NumProducers

Current number of message producers 

NumConsumers

Current number of message consumers 

NumMsgsIn

Cumulative number of messages received since broker started 

NumMsgsOut

Cumulative number of messages sent since broker started 

InBytesCount

Cumulative size in bytes of messages received since broker started 

OutBytesCount

Cumulative size in bytes of messages sent since broker started 

NumPktsIn

Cumulative number of packets received since broker started 

NumPktsOut

Cumulative number of packets sent since broker started 

PktBytesIn

Cumulative size in bytes of packets received since broker started 

PktBytesOut

Cumulative size in bytes of packets sent since broker started 

Destination Information

Table 22–6 shows the JESMF-accessible attributes pertaining to each destination. Each of these attributes corresponds to a Message Queue physical destination property; see Table 18–1 for further information.

Table 22–6 JESMF-Accessible Message Queue Destination Attributes

Attribute 

Corresponding Property 

Description 

Type

 

Destination type (q = queue, t = topic)

MaxNumMsgs

maxNumMsgs

Maximum number of unconsumed messages 

MaxBytesPerMsg

maxBytesPerMsg

Maximum size, in bytes, of any single message 

MaxTotalMsgBytes

maxTotalMsgBytes

Maximum total memory, in bytes, for unconsumed messages 

LimitBehavior

limitBehavior

Broker behavior when memory-limit threshold reached 

MaxNumProducers [Does not apply to dead message queue]

maxNumProducers

Maximum number of associated message producers 

MaxNumActiveConsumers [Queue destinations only]

maxNumActiveConsumers

Maximum number of associated active message consumers in load-balanced delivery 

MaxNumBackupConsumers

maxNumBackupConsumers

Maximum number of associated backup message consumers in load-balanced delivery 

ConsumerFlowLimit

consumerFlowLimit

Maximum number of messages delivered to consumer in a single batch 

LocalOnly

isLocalOnly

Local delivery only?  

LocalDeliveryPreferred ,

localDeliveryPreferred

Local delivery preferred?  

UseDMQ

useDMQ

Send dead messages to dead message queue?

Persistent Store Information

The attributes shown in Table 22–7 pertain to the persistent data store.

Table 22–7 JESMF-Accessible Message Queue Persistent Store Attributes

Attribute 

Description 

AccessInfo

URL for accessing JDBC database

InfoFormat

Format of AccessInfo attribute (URL)

JDBCDriver

JDBC driver

UserName

User name for authentication 

User Repository Information

The attributes shown in Table 22–8 pertain to the LDAP user repository.

Table 22–8 JESMF-Accessible Message Queue User Repository Attributes

Attribute 

Description 

AccessInfo

URL for accessing LDAP server

InfoFormat

Format of AccessInfo attribute (URL)

Base

Root or base node for user lookup 

GroupBase

Root or base node for group lookup 

UserName

User name for authentication