This chapter provides reference information about configuration properties for a message broker. It consists of the following sections:
Table 14–1 lists the broker properties related to connection services.
Table 14–1 Broker Connection Properties
Property |
Type |
Default Value |
Description |
---|---|---|---|
String |
None |
Broker 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 brokers may have the same 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. This property is usually unnecessary for an embedded database, which stores data for only one broker instance. Note – For high-availability brokers (imq.cluster.ha = true), database table names use the imq.cluster.clusterid property (see Table 14–10) instead. |
|
imq.service.activelist [Must have the same value for all brokers in an HA cluster. ] |
String |
jms,admin |
List of connection services to be activated at broker startup, separated by commas See Table 4–1 under 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 14–2 lists the broker properties related to routing services. Properties that configure the automatic creation of destinations are listed in Table 14–3.
Table 14–2 Broker Routing PropertiesTable 14–3 Broker Properties for Auto-Created Destinations
Message Queue supports both file-based and JDBC-based models for persistent data storage. The broker property imq.persist.store (Table 14–4) specifies which model to use. The following sections describe the broker configuration properties for the two models.
Table 14–4 Global Broker Persistence Property
Table 14–5 lists the broker properties related to file-based persistence.
Table 14–5 Broker Properties for File-Based Persistence
Table 14–6 lists the broker properties related to JDBC-based persistence. The imq.persist.jdbc.dbVendor property identifies the database vendor being used for the cluster’s persistent data store; all of the remaining properties are qualified by this vendor name.
Table 14–6 Broker Properties for JDBC-Based Persistence
Table 14–7 lists general broker properties related to security services.
Table 14–7 General 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. |
|
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 |
See Appendix A, Platform-Specific Locations of Message Queue Data |
Path to directory containing key store file |
|
String |
keystore |
Name of key store file |
|
imq.keystore.password [Should be used only in password files] |
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 14–8 lists broker properties related to LDAP-based user authentication.
Table 14–8 Broker Security Properties for LDAP Authentication
Table 14–9 lists the broker properties related to monitoring services.
Table 14–9 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 (zero-based) Example: Stocks JMS Server |
Table 14–10 lists the configuration properties related to broker clusters.
Table 14–10 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 an HA 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 HA 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 14–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 – HA clusters cannot have a master broker. If this property is set for a broker belonging to an HA cluster, the broker will log a fatal error and fail to start. |
|
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 an HA cluster, this property is used in database table names in place of imq.brokerid (see Table 14–1). |
|
String |
None |
Host name or IP address for heartbeat service If specified, overrides imq.hostname (see Table 14–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 14–11 support the use of the Java Management Extensions (JMX) application programming interface by Message Queue client programs to configure and monitor Message Queue resources. None of these properties can be set from the command line with the Command utility (imqcmd). Instead, they can either be set at broker startup with the -D option of the Broker utility (imqbrokerd) or edited by hand in the broker's instance configuration file (config.properties). In addition, some of these properties (imq.jmx.rmiregistry.start, imq.jmx.rmiregistry.use, imq.jmx.rmiregistry.port) can be set with corresponding Broker utility options described in Table 13–1.
See Appendix D, JMX Support for further information on administrative support of JMX clients.
Table 14–11 Broker Properties for JMX Support
Alphabetical List of Broker Properties is an alphabetical list of broker configuration properties, with cross-references to the relevant tables in this chapter.
Table 14–12 Alphabetical List of Broker Properties
Property |
Table |
---|---|
imq.accesscontrol.enabled | |
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.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.connectorName.brokerHostTrusted | |
imq.jmx.connector.connectorName.urlpath | |
imq.jmx.connector.connectorName.useSSL | |
imq.jmx.connector.list | |
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 |