This chapter provides reference information about configuration properties for a message broker. It consists of the following sections:
Table 16–1 lists the broker properties related to connection services.
Table 16–1 Broker Connection Properties
Property |
Type |
Default Value |
Description |
---|---|---|---|
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 16–11). |
|
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. |
String |
All available IP addresses |
Default host name or IP address for all connection services |
|
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. |
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. |
|
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. |
|||
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. |
|
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. |
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. |
Table 16–2 lists the broker properties related to routing and delivery services. Properties that configure the automatic creation of destinations are listed in Table 16–3.
Table 16–2 Broker Routing and Delivery PropertiesTable 16–3 Broker Properties for Auto-Created Destinations
Message Queue supports both file-based and JDBC-based persistence modules. The broker property imq.persist.store (Table 16–4) specifies which module to use. The following sections describe the broker configuration properties for the two modules.
Table 16–4 Global Broker Persistence Property
Table 16–5 lists the broker properties related to file-based persistence.
Table 16–5 Broker Properties for File-Based Persistence
Table 16–6 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 16–6 Broker Properties for JDBC-Based Persistence
Table 16–7 lists broker properties related to security services: authentication, authorization, and encryption. Table 16–8 lists broker properties related specifically to LDAP-based authentication, and Table 16–9 lists broker properties related specifically to JAAS-based authentication.
Table 16–7 Broker Security Properties
Property |
Type |
Default Value |
Description |
---|---|---|---|
String |
file |
Type of user authentication: file: File-based ldap: Lightweight Directory Access Protocol jaas: Java Authentication and Authorization Service |
|
String |
digest |
digest: MD5 (for file-based authentication) basic: Base-64 (for LDAP or JAAS authentication) |
|
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. |
|
Integer |
180 |
Interval, in seconds, to wait for client response to authentication requests |
|
Boolean |
true |
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. |
|
String |
file |
Specifies the access control type |
|
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. |
|
String |
accesscontrol.properties |
Name of access control file The file name specifies a path relative to the access control directory (see Appendix A, Platform-Specific Locations of Message Queue Data). |
|
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, Platform-Specific Locations of Message Queue Data). |
|
String |
Not set |
The location, as a URL, of the access control file. |
|
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. |
|
String |
See Appendix A, Platform-Specific Locations of Message Queue Data |
Path to directory containing key store file |
|
String |
keystore |
Name of key store file |
|
String |
None |
Password for key store file |
|
Boolean |
false |
Obtain passwords from password file? |
|
String |
See Appendix A, Platform-Specific Locations of Message Queue Data |
Path to directory containing password file |
|
String |
passfile | ||
String |
None |
Password for administrative user The Command utility (imqcmd) uses this password to authenticate the user before executing a command. |
Table 16–8 lists broker properties related to LDAP-based user authentication.
Table 16–8 Broker Security Properties for LDAP Authentication
Table 16–9 lists broker properties related to JAAS-based user authentication.
Table 16–9 Broker Security Properties for JAAS Authentication
Property |
Type |
Default Value |
Description |
---|---|---|---|
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. |
|
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. |
|
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. |
Table 16–10 lists the broker properties related to monitoring services.
Table 16–10 Broker Monitoring Properties
Property |
Type |
Default Value |
Description |
|
---|---|---|---|---|
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). |
||
Boolean |
false |
Log information about dead messages? If true, the following events will be logged:
|
||
String |
ERR |
Destination for console output: OUT: stdout ERR: stderr |
||
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 (|). |
||
String |
See Appendix A, Platform-Specific Locations of Message Queue Data |
Path to directory containing log file |
||
String |
log.txt |
Name of log file |
||
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 (|). |
||
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). |
||
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). |
||
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 (|). |
||
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 |
||
String |
imqbrokerd_${imq.instanceName} |
Identity string to be prefixed to all messages logged to syslog |
||
Boolean |
true |
Log broker process ID with message? |
||
Boolean |
false |
Write messages to system console if they cannot be sent to syslog? |
||
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 |
||
Boolean |
true |
Enable writing of metrics information to Logger? Does not affect the production of metrics messages (controlled by imq.metrics.topic.enabled). |
||
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). |
||
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. |
||
Integer |
60 |
Time interval, in seconds, at which to produce metrics messages to metric topic destinations |
||
Boolean |
false |
Are metrics messages sent to metric topic destinations persistent? |
||
Integer |
300 |
Lifetime, in seconds, of metrics messages sent to metric topic destinations |
||
String |
System property user.name (user who started the broker) |
Name of primary system owner |
||
String |
System property user.name (user who started the broker) |
Contact information for primary system owner |
||
Integer |
None |
Number of defined roles |
||
String |
Broker instance name |
Name of defined role N (where N ranges from 0 to .count-1) Example:
|
Table 16–11 lists the configuration properties related to broker clusters.
Table 16–11 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) |
Boolean |
false |
Is broker part of a high-availability cluster? |
|
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 16–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. |
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. |
|
String |
tcp |
Network transport protocol for cluster connection service For secure, encrypted message delivery between brokers, set this property to ssl. |
|
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. |
|
String |
None |
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 16–1). |
|
String |
None |
Host name or IP address for heartbeat service If specified, overrides imq.hostname (see Table 16–1) for the heartbeat service. |
|
Integer |
7676 |
Port number for heartbeat service A value of 0 specifies that the port number should be allocated dynamically by the Port Mapper. |
|
Integer |
2 |
Interval between heartbeats, in seconds |
|
Integer |
3 |
Number of missed heartbeat intervals after which to invoke monitor service |
|
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. |
|
Integer |
2 |
Number of missed monitor intervals after which to initiate broker takeover |
The broker properties listed in Table 16–12 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 15–1.
See Appendix D, JMX Support for further information on administrative support of JMX clients.
Table 16–12 Broker Properties for JMX Support
Property |
Type |
Default Value |
Description |
---|---|---|---|
String |
jmxrmi |
Names of JMX connectors to be activated at broker startup, separated by commas |
|
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 |
|
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. |
|
Boolean |
false |
Use Secure Socket Layer (SSL) for connector connectorName? This property is set to true for the ssljmxrmi connector. |
|
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. |
|
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. |
|
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. |
|
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 is an alphabetical list of broker configuration properties, with cross-references to the relevant tables in this chapter.
Table 16–13 Alphabetical List of Broker Properties
Property |
Table |
---|---|
imq.accesscontrol.enabled | |
imq.accesscontrol.type | |
imq.accesscontrol.file.filename | |
imq.authentication.basic.user_repository | |
imq.authentication.client.response.timeout | |
imq.authentication.type | |
imq.autocreate.destination.isLocalOnly | |
imq.autocreate.destination.limitBehavior | |
imq.autocreate.destination.maxBytesPerMsg | |
imq.autocreate.destination.maxNumMsgs | |
imq.autocreate.destination.maxNumProducers | |
imq.autocreate.destination.maxTotalMsgBytes | |
imq.autocreate.destination.useDMQ | |
imq.autocreate.queue | |
imq.autocreate.queue.consumerFlowLimit | |
imq.autocreate.queue.localDeliveryPreferred | |
imq.autocreate.queue.maxNumActiveConsumers | |
imq.autocreate.queue.maxNumBackupConsumers | |
imq.autocreate.reaptime | |
imq.autocreate.topic | |
imq.autocreate.topic.consumerFlowLimit | |
imq.brokerid | |
imq.cluster.brokerlist | |
imq.cluster.clusterid | |
imq.cluster.ha | |
imq.cluster.heartbeat.hostname | |
imq.cluster.heartbeat.interval | |
imq.cluster.heartbeat.port | |
imq.cluster.heartbeat.threshold | |
imq.cluster.hostname | |
imq.cluster.masterbroker | |
imq.cluster.monitor.interval | |
imq.cluster.monitor.threshold | |
imq.cluster.port | |
imq.cluster.transport | |
imq.cluster.url | |
imq.destination.DMQ.truncateBody | |
imq.destination.logDeadMsgs | |
imq.hostname | |
imq.imqcmd.password | |
imq.jmx.connector.activelist | |
imq.jmx.connector.RMIconnectorName.brokerHostTrusted | |
imq.jmx.connector.RMIconnectorName.port | |
imq.jmx.connector.RMIconnectorName.urlpath | |
imq.jmx.connector.RMIconnectorName.useSSL | |
imq.jmx.rmiregistry.port | |
imq.jmx.rmiregistry.start | |
imq.jmx.rmiregistry.use | |
imq.keystore.file.dirpath | |
imq.keystore.file.name | |
imq.keystore.password | |
imq.keystore.propertyName | |
imq.log.console.output | |
imq.log.console.stream | |
imq.log.file.dirpath | |
imq.log.file.filename | |
imq.log.file.output | |
imq.log.file.rolloverbytes | |
imq.log.file.rolloversecs | |
imq.log.level | |
imq.log.syslog.facility | |
imq.log.syslog.identity | |
imq.log.syslog.logconsole | |
imq.log.syslog.logpid | |
imq.log.syslog.output | |
imq.log.timezone | |
imq.message.expiration.interval | |
imq.message.max_size | |
imq.metrics.enabled | |
imq.metrics.interval | |
imq.metrics.topic.enabled | |
imq.metrics.topic.interval | |
imq.metrics.topic.persist | |
imq.metrics.topic.timetolive | |
imq.passfile.dirpath | |
imq.passfile.enabled | |
imq.passfile.name | |
imq.persist.file.destination.message.filepool.limit | |
imq.persist.file.message.cleanup | |
imq.persist.file.message.filepool.cleanratio | |
imq.persist.file.message.max_record_size | |
imq.persist.file.sync.enabled | |
imq.persist.file.transaction.memorymappedfile.enabled | |
imq.persist.jdbc.dbVendor | |
imq.persist.jdbc.vendorName.closedburl | |
imq.persist.jdbc.vendorName.createdburl | |
imq.persist.jdbc.vendorName.driver | |
imq.persist.jdbc.vendorName.needpassword | |
imq.persist.jdbc.vendorName.opendburl | |
imq.persist.jdbc.vendorName.password | |
imq.persist.jdbc.vendorName.property.propName | |
imq.persist.jdbc.vendorName.user | |
imq.persist.store | |
imq.ping.interval | |
imq.portmapper.backlog | |
imq.portmapper.hostname | |
imq.portmapper.port | |
imq.resourceState.count | |
imq.resourceState.threshold | |
imq.service.activelist | |
imq.serviceName.accesscontrol.enabled | |
imq.serviceName.accesscontrol.file.filename | |
imq.serviceName.authentication.type | |
imq.serviceName.max_threads | |
imq.serviceName.min_threads | |
imq.serviceName.protocolType.hostname | |
imq.serviceName.protocolType.port | |
imq.serviceName.threadpool_model | |
imq.shared.connectionMonitor_limit | |
imq.system.max_count | |
imq.system.max_size | |
imq.transaction.autorollback | |
imq.user_repository.ldap.base | |
imq.user_repository.ldap.gidattr | |
imq.user_repository.ldap.grpbase | |
imq.user_repository.ldap.grpfilter | |
imq.user_repository.ldap.grpsearch | |
imq.user_repository.ldap.memattr | |
imq.user_repository.ldap.password | |
imq.user_repository.ldap.principal | |
imq.user_repository.ldap.propertyName | |
imq.user_repository.ldap.server | |
imq.user_repository.ldap.ssl.enabled | |
imq.user_repository.ldap.timeout | |
imq.user_repository.ldap.uidattr | |
imq.user_repository.ldap.usrfilter | |
imq.user_repository.jaas.name | |
imq.user_repository.jaas.userPrincipalClass | |
imq.user_repository.jaas.groupPrincipalClass |