type=page status=published title=Broker Properties Reference next=physical-destination-properties.html prev=command-line-reference.html ~~ Broker Properties Reference
The script content on this page is for navigation purposes only and does not alter the content in any way.
17 Broker Properties Reference
This chapter provides reference information about configuration properties for a message broker. It consists of the following sections: * link:#aeont[Connection Properties] * link:#aeonu[Routing and Delivery Properties] * link:#aeonv[Persistence Properties] * link:#aeony[Security Properties] * link:#aeonz[Monitoring Properties] * link:#aeooa[Cluster Configuration Properties] * link:#gjdkt[Bridge Properties] * link:#geofd[JMX Properties] * link:#aeoob[Alphabetical List of Broker Properties] [[aeont]][[GMADG00288]][[connection-properties]] Connection Properties ~~~~~~~~~~~~~~~~~~~~~ link:#gbnni[Table 17-1] lists the broker properties related to connection services. [[GMADG763]][[sthref125]][[gbnni]] Table 17-1 Broker Connection Properties [width="163%",cols="25%,42%,7%,26%",options="header",] |======================================================================= |Property |Type |Default Value |Description |`imq.brokerid` |String |None a| 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 - 18 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 link:#gbnmu[Table 17-14]). |`imq.service.activelist`link:#foot-haclustersame[^Foot 1 ^] |String |`jms,admin` a| List of connection services to be activated at broker startup, separated by commas See link:connection-services.html#gbnjw[Table 6-1] under link:connection-services.html#aeocn[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 a| 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`link:#foot-usewithupdatebkr1[^Foot 2 ^] |Integer |`7676` a| 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`link:#foot-nohttpservices[^Foot 3 ^] |String |None a| 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`link:#sthref126[^Footref 3^] |Integer |`0` a| 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`link:#foot-jmsadminonly[^Foot 4 ^] |String |`dedicated` a| 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`: `10``ssljms`: `10``httpjms`: `10` `httpsjms`: `10` `admin`: `4``ssladmin`: `4` a| 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`: `1000``ssljms`: `500``httpjms`: `500``httpsjms` : `500``admin`: `10``ssladmin`: `10` a| 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`link:#foot-sharedmodelonly[^Foot 5 ^] |Integer |Solaris: `512`Linux: `512`Windows: `64` a| 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` a| Interval, in seconds, at which to test connection between client and broker A value of `0` or `-1` disables periodic testing of the connection. |======================================================================= ^Footnote 1 ^Must have the same value for all brokers in an enhanced cluster. ^Footnote 2 ^Can be used with `imqcmd` `update` `bkr` command ^Footnote 3 ^`jms`, `ssljms`, `admin`, and `ssladmin` services only; see link:http_https-support.html#aeopb[HTTP/HTTPS Support] for information on configuring the `httpjms` and `httpsjms` services ^Footnote 4 ^`jms` and `admin` services only ^Footnote 5 ^Shared threading model only [[aeonu]][[GMADG00289]][[routing-and-delivery-properties]] Routing and Delivery Properties ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ This section includes the following tables: * link:#gbnod[Table 17-2] lists the broker properties related to routing and delivery services * link:#gbnof[Table 17-3] lists the broker properties that configure the automatic creation of destinations * link:#gkudw[Table 17-4] lists the broker properties that configure the administrative creation of destinations [[GMADG764]][[sthref127]][[gbnod]] Table 17-2 Broker Routing and Delivery Properties [width="172%",cols="22%,46%,5%,27%",options="header",] |======================================================================= |Property |Type |Default Value |Description |`imq.system.max_count`link:#foot-usewithupdatebkr2[^Foot 1 ^] |Integer |`-1` a| Maximum number of messages held by broker A value of `-1` denotes an unlimited message count. |`imq.system.max_size`link:#sthref128[^Footref 1^] |String |`-1` a| 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. | + | + | + a| 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`link:#sthref129[^Footref 1^] |String |`70m` a| 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 removed. |`imq.`resourceState`.threshold` |Integer |`green`: `0``yellow`: `80``orange`: `90``red`: `98` |Percent utilization at which memory resource state is triggered (where resourceState is `green`, `yellow`, `orange`, or `red`) |`imq.`resourceState`.count` |Integer |`green`: `5000``yellow`: `500``orange`: `50``red`: `0` a| 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`link:#sthref130[^Footref 1^] |Boolean |`false` a| 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` a| 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. |`imq.transaction.message.maxConsecutiveRollbacks` |`Integer` |`0` a| Specifies the number of consecutive number of rollbacks that may occur before a broker automatically puts a message to DMQ, If there is more than one message in the transaction, only the last message in the transaction is placed in DMQ. The transaction is then rolled back and returns the error status. If the value of this property is <= 0, this feature is disabled. |`imq.txn.reapInterval` |`Integer` |`900` |The interval, in seconds, the reaper thread periodically runs to reap/cleanup committed transactions. |`imq.txt.reapLimit` |`Integer` a| `500` or `0` for an embedded broker |The maximum number of last committed transactions to retain when reaping/cleaning up committed transactions. |======================================================================= ^Footnote 1 ^Can be used with `imqcmd` `update` `bkr` command This table lists properties that configure the automatic creation of destinations. [[GMADG765]][[sthref131]][[gbnof]] Table 17-3 Broker Properties for Auto-Created Destinations [width="172%",cols="27%,46%,6%,21%",options="header",] |======================================================================= |Property |Type |Default Value |Description |`imq.autocreate.queue`link:#foot-usewithupdatebkr3[^Foot 1 ^]^,^link:#foot-queueonly1[^Foot 2 ^] |Boolean |`true` |Allow auto-creation of queue destinations? |`imq.autocreate.topic`link:#foot-topiconly[^Foot 3 ^] |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` a| 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` a| 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. | + | + | + a| 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` a| 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` a| 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` a| 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`link:#sthref132[^Footref 2^] |Integer |`-1` a| 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`link:#sthref133[^Footref 2^] |Integer |`0` a| 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`link:#sthref134[^Footref 2^] |Integer |`1000` a| 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 `0` or `-1` denotes an unlimited number of messages. |`imq.autocreate.topic.consumerFlowLimit`link:#sthref135[^Footref 3^] |Integer |`1000` a| Maximum number of messages delivered to topic consumer in a single batch A value of `0` or `-1` denotes an unlimited number of messages. Not used when the JMS resource adapter, jmsra, is used to consume messages in a GlassFish Server cluster. |`imq.autocreate.topic.sharedConsumerFlowLimit`link:#sthref136[^Footref 3^] |Integer |`5` a| Maximum number of messages prefeteched to a topic shared subscriber or a topic consumer in a GlassFish server cluster. A value of `0` or `-1` denotes an unlimited number of messages. |`imq.autocreate.destination.isLocalOnly` |Boolean |`false` a| 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`link:#sthref137[^Footref 2^] |Boolean |`false` a| 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` a| Send dead messages to dead message queue? If `false`, dead messages will simply be discarded. |`validateXMLSchemaEnabled` |Boolean |`false` a| 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 a| 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` a| Reload XML schema on failure enabled? If set to false or not set, then the schema is not reloaded if validation fails. |======================================================================= ^Footnote 1 ^Can be used with `imqcmd` `update` `bkr` command ^Footnote 2 ^Queue destinations only ^Footnote 3 ^Topic destinations only This table lists properties that apply to all administratively created destinations. They cannot be configured on individual administratively created destinations. [[GMADG766]][[sthref138]][[gkudw]] Table 17-4 Broker Properties for Admin-Created Destinations [width="163%",cols="28%,42%,7%,23%",options="header",] |======================================================================= |Property |Type |Default Value |Description |`imq.admincreate.topic.sharedConsumerFlowLimit` |Integer |`5` a| Maximum number of messages prefetched to a topic shared subscriber or to a topic consumer in a GlassFish Server cluster. A value of `0` or `-1` denotes an unlimited number of messages. |======================================================================= [[aeonv]][[GMADG00290]][[persistence-properties]] Persistence Properties ~~~~~~~~~~~~~~~~~~~~~~ Message Queue supports both file-based and JDBC-based persistence modules. The broker property `imq.persist.store` (link:#gbnmp[Table 17-5]) specifies which module to use. The following sections describe the broker configuration properties for the two modules. [[GMADG767]][[sthref139]][[gbnmp]] Table 17-5 Global Broker Persistence Property [width="100%",cols="35%,10%,15%,40%",options="header",] |======================================================================= |Property |Type |Default Value |Description |`imq.persist.store` |String |`file` a| 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`). |======================================================================= [[aeonw]][[GMADG00619]][[file-based-persistence-properties]] File-Based Persistence Properties ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ link:#gbnnh[Table 17-6] lists the broker properties related to file-based persistence. [[GMADG768]][[sthref140]][[gbnnh]] Table 17-6 Broker Properties for File-Based Persistence [width="225%",cols="25%,30%,30%,15%",options="header",] |======================================================================= |Property |Type |Default Value |Description |`imq.persist.file.message.max_record_size` |String |`1m` a| Maximum-size message to add to message storage file Any message exceeding this size will be stored in a separate file of its own. | + | + | + a| 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| 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` a| 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` a| 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` a| 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` a| 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 Oracle Solaris Cluster and its Data Service for Message Queue, set this property to `true` for brokers on all cluster nodes. |`imq.persist.file.transaction.memorymappedfile.enabled` |Boolean |`true` a| 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. |======================================================================= [[gjmud]][[GMADG00620]][[file-based-persistence-properties-for-transaction-logging]] File-Based Persistence Properties for Transaction Logging ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ link:#gjmtg[Table 17-7] lists the file-based persistence properties for the transaction logging mechanism. [[GMADG769]][[sthref141]][[gjmtg]] Table 17-7 Broker Properties for File-Based Persistence Using the Transaction Logging Mechanism [width="234%",cols="23%,34%,29%,14%",options="header",] |======================================================================= |Property |Type |Default Value |Description |`imq.persist.file.newTxnLog.enabled` |Boolean |`false` |Enables the transaction logging mechanism. For information about this mechanism, see link:persistence-services.html#gjmqy[Optimizing File-Based Transaction Persistence]. |`imq.persist.file.txnLog.groupCommit` |Boolean |`false` a| 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` a| 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` a| 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. |======================================================================= [[aeonx]][[GMADG00621]][[jdbc-based-persistence-properties]] JDBC-Based Persistence Properties ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ link:#gbnoa[Table 17-8] 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. [[GMADG770]][[sthref142]][[gbnoa]] Table 17-8 Broker Properties for JDBC-Based Persistence [width="235%",cols="21%,34%,29%,16%",options="header",] |======================================================================= |Property |Type |Default Value |Description |`imq.persist.jdbc.dbVendor` |String |None a| Name of database vendor for persistent data store: * `derby`: Java DB (Oracle Corporation) * `oracle`: Oracle (Oracle Corporation) * `mysql`: MySQL (Oracle Corporation) * `postgresql`: postgreSQL |`imq.persist.jdbc.connection.retry.delay` |Integer |5000 |The amount of time, in milliseconds, the broker waits before it attempts to retry connecting to a database server for a failed connection. |`imq.persist.jdbc.connection.retry.max` |Integer |60 |The maximum number of times the broker will retry connecting to a database server after a failed connection. |`imq.persist.jdbc.connection.reaptime` |Integer |300 |The interval in seconds between attempts to close unnecessary database connections. |`imq.persist.jdbc.max_connections` |Integer |5 |The maximum number of connections that should be opened to the database. The Message Queue database connection pool manager uses this value as a guide when creating new connections to the database. |`imq.persist.jdbc.min_connections` |Integer |5 |The number of connections that are opened to the database when the Message Queue database connection pool is initialized, and the minimum number of connections that are to be kept open when unnecessary connections are closed. |`imq.persist.jdbc.connection.timeoutIdle` |Boolean |`true` a| Should the Message Queue database connection pool manager considers the age of a connection in the pool? When `true`, the pool manager operates as follows: * When closing unnecessary database connections at each `imq.persist.jdbc.connection.reaptime` interval, the pool manager destroys any connections in the pool that have been idle for a period longer than `imq.persist.jdbc.connection.reaptime` seconds, and attempts to replace them with new connections. * When getting a connection from the pool, the pool manager destroys the connection if it has been idle for a period longer than `imq.persist.jdbc.connection.reaptime` seconds and replaces it with a new connection. |`imq.persist.jdbc.connection.validateOnGet` |Boolean |`true` for brokers in enhanced clusters; otherwise, `false` a| Should the Message Queue database connection pool manager perform extra validation when it gets a connection from the pool? Normally, the pool manager validates a connection it gets from the pool by checking whether the connection is closed and, if possible, by checking whether a connection error has occurred on the connection. When this property is set to `true`, the pool manager performs these additional validation checks: * For JDBC 4 connections, check whether the connection is valid. * Make the validation query specified by `imq.persist.jdbc.connection.validationQuery` on the connection. Regardless of the value of this property, Message Queue relies on the underlying JDBC driver to return a good connection when it needs to create a new connection through the driver. Therefore, you should set `imq.persist.jdbc.`vendorName`.driver` to a vendor JDBC driver that performs connection retries when creating a new connection to the database server; for example, a ConnectionPoolDataSource. |`imq.persist.jdbc.connection.validationQuery` |String |per vendor |The validation query for the Message Queue database connection pool manager to use when `imq.persist.jdbc.connection.validateOnGet` is set to `true`. |`imq.persist.jdbc.connection.limit` |Integer |`5` a| The maximum number of connections that can be opened to the database. This property is deprecated and may become unsupported in a future release of Message Queue. |`imq.persist.jdbc.``vendorName``.connection.retry.regex.``n` |String |(?s).* |There can be 0 or many of these properties specified, where `n` represents the n^th^ such property. Each of these properties specifies a regular expression that can be used to match a `SQLException` message in order to identify retriable database communication failures. These regular expressions are parsed in consecutive order starting with 1 and stops when a match is found. |`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 a| URL for connecting to existing database from vendor `vendorName` Applicable when driver is used to connect to database. |`imq.persist.jdbc.``vendorName``.createdburl`link:#foot-optional1[^Foot 1 ^] |String |None a| URL for creating new database from vendor `vendorName` Applies for embedded database, such as Java DB. |`imq.persist.jdbc.``vendorName``.closedburl`link:#sthref143[^Footref 1^] |String |None a| URL for closing connection to database from vendor `vendorName` Applies for some embedded databases, such as Java DB. |`imq.persist.jdbc.``vendorName``.user`link:#sthref144[^Footref 1^] |String |None a| 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`link:#sthref145[^Footref 1^] |Boolean |`false` a| 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`link:#sthref146[^Footref 1^]^,^link:#foot-passfileonly1[^Foot 2 ^] |String |None |Password, if required, for connecting to database from vendor `vendorName` |`imq.persist.jdbc.``vendorName``.property.`propNamelink:#sthref147[^Footref 1^] |String |None |Vendor-specific property `propName` for database from vendor `vendorName` |`imq.persist.jdbc.``vendorName``.tableoption`link:#sthref148[^Footref 1^] |String |None |Vendor-specific options passed to the database when creating the table schema. |======================================================================= ^Footnote 1 ^Optional ^Footnote 2 ^Should be used only in password files [[aeony]][[GMADG00291]][[security-properties]] Security Properties ~~~~~~~~~~~~~~~~~~~ link:#gbnok[Table 17-9] lists broker properties related to security services: authentication, authorization, and encryption. link:#gkvxf[Table 17-10] lists broker properties related specifically to file-based authentication, link:#gewfp[Table 17-11] lists broker properties related specifically to LDAP-based authentication, and link:#ggxis[Table 17-12] lists broker properties related specifically to JAAS-based authentication. [[GMADG771]][[sthref149]][[gbnok]] Table 17-9 Broker Security Properties [width="172%",cols="26%,46%,13%,15%",options="header",] |======================================================================= |Property |Type |Default Value |Description |`imq.authentication.basic.user_repository` |String |`file` a| Type of user authentication: * `file`: File-based * `ldap`: Lightweight Directory Access Protocol * `jaas`: Java Authentication and Authorization Service |`imq.authentication.type` |String |`digest` a| Password encoding method: * `digest`: MD5 (for file-based authentication) * `basic`: Base-64 (for LDAP or JAAS authentication) |`imq.`serviceName`.authentication.type` |String |None a| 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` a| 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 a| 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.dirpath` |String |`IMQ_VARHOME/instances/` + instanceName`/etc` |Path to the access control directory |`imq.accesscontrol.file.filename` |String |`accesscontrol.properties` a| Name of access control file The file name specifies a path relative to `imq.accesscontrol.file.dirpath`. |`imq.`serviceName`.accesscontrol.file.filename` |String |None a| 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 `imq.accesscontrol.file.dirpath`. |`imq.accesscontrol.file.url` |String |Not set a| The location, as a URL, of the access control file. If the URL uses LDAP protocol (`ldap://`), the access control file must be returned as a single string that uses dollar sign (`$`) as the separator between the lines of the access control file. |`imq.`serviceName`.accesscontrol.file.url` |String |None a| The location, as a URL, of the access control file for the connection service. If specified, overrides `imq.accesscontrol.file.url` for the designated connection service. If the URL uses LDAP protocol (`ldap://`), the access control file must be returned as a single string that uses dollar sign (`$`) as the separator between the lines of the access control file. |`imq.keystore.file.dirpath` |String |`IMW_HOME/etc` |Path to directory containing key store file |`imq.keystore.file.name` |String |`keystore` |Name of key store file |`imq.keystore.password`link:#foot-passfileonly2[^Foot 1 ^] |String |None |Password for key store file |`imq.passfile.enabled` |Boolean |`false` |Obtain passwords from password file? |`imq.passfile.dirpath` |String |`IMQ_HOME/etc` |Path to directory containing password file |`imq.passfile.name` |String |`passfile` |Name of password file |`imq.imqcmd.password`link:#sthref150[^Footref 1^] |String |None a| 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? |======================================================================= ^Footnote 1 ^To be used only in password files link:#gkvxf[Table 17-10] lists broker properties related to user authentication when using a flat-file user repository. [[GMADG772]][[sthref151]][[gkvxf]] Table 17-10 Broker Security Properties for Flat-File Authentication [width="163%",cols="27%,42%,14%,17%",options="header",] |======================================================================= |Property |Type |Default Value |Description |`imq.user_repository.file.dirpath` |String |`IMQ_VARHOME/instances/` + instanceName`/etc/` |Path to the directory containing the flat-file user repository |`imq.user_repository.file.filename` |String |`passwd` |Name of the flat-file user repository file in the directory specified by `imq.user_repository.file.dirpath` |======================================================================= link:#gewfp[Table 17-11] lists broker properties related to LDAP-based user authentication. [[GMADG773]][[sthref152]][[gewfp]] Table 17-11 Broker Security Properties for LDAP Authentication [width="172%",cols="26%,46%,13%,15%",options="header",] |======================================================================= |Property |Type |Default Value |Description |`imq.user_repository.ldap.server` |String |None a| 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. | + | + | + a| 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 a| Distinguished name for binding to LDAP user repository Not needed if the LDAP server allows anonymous searches. |`imq.user_repository.ldap.password`link:#foot-passfileonly3[^Foot 1 ^] |String |None a| 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 a| 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`link:#foot-optional2[^Foot 2 ^] |String |None |JNDI filter for LDAP user searches |`imq.user_repository.ldap.grpsearch` |Boolean |`false` a| 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`link:#sthref153[^Footref 2^] |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? |`imq.user_repository.ldap.ssl.socketfactory` |String |`com.sun.messaging.jmq.` + `jmsserver.auth.ldap.` + `TrustSSLSocketFactory` a| The fully qualified class name of the socket factory to use to make SSL connections to the LDAP server. When this property is not set and `imq.user_repository.ldap.ssl.enabled` is set to `true`, the default socket factory designated by the LDAP naming service is used. |======================================================================= ^Footnote 1 ^Should be used only in password files ^Footnote 2 ^Optional link:#ggxis[Table 17-12] lists broker properties related to JAAS-based user authentication. [[GMADG774]][[sthref154]][[ggxis]] Table 17-12 Broker Security Properties for JAAS Authentication [width="163%",cols="27%,42%,14%,17%",options="header",] |======================================================================= |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. |`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. |======================================================================= [[aeonz]][[GMADG00292]][[monitoring-properties]] Monitoring Properties ~~~~~~~~~~~~~~~~~~~~~ link:#gbnns[Table 17-13] lists the broker properties related to monitoring services. [[GMADG775]][[sthref155]][[gbnns]] Table 17-13 Broker Monitoring Properties [width="172%",cols="22%,46%,16%,16%",options="header",] |======================================================================= |Property |Type |Default Value |Description |`imq.log.level`link:#foot-usewithupdatebkr4[^Foot 1 ^] |String |`INFO` a| 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`link:#sthref156[^Footref 1^] |Boolean |`false` a| 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` a| Destination for console output: * `OUT`: `stdout` * `ERR`: `stderr` |`imq.log.console.output` |String |`ERROR|WARNING` a| 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 |`IMQ_VARHOME/instances/` + instanceName`/log` |Path to directory containing log file |`imq.log.file.filename` |String |`log.txt` |Name of log file |`imq.log.file.output` |String |`ALL` a| 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`link:#sthref157[^Footref 1^] |Integer |`-1` a| 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`link:#sthref158[^Footref 1^] |Integer |`604800` (one week) a| 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`link:#foot-solarisonly[^Foot 2 ^] |String |`ERROR` a| 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`link:#sthref159[^Footref 2^] |String |`LOG_DAEMON` a| `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`link:#sthref160[^Footref 2^] |String |`imqbrokerd_${imq.`instanceName`}` |Identity string to be prefixed to all messages logged to `syslog` |`imq.log.syslog.logpid`link:#sthref161[^Footref 2^] |Boolean |`true` |Log broker process ID with message? |`imq.log.syslog.logconsole`link:#sthref162[^Footref 2^] |Boolean |`false` |Write messages to system console if they cannot be sent to `syslog`? |`imq.log.timezone` |String |Local time zone a| 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` a| 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` a| 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` a| 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`link:#foot-jesmf[^Foot 3 ^] |String |System property `user.name` (user who started the broker) |Name of primary system owner |`imq.primaryowner.contact`link:#sthref163[^Footref 3^] |String |System property `user.name` (user who started the broker) |Contact information for primary system owner |`imq.broker.adminDefinedRoles.count`link:#sthref164[^Footref 3^] |Integer |None |Number of defined roles |`imq.broker.adminDefinedRoles.name`Nlink:#sthref165[^Footref 3^] |String |Broker instance name a| Name of defined role N (where N ranges from 0 to .count-1) Example: [source,oac_no_warn] ---- ...name0=Stocks JMS Server ...name1=JMS provider for appserver ---- |======================================================================= ^Footnote 1 ^Can be used with `imqcmd` `update` `bkr` command ^Footnote 2 ^Solaris platform only ^Footnote 3 ^Used by JES Monitoring Framework [[aeooa]][[GMADG00293]][[cluster-configuration-properties]] Cluster Configuration Properties ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ link:#gbnmu[Table 17-14] lists the configuration properties related to broker clusters. [[GMADG776]][[sthref166]][[gbnmu]] Table 17-14 Broker Properties for Cluster Configuration [width="252%",cols="16%,31%,35%,18%",options="header",] |======================================================================= |Property |Type |Default Value |Description |`imq.cluster.url`link:#foot-clustersame[^Foot 1 ^]^,^link:#foot-usewithupdatebkr5[^Foot 2 ^] |String |None a| 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.hostname`link:#foot-clusterindependent[^Foot 3 ^] |String |None a| Host name or IP address for `cluster` connection service If specified, overrides `imq.hostname` (see link:#gbnni[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`link:#sthref167[^Footref 3^] |Integer |`0` a| 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`link:#sthref168[^Footref 1^] |String |`tcp` a| Network transport protocol for `cluster` connection service For secure, encrypted message delivery between brokers, set this property to `ssl`. |`imq.cluster.ha` |Boolean |`false` |Is broker part of an enhanced (high-availability) cluster? |Additional Properties for Conventional Clusters | | | |`imq.cluster.brokerlist`link:#sthref169[^Footref 1^] ^,^link:#foot-conventionalonly[^Foot 4 ^] |String |None a| List of broker addresses belonging to cluster The list consists of one or more addresses, separated by commas. Each address specifies the Port Mapper host name and Port Mapper port number of a broker in the cluster, in the form hostName`:`portNumber. Example: * `host1:3000,host2:8000,ctrlhost` Literal IP addresses as host names: You can use a literal IPv4 or IPv6 address as a host name. If you use a literal IPv6 address, its format must conform to http://www.ietf.org/rfc/rfc2732.txt[RFC2732], Format for Literal IPv6 Addresses in URL's. 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.nomasterbroker`link:#sthref170[^Footref 1^]^,^link:#sthref171[^Footref 4^] |Boolean |`false` a| Specifies whether a conventional cluster uses a shared JDBC database store for the cluster configuration change record instead of using a master broker. Set to `true` for a conventional cluster of peer brokers, which uses a shared JDBC store for the cluster's configuration change record. When set to `true`, the `imq.cluster.clusterid` must be set, and the `imq.cluster.sharecc.persist.jdbc.*` properties must be configured for accessing the shared JDBC store. |`imq.cluster.masterbroker`link:#sthref172[^Footref 1^]^,^link:#sthref173[^Footref 4^] |String |None a| Port Mapper 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 Port Mapper host name of the master broker's host and portNumber is its Port Mapper port number. Example: * `ctrlhost:7676` Literal IP addresses as host names: You can use a literal IPv4 or IPv6 address as a host name. If you use a literal IPv6 address, its format must conform to http://www.ietf.org/rfc/rfc2732.txt[RFC2732], Format for Literal IPv6 Addresses in URL's. 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.dynamicChangeMasterBrokerEnabled`link:#sthref174[^Footref 1^]^,^link:#sthref175[^Footref 4^] |Boolean |`false` a| Can the master broker for the cluster be changed dynamically; that is, without stopping all the brokers in the cluster? If set to `true`, you can use the `imqcmd changemaster` command to change the master broker without stopping the brokers in the cluster. If set to `true`, the `imq.cluster.masterbroker` property cannot be specified on the `imqbrokerd` command line. |`imq.cluster.sharecc.persist.jdbc.connection.retry.max` |Integer |60 |The maximum number of times a broker will retry a connection. |`imq.cluster.sharecc.persist.jdbc.connection.retry.delay` |Integer |5000 |The amount of time, in milliseconds, the broker waits before retrying a failed connection. |`imq.cluster.sharecc.persist.jdbc.dbVendor`link:#sthref176[^Footref 1^]^,^link:#sthref177[^Footref 4^] |String |None a| Name of database vendor for shared JDBC data store housing the cluster configuration change record: * `db2`: DB2 * `derby`: Java DB (Oracle Corporation) * `oracle`: Oracle (Oracle Corporation) * `mysql`: MySQL (Oracle Corporation) * `postgresql`: postgreSQL |`imq.cluster.sharecc.persist.jdbc.` + vendorName`.driver`link:#sthref178[^Footref 1^] ^,^link:#sthref179[^Footref 4^] |String |per Vendor |Java class name of the JDBC driver, if needed, for connecting to database from vendor vendorName for shared JDBC data store housing the cluster configuration change record |`imq.cluster.sharecc.persist.jdbc.` + vendorName`.opendburl`link:#sthref180[^Footref 1^]^,^link:#sthref181[^Footref 4^] |String |None a| URL for connecting to existing database from vendor vendorName for shared JDBC data store housing the cluster configuration change record Applicable when a `java.sql.Driver` is used to connect to database. |`imq.cluster.sharecc.persist.jdbc.` + vendorName`.createdburl`link:#sthref182[^Footref 1^]^,^link:#sthref183[^Footref 4^] |String |None a| URL for creating new database from vendor vendorName for shared JDBC data store housing the cluster configuration change record Applicable for embedded databases, such as Java DB. |`imq.cluster.sharecc.persist.jdbc.` + vendorName`.closedburl`link:#sthref184[^Footref 1^]^,^link:#sthref185[^Footref 4^] |String |None a| URL for closing connection to database from vendor vendorName for shared JDBC data store housing the cluster configuration change record Applicable for some embedded databases, such as Java DB. |`imq.cluster.sharecc.persist.jdbc.` + vendorName`.tableoption`link:#sthref186[^Footref 1^]^,^link:#sthref187[^Footref 4^] |String |None, except for MySQL a| Vendor-specific options passed to database from vendor vendorName for shared JDBC data store housing the cluster configuration change record when creating the table schema For information about this property's use, see the default broker properties file, `default.properties`. |`imq.cluster.sharecc.persist.jdbc.`vendorName`.connection.retry.regex.`n |String |None a| This property specifies a regular expression, n, to be used to match a `SQLException` message in order to identify a retriable database communication failure. There can be 0 or many of these properties (1, 2, 3, ... in consecutive order) specified. The `SQLException` message is matched to these regular expressions in the order of n and stops matching when a match is found. |`imq.cluster.sharecc.persist.jdbc.` + vendorName`.user`link:#sthref188[^Footref 1^] ^,^link:#sthref189[^Footref 4^] |String |None |User name, if required, for connecting to database from vendor vendorName for shared JDBC data store housing the cluster configuration change record |`imq.cluster.sharecc.persist.jdbc.` + vendorName`.needpassword`link:#sthref190[^Footref 1^]^,^link:#sthref191[^Footref 4^] |Boolean |`false` a| Does database from vendor vendorName for shared JDBC data store housing the cluster configuration change record require a password for broker access? If `true`, the `imqbrokerd` and `imqdbmgr` commands will prompt for a password unless the following property, `password` is set. |`imq.cluster.sharecc.persist.jdbc.` + vendorName`.password`link:#sthref192[^Footref 1^]^,^link:#sthref193[^Footref 4^] |String |None a| Password, if required, for connecting to database from vendor vendorName for shared JDBC data store housing the cluster configuration change record This property should only be specified in a password file, as described in link:security-services.html#aeogq[Password Files]. |`imq.cluster.sharecc.persist.jdbc.` + vendorName`.property.`propNamelink:#sthref194[^Footref 1^]^,^link:#sthref195[^Footref 4^] |String |None |Optional vendor-specific property propName for the JDBC driver from vendor vendorName for shared JDBC data store housing the cluster configuration change record |Additional Properties for Enhanced (High-Availability) Clusters | | | |`imq.cluster.clusterid`link:#sthref196[^Footref 1^] ^,^link:#foot-haonly[^Foot 5 ^] |String |None a| Cluster identifier Must be a unique alphanumeric string of no more than n-18 characters, where n is the maximum table name length allowed by the database. No two running clusters may have the same cluster identifier. Note: For brokers belonging to a high-availability cluster, this property is used in database table names in place of `imq.brokerid` (see link:#gbnni[Table 17-1]). For conventional cluster of peer brokers, this property is used in the shared database table name for the cluster's configuration change records. |`imq.cluster.ha.takeoverWaitTimeout`link:#sthref197[^Footref 5^] |Integer |300 |Time in seconds a failed broker attempting to restart waits for an existing takeover activity (from the broker's initial failure) to complete before exiting its restart attempt |`imq.cluster.heartbeat.hostname`link:#sthref198[^Footref 5^] |String |None a| Host name for heartbeat service If specified, overrides `imq.hostname` (see link:#gbnni[Table 17-1]) for the heartbeat service. |`imq.cluster.heartbeat.port`link:#sthref199[^Footref 5^] |Integer |`7676` a| 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`link:#sthref200[^Footref 5^] |Integer |2 |Interval between heartbeats, in seconds |`imq.cluster.heartbeat.threshold`link:#sthref201[^Footref 5^] |Integer |3 |Number of missed heartbeat intervals after which to invoke monitor service |`imq.cluster.monitor.interval`link:#sthref202[^Footref 5^] |Integer |30 a| 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`link:#sthref203[^Footref 5^] |Integer |2 |Number of missed monitor intervals after which to initiate broker takeover |======================================================================= ^Footnote 1 ^Must have the same value for all brokers in a cluster. ^Footnote 2 ^Can be used with the `imqcmd update bkr` command. ^Footnote 3 ^Can be specified independently for each broker in a cluster. ^Footnote 4 ^Conventional clusters only ^Footnote 5 ^Enhanced (high-availability) clusters only [[gjdkt]][[GMADG00294]][[bridge-properties]] Bridge Properties ~~~~~~~~~~~~~~~~~ link:#gjdnh[Table 17-15] lists broker properties related to the bridge service manager. link:#gjdnr[Table 17-16] lists broker properties related specifically to the JMS bridge service, and link:#gjdma[Table 17-17] lists broker properties related specifically to the STOMP bridge service. [[GMADG777]][[sthref204]][[gjdnh]] Table 17-15 Broker Properties for the Bridge Service Manager [width="252%",cols="16%,31%,35%,18%",options="header",] |======================================================================= |Property |Type |Default Value |Description |`imq.bridge.enabled` |Boolean |`false` |Is the bridge service enabled on this broker? |`imq.bridge.activelist` |String |None a| 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. |======================================================================= [[GMADG778]][[sthref205]][[gjdnr]] Table 17-16 Broker Properties for a JMS Bridge Service [width="252%",cols="16%,31%,35%,18%",options="header",] |======================================================================= |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 a| 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` a| 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. a| `imq.bridge.tm.props` `imq.bridge.`name`.tm.props` |String |None a| 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. |======================================================================= [[GMADG779]][[sthref206]][[gjdma]] Table 17-17 Broker Properties for the STOMP Bridge Service [width="252%",cols="16%,31%,35%,18%",options="header",] |======================================================================= |Property |Type |Default Value |Description |`imq.bridge.stomp.hostname` |String |None a| Host name or IP address for the STOMP bridge service If specified, overrides `imq.hostname` (see link:#gbnni[Table 17-1]) for the STOMP bridge service. |`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` a| 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` a| 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. |======================================================================= [[geofd]][[GMADG00295]][[jmx-properties]] JMX Properties ~~~~~~~~~~~~~~ The broker properties listed in link:#gclfp[Table 17-18] 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 utility`imqbrokerd` options described in link:command-line-reference.html#gbnla[Table 16-1]. See link:jmx-support.html#geoel[JMX Support] for further information on administrative support of JMX clients. [[GMADG780]][[sthref207]][[gclfp]] Table 17-18 Broker Properties for JMX Support [width="172%",cols="25%,46%,8%,21%",options="header",] |======================================================================= |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 a| 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 link:jmx-support.html#ghbrs[The JMX Service URL]. Default: [source,oac_no_warn] ---- /jndi/rmi://brokerHost:rmiPort /brokerHost/brokerPort/connectorName ---- |`imq.jmx.connector.`RMIconnectorName`.port` |Integer |None: the port is dynamically allocated a| 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 link:jmx-support.html#ggvxj[JMX Connections Through a Firewall]. |`imq.jmx.connector.`RMIconnectorName`.useSSL` |Boolean |`false` a| 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` a| 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` a| 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 of`imqbrokerd`. |`imq.jmx.rmiregistry.use` |Boolean |`false` a| 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 of`imqbrokerd`. |`imq.jmx.rmiregistry.port` |Integer |`1099` a| 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`. |======================================================================= [[aeoob]][[GMADG00296]][[alphabetical-list-of-broker-properties]] Alphabetical List of Broker Properties ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ link:#aeoob[Alphabetical List of Broker Properties] is an alphabetical list of broker configuration properties, with cross-references to the relevant tables in this chapter. [[GMADG781]][[sthref208]][[gbnnz]] Table 17-19 Alphabetical List of Broker Properties [width="100%",cols="75%,25%",options="header",] |======================================================================= |Property |Table |`imq.accesscontrol.enabled` a| link:#gbnok[Table 17-9] |`imq.accesscontrol.type` a| link:#gbnok[Table 17-9] |`imq.accesscontrol.file.filename` a| link:#gbnok[Table 17-9] |`imq.admincreate.topic.sharedConsumerFlowLimit` a| link:#gkudw[Table 17-4] |`imq.audit.bsm.disabled` a| link:#gbnok[Table 17-9] |`imq.audit.enabled` a| link:#gbnok[Table 17-9] |`imq.authentication.basic.user_repository` a| link:#gbnok[Table 17-9] |`imq.authentication.client.response.timeout` a| link:#gbnok[Table 17-9] |`imq.authentication.type` a| link:#gbnok[Table 17-9] |`imq.autocreate.destination.isLocalOnly` a| link:#gbnof[Table 17-3] |`imq.autocreate.destination.limitBehavior` a| link:#gbnof[Table 17-3] |`imq.autocreate.destination.maxBytesPerMsg` a| link:#gbnof[Table 17-3] |`imq.autocreate.destination.maxNumMsgs` a| link:#gbnof[Table 17-3] |`imq.autocreate.destination.maxNumProducers` a| link:#gbnof[Table 17-3] |`imq.autocreate.destination.maxTotalMsgBytes` a| link:#gbnof[Table 17-3] |`imq.autocreate.destination.useDMQ` a| link:#gbnof[Table 17-3] |`imq.autocreate.queue` a| link:#gbnof[Table 17-3] |`imq.autocreate.queue.consumerFlowLimit` a| link:#gbnof[Table 17-3] |`imq.autocreate.queue.localDeliveryPreferred` a| link:#gbnof[Table 17-3] |`imq.autocreate.queue.maxNumActiveConsumers` a| link:#gbnof[Table 17-3] |`imq.autocreate.queue.maxNumBackupConsumers` a| link:#gbnof[Table 17-3] |`imq.autocreate.reaptime` a| link:#gbnof[Table 17-3] |`imq.autocreate.topic` a| link:#gbnof[Table 17-3] |`imq.autocreate.topic.consumerFlowLimit` a| link:#gbnof[Table 17-3] |`imq.autocreate.topic.sharedConsumerFlowLimit` a| link:#gbnof[Table 17-3] |`imq.broker.adminDefinedRoles.count` a| link:#gbnns[Table 17-13] |`imq.broker.adminDefinedRoles.name`n a| link:#gbnns[Table 17-13] |`imq.brokerid` a| link:#gbnni[Table 17-1] |`imq.bridge.activelist` a| link:#gjdnh[Table 17-15] |`imq.bridge.admin.password` a| link:#gjdnh[Table 17-15] |`imq.bridge.admin.user` a| link:#gjdnh[Table 17-15] |`imq.bridge.enabled` a| link:#gjdnh[Table 17-15] |`imq.bridge.`name`.autostart` a| link:#gjdnr[Table 17-16] |`imq.bridge.`name`.logfile.count` a| link:#gjdnr[Table 17-16] |`imq.bridge.`name`.logfile.limit` a| link:#gjdnr[Table 17-16] |`imq.bridge.`name`.tm.props` a| link:#gjdnr[Table 17-16] |`imq.bridge.`name`.type` a| link:#gjdnr[Table 17-16] |`imq.bridge.`name`.xmlurl` a| link:#gjdnr[Table 17-16] |`imq.bridge.stomp.consumerFlowLimit` a| link:#gjdma[Table 17-17] |`imq.bridge.stomp.logfile.count` a| link:#gjdma[Table 17-17] |`imq.bridge.stomp.logfile.limit` a| link:#gjdma[Table 17-17] |`imq.bridge.stomp.messageTransformer` a| link:#gjdma[Table 17-17] |`imq.bridge.stomp.tcp.enabled` a| link:#gjdma[Table 17-17] |`imq.bridge.stomp.tcp.port` a| link:#gjdma[Table 17-17] |`imq.bridge.stomp.tls.enabled` a| link:#gjdma[Table 17-17] |`imq.bridge.stomp.tls.port` a| link:#gjdma[Table 17-17] |`imq.bridge.stomp.tls.requireClientAuth` a| link:#gjdma[Table 17-17] |`imq.bridge.tm.props` a| link:#gjdnr[Table 17-16] |`imq.cluster.brokerlist` a| link:#gbnmu[Table 17-14] |`imq.cluster.clusterid` a| link:#gbnmu[Table 17-14] |`imq.cluster.dynamicChangeMasterBrokerEnabled` a| link:#gbnmu[Table 17-14] |`imq.cluster.ha` a| link:#gbnmu[Table 17-14] |`imq.cluster.heartbeat.hostname` a| link:#gbnmu[Table 17-14] |`imq.cluster.heartbeat.interval` a| link:#gbnmu[Table 17-14] |`imq.cluster.heartbeat.port` a| link:#gbnmu[Table 17-14] |`imq.cluster.heartbeat.threshold` a| link:#gbnmu[Table 17-14] |`imq.cluster.hostname` a| link:#gbnmu[Table 17-14] |`imq.cluster.nomasterbroker` a| link:#gbnmu[Table 17-14] |`imq.cluster.masterbroker` a| link:#gbnmu[Table 17-14] |`imq.cluster.monitor.interval` a| link:#gbnmu[Table 17-14] |`imq.cluster.monitor.threshold` a| link:#gbnmu[Table 17-14] |`imq.cluster.port` a| link:#gbnmu[Table 17-14] |`imq.cluster.sharecc.persist.jdbc.connection.retry.delay` a| link:#gbnmu[Table 17-14] |`imq.cluster.sharecc.persist.jdbc.connection.retry.max` a| link:#gbnmu[Table 17-14] |`imq.cluster.sharecc.persist.jdbc.dbVendor` a| link:#gbnmu[Table 17-14] |`imq.cluster.sharecc.persist.jdbc.`vendorName.`connection.retry.regex.`n a| link:#gbnmu[Table 17-14] |`imq.cluster.sharecc.persist.jdbc.`vendorName`.driver` a| link:#gbnmu[Table 17-14] |`imq.cluster.sharecc.persist.jdbc.`vendorName`.closedburl` a| link:#gbnmu[Table 17-14] |`imq.cluster.sharecc.persist.jdbc.`vendorName`.createdburl` a| link:#gbnmu[Table 17-14] |`imq.cluster.sharecc.persist.jdbc.`vendorName`.needpassword` a| link:#gbnmu[Table 17-14] |`imq.cluster.sharecc.persist.jdbc.`vendorName`.opendburl` a| link:#gbnmu[Table 17-14] |`imq.cluster.sharecc.persist.jdbc.`vendorName`.password` a| link:#gbnmu[Table 17-14] |`imq.cluster.sharecc.persist.jdbc.`vendorName`.property.`propName a| link:#gbnmu[Table 17-14] |`imq.cluster.sharecc.persist.jdbc.`vendorName`.tableoption` a| link:#gbnmu[Table 17-14] |`imq.cluster.sharecc.persist.jdbc.`vendorName`.user` a| link:#gbnmu[Table 17-14] |`imq.cluster.transport` a| link:#gbnmu[Table 17-14] |`imq.cluster.url` a| link:#gbnmu[Table 17-14] |`imq.destination.DMQ.truncateBody` a| link:#gbnod[Table 17-2] |`imq.destination.logDeadMsgs` a| link:#gbnns[Table 17-13] |`imq.hostname` a| link:#gbnni[Table 17-1] |`imq.imqcmd.password` a| link:#gbnok[Table 17-9] |`imq.jmx.connector.activelist` a| link:#gclfp[Table 17-18] |`imq.jmx.connector.`RMIconnectorName`.brokerHostTrusted` a| link:#gclfp[Table 17-18] |`imq.jmx.connector.`RMIconnectorName`.port` a| link:#gclfp[Table 17-18] |`imq.jmx.connector.`RMIconnectorName`.urlpath` a| link:#gclfp[Table 17-18] |`imq.jmx.connector.`RMIconnectorName`.useSSL` a| link:#gclfp[Table 17-18] |`imq.jmx.rmiregistry.port` a| link:#gclfp[Table 17-18] |`imq.jmx.rmiregistry.start` a| link:#gclfp[Table 17-18] |`imq.jmx.rmiregistry.use` a| link:#gclfp[Table 17-18] |`imq.keystore.file.dirpath` a| link:#gbnok[Table 17-9] |`imq.keystore.file.name` a| link:#gbnok[Table 17-9] |`imq.keystore.password` a| link:#gbnok[Table 17-9] |`imq.keystore.`propertyName a| link:#gbnok[Table 17-9] |`imq.log.console.output` a| link:#gbnns[Table 17-13] |`imq.log.console.stream` a| link:#gbnns[Table 17-13] |`imq.log.file.dirpath` a| link:#gbnns[Table 17-13] |`imq.log.file.filename` a| link:#gbnns[Table 17-13] |`imq.log.file.output` a| link:#gbnns[Table 17-13] |`imq.log.file.rolloverbytes` a| link:#gbnns[Table 17-13] |`imq.log.file.rolloversecs` a| link:#gbnns[Table 17-13] |`imq.log.level` a| link:#gbnns[Table 17-13] |`imq.log.syslog.facility` a| link:#gbnns[Table 17-13] |`imq.log.syslog.identity` a| link:#gbnns[Table 17-13] |`imq.log.syslog.logconsole` a| link:#gbnns[Table 17-13] |`imq.log.syslog.logpid` a| link:#gbnns[Table 17-13] |`imq.log.syslog.output` a| link:#gbnns[Table 17-13] |`imq.log.timezone` a| link:#gbnns[Table 17-13] |`imq.message.expiration.interval` a| link:#gbnod[Table 17-2] |`imq.message.max_size` a| link:#gbnod[Table 17-2] |`imq.metrics.enabled` a| link:#gbnns[Table 17-13] |`imq.metrics.interval` a| link:#gbnns[Table 17-13] |`imq.metrics.topic.enabled` a| link:#gbnns[Table 17-13] |`imq.metrics.topic.interval` a| link:#gbnns[Table 17-13] |`imq.metrics.topic.persist` a| link:#gbnns[Table 17-13] |`imq.metrics.topic.timetolive` a| link:#gbnns[Table 17-13] |`imq.passfile.dirpath` a| link:#gbnok[Table 17-9] |`imq.passfile.enabled` a| link:#gbnok[Table 17-9] |`imq.passfile.name` a| link:#gbnok[Table 17-9] |`imq.persist.file.destination.message.filepool.limit` a| link:#gbnnh[Table 17-6] |`imq.persist.file.message.cleanup` a| link:#gbnnh[Table 17-6] |`imq.persist.file.message.filepool.cleanratio` a| link:#gbnnh[Table 17-6] |`imq.persist.file.message.max_record_size` a| link:#gbnnh[Table 17-6] |`imq.persist.file.sync.enabled` a| link:#gbnnh[Table 17-6] |`imq.persist.file.transaction.memorymappedfile.enabled` a| link:#gbnnh[Table 17-6] |`imq.persist.jdbc.dbVendor` a| link:#gbnoa[Table 17-8] |`imq.persist.jdbc.connection.retry.delay` a| link:#gbnoa[Table 17-8] |`imq.persist.jdbc.connection.retry.max` a| link:#gbnoa[Table 17-8] |`imq.persist.jdbc.`vendorName`.connection.retry.regex.`n a| link:#gbnoa[Table 17-8] |`imq.persist.jdbc.`vendorName`.closedburl` a| link:#gbnoa[Table 17-8] |`imq.persist.jdbc.`vendorName`.createdburl` a| link:#gbnoa[Table 17-8] |`imq.persist.jdbc.`vendorName`.driver` a| link:#gbnoa[Table 17-8] |`imq.persist.jdbc.`vendorName`.needpassword` a| link:#gbnoa[Table 17-8] |`imq.persist.jdbc.`vendorName`.opendburl` a| link:#gbnoa[Table 17-8] |`imq.persist.jdbc.`vendorName`.password` a| link:#gbnoa[Table 17-8] |`imq.persist.jdbc.`vendorName`.property.`propName a| link:#gbnoa[Table 17-8] |`imq.persist.jdbc.`vendorName`.user` a| link:#gbnoa[Table 17-8] |`imq.persist.store` a| link:#gbnmp[Table 17-5] |`imq.ping.interval` a| link:#gbnni[Table 17-1] |`imq.portmapper.backlog` a| link:#gbnni[Table 17-1] |`imq.portmapper.hostname` a| link:#gbnni[Table 17-1] |`imq.portmapper.port` a| link:#gbnni[Table 17-1] |`imq.primaryowner.contact` a| link:#gbnns[Table 17-13] |`imq.primaryowner.name` a| link:#gbnns[Table 17-13] |`imq.`resourceState`.count` a| link:#gbnod[Table 17-2] |`imq.`resourceState`.threshold` a| link:#gbnod[Table 17-2] |`imq.service.activelist` a| link:#gbnni[Table 17-1] |`imq.`serviceName`.accesscontrol.enabled` a| link:#gbnok[Table 17-9] |`imq.`serviceName`.accesscontrol.file.filename` a| link:#gbnok[Table 17-9] |`imq.`serviceName`.authentication.type` a| link:#gbnok[Table 17-9] |`imq.`serviceName`.max_threads` a| link:#gbnni[Table 17-1] |`imq.`serviceName`.min_threads` a| link:#gbnni[Table 17-1] |`imq.`serviceName`.`protocolType`.hostname` a| link:#gbnni[Table 17-1] |`imq.`serviceName`.`protocolType`.port` a| link:#gbnni[Table 17-1] |`imq.`serviceName`.threadpool_model` a| link:#gbnni[Table 17-1] |`imq.shared.connectionMonitor_limit` a| link:#gbnni[Table 17-1] |`imq.system.max_count` a| link:#gbnod[Table 17-2] |`imq.system.max_size` a| link:#gbnod[Table 17-2] |`imq.transaction.autorollback` a| link:#gbnod[Table 17-2] |`imq.user_repository.file.dirpath` a| link:#gkvxf[Table 17-10] |`imq.user_repository.file.filename` a| link:#gkvxf[Table 17-10] |`imq.user_repository.ldap.base` a| link:#gewfp[Table 17-11] |`imq.user_repository.ldap.gidattr` a| link:#gewfp[Table 17-11] |`imq.user_repository.ldap.grpbase` a| link:#gewfp[Table 17-11] |`imq.user_repository.ldap.grpfilter` a| link:#gewfp[Table 17-11] |`imq.user_repository.ldap.grpsearch` a| link:#gewfp[Table 17-11] |`imq.user_repository.ldap.memattr` a| link:#gewfp[Table 17-11] |`imq.user_repository.ldap.password` a| link:#gewfp[Table 17-11] |`imq.user_repository.ldap.principal` a| link:#gewfp[Table 17-11] |`imq.user_repository.ldap.`propertyName a| link:#gewfp[Table 17-11] |`imq.user_repository.ldap.server` a| link:#gewfp[Table 17-11] |`imq.user_repository.ldap.ssl.enabled` a| link:#gewfp[Table 17-11] |`imq.user_repository.ldap.ssl.socketfactory` a| link:#gewfp[Table 17-11] |`imq.user_repository.ldap.timeout` a| link:#gewfp[Table 17-11] |`imq.user_repository.ldap.uidattr` a| link:#gewfp[Table 17-11] |`imq.user_repository.ldap.usrfilter` a| link:#gewfp[Table 17-11] |`imq.user_repository.jaas.name` a| link:#ggxis[Table 17-12] |`imq.user_repository.jaas.userPrincipalClass` a| link:#ggxis[Table 17-12] |`imq.user_repository.jaas.groupPrincipalClass` a| link:#ggxis[Table 17-12] |=======================================================================