![]() | |
Sun Java System Message Queue 3 2005Q4 Administration Guide |
Chapter 14
Broker Properties ReferenceThis chapter provides reference information about configuration properties for a message broker. It consists of the following sections:
Connection PropertiesTable 14-1 lists the broker properties related to connection services.
Table 14-1 Broker Connection Properties
Property
Type
Default
Description
imq.service.activelist
String
jms,admin
List of connection services, separated by commas, to be activated at broker startup
imq.hostname
String
All available IP addresses
Default host name or IP address for all connection services
imq.portmapper.hostname
String
None
Host name or IP address of Port Mapper
If specified, overrides imq.hostname
imq.portmapper.port1
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
String
None
Host name or IP address for connection service2
If specified, overrides imq.hostname for the designated connection service
imq.serviceName.protocolType.port
Integer
0
Port number for connection service2
A value of 0 specifies that the port number should be allocated dynamically by the Port Mapper.
imq.portmapper.backlog
Integer
50
Maximum number of pending Port Mapper requests in operating system backlog
imq.serviceName.threadpool_model
String
dedicated
Threading model for thread pool management:
dedicated Two dedicated threads per
connection, one for incoming
and one for outgoing
messagesshared3 Connections processed by
shared thread when sending or
receiving messagesThe 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: 4Minimum 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: 10The number of threads beyond which no new threads are added to the thread pool for use by the named connection service. The number must be greater than zero and greater in value than the value of min_threads.
The default value varies by connection service, as shown.
imq.shared.connectionMonitor_limit
Integer
Solaris: 512
Linux: 512
Windows: 64Maximum number of connections monitored by a distributor thread4
The system allocates enough distributor threads to monitor all connections. The smaller the value of this property, the faster threads can be assigned to active connections. A value of -1 denotes an unlimited number of connections per thread.
The default value varies by operating-system platform, as shown.
imq.ping.interval
Integer
120
Interval, in seconds, at which to test connection between client and broker
A value of 0 or -1 disables periodic testing of the connection.
1Can be used with imqcmd update bkr command
2jms, ssljms, admin, and ssladmin services only; see Appendix C, "HTTP/HTTPS Support," for information on configuring the httpjms and httpsjms services
3jms and admin services only
4Shared threading model only
Routing PropertiesTable 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 Properties
Property
Type
Default
Description
imq.system.max_count1
Integer
-1
Maximum number of messages held by broker
A value of -1 denotes an unlimited message count.
imq.system.max_size1
String
-1
Maximum total size of messages held by broker
The value may be expressed in bytes, kilobytes, or megabytes, using the following suffixes:
b Bytes
k Killobytes (1024 bytes)
m Megabytes (1024 x 1024
= 1,048,576 bytes)An unsuffixed value is expressed in bytes; a value of -1 denotes an unlimited message capacity.
Examples:
1600 1600 bytes
1600b 1600 bytes
16k 16 kilobytes (= 16,384 bytes)
16m 16 megabytes (= 16,777,216 bytes)
-1 No limitimq.message.max_size1
String
70m
Maximum size of a single message body
The syntax is the same as for imq.system.max_size (see above).
imq.message.expiration.interval
Integer
60
Interval, in seconds, at which expired messages are reclaimed
imq.resourceState.threshold
Integer
green: 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
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.truncateBody1
Boolean
false
Remove message body before storing in dead message queue?
If true, only the message header and property data will be saved.
imq.transaction.autorollback
Boolean
false
Automatically roll back distributed transactions left in prepared state at broker startup?
If false, you must manually commit or roll back transactions using the Command utility (imqcmd).
1Can be used with imqcmd update bkr command
Table 14-3 Broker Properties for Auto-Created Destinations
Property
Type
Default
Description
Boolean
true
Allow auto-creation of queue destinations?
imq.autocreate.topic3
Boolean
true
Allow auto-creation of topic destinations?
imq.autocreate.destination.maxNumMsgs
Integer
100000
Maximum number of unconsumed messages
A value of -1 denotes an unliimited number of messages.
imq.autocreate.destination.maxBytesPerMsg
String
10k
Maximum size, in bytes, of any single message
The value may be expressed in bytes, kilobytes, or megabytes, using the following suffixes:
b Bytes
k Killobytes (1024 bytes)
m Megabytes (1024 x 1024
= 1,048,576 bytes)An unsuffixed value is expressed in bytes; a value of -1 denotes an unlimited message size.
Examples:
1600 1600 bytes
1600b 1600 bytes
16k 16 kilobytes
(= 16,384 bytes)
16m 16 megabytes
(= 16,777,216 bytes)
-1 No limitimq.autocreate.destination.maxTotalMsgBytes
String
10m
Maximum total memory, in bytes, for unconsumed messages
The syntax is the same as for imq.autocreate.destination.
maxBytesPerMsg (see above).imq.autocreate.destination.limitBehavior
String
REJECT_NEWEST
Broker behavior when memory-limit threshold reached:
FLOW_CONTROL
Slow down producersREMOVE_OLDEST
Throw out oldest
messagesREMOVE_LOW_PRIORITY
Throw out lowest-priority
messages according to
age; no notification to
producing clientREJECT_NEWEST
Reject newest messages;
notify producing client with
an exception only if
message is persistentIf the value is REMOVE_OLDEST or REMOVE_LOW_PRIORITY and the imq.autocreate.destination.
useDMQ property is true, excess messages are moved to the dead message queue.imq.autocreate.destination.maxNumProducers
Integer
100
Maximum number of message producers for destination
When this limit is reached, no new producers can be created. A value of -1 denotes an unliimited number of producers.
imq.autocreate.queue.maxNumActiveConsumers2
Integer
1
Maximum number of active message consumers in load-balanced delivery from queue destination
A value of -1 denotes an unliimited number of consumers.
imq.autocreate.queue.maxNumBackupConsumers2
Integer
0
Maximum number of backup message consumers in load-balanced delivery from queue destination
A value of -1 denotes an unliimited number of consumers.
imq.autocreate.queue.consumerFlowLimit2
Integer
1000
Maximum number of messages delivered to queue consumer in a single batch
In load-balanced queue delivery, this is the initial number of queued messages routed to active consumers before load balancing begins. A destination consumer can override this limit by specifying a lower value on a connection.
A value of -1 denotes an unliimited number of consumers.
imq.autocreate.topic.consumerFlowLimit3
Integer
1000
Maximum number of messages delivered to topic consumer in a single batch
A value of -1 denotes an unliimited number of consumers.
imq.autocreate.destination.isLocalOnly
Boolean
false
Local delivery only?
This property applies only to destinations in broker clusters, and cannot be changed once the destination has been created. If true, the destination is not replicated on other brokers and is limited to delivering messages only to local consumers (those connected to the broker on which the destination is created).
imq.autocreate.queue.localDeliveryPreferred2
Boolean
false
Local delivery preferred?
This property applies only to load-balanced queue delivery in broker clusters. If true, messages will be delivered to remote consumers only if there are no consumers on the local broker; the destination must not be restricted to local-only delivery (imq.autocreate.destination.
isLocalOnly must be false).imq.autocreate.destination.useDMQ
Boolean
true
Send dead messages to dead message queue?
If false, dead messages will simply be discarded.
1Can be used with imqcmd update bkr command
2Queue destinations only
3Topic destinations only
Persistence PropertiesMessage 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.
File-Based Persistence
Table 14-5 lists the broker properties related to file-based persistence.
JDBC-Based Persistence
Table 14-6 lists the broker properties related to JDBC-based persistence. Examples shown are for the PointBase® family of database products from DataMirror Mobile Solutions, Inc.
Security PropertiesTable 14-7 lists the broker properties related to security services.
Table 14-7 Broker Security Properties
Property
Type
Default
Description
imq.accesscontrol.enabled
Boolean
true
Use access control?
If true, the system will check the access control properties 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.serviceName.accesscontrol.enabled
Boolean
None
Use access control for connection service?
If specified, overrides imq.accesscontrol.
enabled for the designated connection service.If true, the system will check the access control properties file to verify that an authenticated user is authorized to use the designated connection service or to perform specific operations with respect to specific destinations.
imq.accesscontrol.file.filename
String
accesscontrol.properties
Name of access control properties file
The file name specifies a path relative to the access control directory (see Appendix A).
imq.serviceName.accesscontrol.file.filename
String
None
Name of access control properties 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).
imq.authentication.type
String
digest
Password encoding method:
basic Base-64
digest MD5imq.serviceName.authentication.type
String
None
Password encoding method for connection service:
basic Base-64
digest MD5If specified, overrides imq.authentication.
type for the designated connection service.imq.authentication.basic.user_repository
String
file
Type of user repository for base-64 authentication:
file File-based
ldap LDAPimq.authentication.client.response.timeout
Integer
180
Interval, in seconds, to wait for client response to authentication requests
imq.passfile.enabled
Boolean
false
Obtain passwords from password file?
imq.passfile.dirpath
String
See Appendix A
Path to directory containing password file
imq.passfile.name
String
passfile
Name of password file
imq.imqcmd.password
String
None
Password for administrative user
The Command utility (imqcmd) uses this password to authenticate the user before executing a command.
imq.user_repository.ldap.server
String
None
Host name and port number for LDAP server
The value is of the form
hostName:port
where hostName is the fully qualified DNS name of the host running the LDAP server and port is the port number used by the server.
To specify a list of failover servers, use the following syntax:
host1:port1
ldap://host2:port2
ldap://host3:port3
…Entries in the list are separated by spaces. Note that each failover server address is prefixed with ldap://. Use this format even if you use SSL and have set the property imq.user_repository.ldap.ssl.enabled to true. You need not specify ldaps in the address.
imq.user_repository.ldap.principal
String
None
Distinguished name for binding to LDAP user repository
Not needed if the LDAP server allows anonymous searches.
imq.user_repository.ldap.password
String
None
Password for binding to LDAP user repository
Not needed if the LDAP server allows anonymous searches.
This property should be specified only in password files.
imq.user_repository.ldap.propertyName
To come
To come
To come
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.usrfilter
String
None
(Optional) JNDI filter for LDAP user searches
imq.user_repository.ldap.grpsearch
Boolean
false
Enable LDAP group searches?
Note: Message Queue does not support nested groups.
imq.user_repository.ldap.grpbase
String
None
Directory base for LDAP group entries
imq.user_repository.ldap.gidattr
String
None
Provider-specific attribute identifier for LDAP group name
imq.user_repository.ldap.memattr
String
None
Provider-specific attribute identifier for user names in LDAP group
imq.user_repository.ldap.grpfilter
String
None
(Optional) 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.keystore.file.dirpath
String
See Appendix A
Path to directory containing key store file
imq.keystore.file.name
String
keystore
Name of key store file
imq.keystore.password
String
None
Password for key store file
This property should be specified only in a password file.
imq.audit.enabled
Boolean
false
Start audit logging to broker log file?
This option applies to Message Queue Enterprise Edition only.
Monitoring PropertiesTable 14-8 lists the broker properties related to monitoring services.
Table 14-8 Broker Monitoring Properties
Property
Type
Default
Description
imq.log.level1
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
INFOEach level includes those above it (for example, WARNING includes ERROR).
imq.destination.logDeadMsgs1
Boolean
false
Log information about dead messages?
If true, the following events will be logged:
imq.log.console.stream
String
ERR
Destination for console output:
OUT stdout
ERR stderrimq.log.console.output
String
ERROR|WARNING
Categories of logging information to write to console:
NONE
ERROR
WARNING
INFO
ALLThe ERROR, WARNING, AND INFO categories do not include those above them, so each must be specified explicitly if desired. Any combination of categories can be specified, separated by vertical bars (|).
imq.log.file.dirpath
String
See Appendix A
Path to directory containing log file
imq.log.file.filename
String
log.txt
Name of log file
imq.log.file.output
String
ALL
Categories of logging information to write to log file:
NONE
ERROR
WARNING
INFO
ALLThe 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.rolloverbytes1
Integer
-1
File length, in bytes, at which output rolls over to a new log file
A value of -1 denotes an unlimited number of bytes (no rollover based on file length).
imq.log.file.rolloversecs1
Integer
604800 (one week)
Age of file, in seconds, at which output rolls over to a new log file
A value of -1 denotes an unlimited number of seconds (no rollover based on file age).
imq.log.syslog.output2
String
ERROR
Categories of logging information to write to syslogd(1M):
NONE
ERROR
WARNING
INFO
ALLThe 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.facility2
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_LOCAL7imq.log.syslog.identity2
String
imqbrokerd_${imq.instanceName}
Identity string to be prefixed to all messages logged to syslog
imq.log.syslog.logpid2
Boolean
true
Log broker process ID with message?
imq.log.syslog.logconsole2
Boolean
false
Write messages to system console if they cannot be sent to syslog?
imq.log.timezone
String
Local time zone
Time zone for log time stamps.
Possible values are the same as those used by the method java.util.TimeZone.getTimeZone. Examples:
GMT
GMT-8:00
America/LosAngeles
Europe/Rome
Asia/Tokyoimq.metrics.enabled
Boolean
true
Enable writing of metrics information to Logger?
Does not affect the production of metrics messages (controlled by imq.metrics.topic.enabled).
imq.metrics.interval
Integer
-1
Time interval, in seconds, at which to write metrics information to Logger
Does not affect the time interval for production of metrics messages (controlled by imq.metrics.topic.interval).
A value of -1 denotes an indefinite interval (never write metrics information to the Logger).
imq.metrics.topic.enabled
Boolean
true
Enable production of metrics messages to metric topic destinations?
If false, an attempt to subscribe to a metric topic destination will throw a client-side exception.
imq.metrics.topic.interval
Integer
60
Time interval, in seconds, at which to produce metrics messages to metric topic destinations
imq.metrics.topic.persist
Boolean
false
Are metrics messages sent to metric topic destinations persistent?
imq.metrics.topic.timetolive
Integer
300
Lifetime, in seconds, of metrics messages sent to metric topic destinations
1Can be used with imqcmd update bkr command
2Solaris platform only
Cluster Configuration PropertiesTable 14-9 lists the configuration properties related to broker clusters.
Table 14-9 Broker Properties for Cluster Configuration
Property
Type
Default
Description
imq.cluster.brokerlist1
String
None
List of broker addresses
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
imq.cluster.hostname2
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
imq.cluster.port2
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.
imq.cluster.transport1
String
tcp
Network transport protocol for cluster connection service
For secure, encrypted message delivery between brokers, set this property to ssl.
String
None
URL of cluster configuration file, if any
Examples:
http://webserver/imq/cluster.properties
(for a file on a Web server)
file:/net/mfsserver/imq/cluster.properties
(for a file on a shared drive)
imq.cluster.masterbroker1
String
None
Host name and port number of cluster’s master broker, if any
The value has the form hostName:portNumber, where hostName is the host name of the master broker and portNumber is its Port Mapper port number. Example:
ctrlhost:7676
1Must have the same value for all brokers in a cluster
2Can be specified independently for each broker in a cluster
3Can be used with imqcmd update bkr command
Alphabetical List of Broker PropertiesTable 14-10 is an alphabetical list of broker configuration properties, with cross-references to the relevant tables in this chapter.