Sun Java System Message Queue 3 2005Q4 管理指南 |
第 14 章
代理属性参考本章提供了有关消息代理配置属性的参考信息。本章包含以下各节:
连接属性表 14-1 中列出了与连接服务相关的代理属性。
表 14-1 代理连接属性
属性
类型
默认值
描述
imq.service.activelist
字符串
jms,admin
代理启动时将激活的连接服务的列表,用逗号分隔。
imq.hostname
字符串
所有可用的 IP 地址
所有连接服务的默认主机名或 IP 地址
imq.portmapper.hostname
字符串
无
端口映射器的主机名或 IP 地址
如果指定,将覆盖 imq.hostname。
imq.portmapper.port1
整数
7676
端口映射器的端口号
注:如果多个代理实例在同一台主机上运行,则必须为每个实例指定一个唯一的端口映射器端口。
imq.serviceName.protocolType.hostname
字符串
无
连接服务的主机名或 IP 地址2
如果指定,将覆盖指定连接服务的 imq.hostname。
imq.serviceName.protocolType.port
整数
0
连接服务的端口号2
值为 0 表示应该由端口映射器动态分配端口号。
imq.portmapper.backlog
整数
50
操作系统待办事项中处于待处理状态的端口映射器请求的最大数量。
imq.serviceName.threadpool_model
字符串
dedicated
线程池管理的线程处理模型:
dedicated 每个连接有两个专用线程,一
个用于传入消息,另一个用于
传出消息shared3 在发送或接收消息时,连接由
共享线程处理专用模型会限制可以支持的连接数,但能提供较高的性能;共享模型可以增加可用连接数,但由于线程管理需要额外的开销,因此会导致性能下降。
imq.serviceName.min_threads
整数
jms: 10
ssljms: 10
httpjms: 10
httpsjms: 10
admin: 4
ssladmin: 4连接服务的线程池中维护的最小线程数
当可用线程数超出此阈值时,将会关闭空闲线程,直到达到最小线程数。
如表中所示,默认值因连接服务而异。
imq.serviceName.max_threads
整数
jms: 1000
ssljms: 500
httpjms: 500
httpsjms: 500
admin: 10
ssladmin: 10线程数量,达到该数量后,新的线程将不会被添加到线程池中供命名的连接服务使用。该数必须大于零,并且必须大于 min_threads 的值。
如表中所示,默认值因连接服务而异。
imq.shared.connectionMonitor_limit
整数
Solaris:512
Linux:512
Windows:64分配器线程监视的最大连接数4
系统会分配足够多的分配器线程来监视所有连接。此属性的值越小,为活动连接指定线程的速度越快。值为 -1 表示不限制每个线程的连接数。
如表中所示,默认值因操作系统平台而异。
imq.ping.interval
整数
120
测试客户端与代理之间的连接的时间间隔(以秒为单位)
如果值为 0 或 -1,将禁止定期测试连接。
1可用于 imqcmd update bkr 命令。
2仅限于 jms、ssljms、admin 和 ssladmin 服务;有关配置 httpjms 和 httpsjms 服务的信息,请参见附录 C“HTTP/HTTPS 支持”。
3仅限于 jms 和 admin 服务
4仅适用于共享线程处理模型。
路由属性表 14-2 中列出了与路由服务相关的代理属性。表 14-3 中列出了用于配置目标自动创建功能的属性。
表 14-2 代理路由属性
属性
类型
默认值
描述
imq.system.max_count1
整数
-1
代理保存的最大消息数
值为 -1 表示不限制消息数量。
imq.system.max_size1
字符串
-1
代理保存的消息总量的最大值
可以使用以下后缀(分别表示字节、千字节或兆字节)来表示该值:
b 字节
k 千字节(1024 字节)
m 兆字节(1024 x 1024 = 1,048,576 字节)不带后缀的值用字节表示;值为 -1 表示不限制消息容量。
示例:
1600 1600 字节
1600b 1600 字节
16k 16 千字节(= 16,384 字节)
16m 16 兆字节(= 16,777,216 字节)
-1 无限制imq.message.max_size1
字符串
70m
单个消息主体的最大大小
语法与 imq.system.max_size 的语法相同(请参见上文)。
imq.message.expiration.interval
整数
60
回收过期消息的时间间隔(以秒为单位)
imq.resourceState.threshold
整数
green: 0
yellow: 80
orange: 90
red: 98
触发内存资源状态的占用百分比(其中 resourceState 为 green、yellow、orange 或 red)
imq.resourceState.count
整数
green: 5000
yellow:500
orange: 50
red: 0
在检查是否达到内存资源状态阈值之前,允许在一批中传入的最大消息数(其中 resourceState 为 green、yellow、orange 或 red)
当系统内存越来越不足时,此限制可以限制消息生成方的数量。
imq.destination.DMQ.truncateBody1
布尔值
false
在存储到停用消息队列之前是否删除消息主体?
如果为 true,则仅保存消息头和属性数据。
imq.transaction.autorollback
布尔值
false
是否自动回滚在代理启动时处于 PREPARED 状态的分布式事务?
如果为 false,则必须使用命令实用程序 (imqcmd) 手动提交或回滚事务。
1可用于 imqcmd update bkr 命令。
表 14-3 自动创建目标的代理属性
属性
类型
默认值
描述
布尔值
true
是否允许自动创建队列目标?
imq.autocreate.topic3
布尔值
true
是否允许自动创建主题目标?
imq.autocreate.destination.maxNumMsgs
整数
100000
未使用消息的最大数量
值为 -1 表示不限制消息数量。
imq.autocreate.destination.maxBytesPerMsg
字符串
10k
任何单个消息的最大大小(以字节为单位)
可以使用以下后缀(分别表示字节、千字节或兆字节)来表示该值:
b 字节
k 千字节(1024 字节)
m 兆字节(1024 x 1024 = 1,048,576 字节)不带后缀的值用字节表示;值为 -1 表示不限制消息大小。
示例:
1600 1600 字节
1600b 1600 字节
16k 16 千字节
(= 16,384 字节)
16m 16 兆字节
(= 16,777,216 字节)
-1 无限制imq.autocreate.destination.maxTotalMsgBytes
字符串
10m
未使用的消息最多可以占用的内存总量(以字节为单位)
语法与 imq.autocreate.destination.
maxBytesPerMsg 的语法相同(请参见上文)。imq.autocreate.destination.limitBehavior
字符串
REJECT_NEWEST
当达到内存限制的阈值时,代理的行为如下:
FLOW_CONTROL
降低生成方速度REMOVE_OLDEST
丢弃最旧的
消息REMOVE_LOW_PRIORITY
根据消息的存在时间
丢弃优先级最低的
消息;
不通知
生成方客户端REJECT_NEWEST
拒绝最新的消息;
仅当消息为持久性消息时,
才通知生成方客户端,
并报告异常如果值为 REMOVE_OLDEST 或 REMOVE_LOW_PRIORITY,且 imq.autocreate.destination.
useDMQ 属性为 true,则会将超出限制的消息移动到停用消息队列中。imq.autocreate.destination.maxNumProducers
整数
100
目标的消息生成方的最大数量
当达到此限制时,将无法创建新的生成方。值为 -1 表示不限制生成方数量。
imq.autocreate.queue.maxNumActiveConsumers2
整数
1
在来自队列目标的负载平衡传送中活动消息使用方的最大数量
值为 -1 表示不限制使用方数量。
imq.autocreate.queue.maxNumBackupConsumers2
整数
0
在来自队列目标的负载平衡传送中备份消息使用方的最大数量
值为 -1 表示不限制使用方数量。
imq.autocreate.queue.consumerFlowLimit2
整数
1000
在一批中传送给队列使用方的最大消息数
在负载平衡队列传送中,此值为负载平衡开始之前路由到活动使用方的队列消息的初始数量。目标使用方可以通过在连接中指定一个较小的值来覆盖此限制。
值为 -1 表示不限制使用方数量。
imq.autocreate.topic.consumerFlowLimit3
整数
1000
在一批中传送给主题使用方的最大消息数
值为 -1 表示不限制使用方数量。
imq.autocreate.destination.isLocalOnly
布尔值
false
仅限本地传送?
此属性仅适用于代理群集中的目标,目标一旦创建后,此属性即无法更改。如果为 true,将不在其他代理上复制目标,并限制目标只将消息传送到本地使用方(那些连接到创建该目标的代理的使用方)。
imq.autocreate.queue.localDeliveryPreferred2
布尔值
false
是否首选本地传送?
此属性仅适用于代理群集中的负载平衡队列传送。如果为 true,则只有在本地代理中不存在使用方时,才会将消息传送给远程使用方;不得将目标限制为仅本地传送(imq.autocreate.destination.
isLocalOnly 必须为 false)。imq.autocreate.destination.useDMQ
布尔值
true
是否将停用消息发送到停用消息队列?
如果为 false,将会丢弃停用消息。
1可用于 imqcmd update bkr 命令。
2仅限于队列目标。
3仅限于主题目标
持久性属性Message Queue 支持使用基于文件和基于 JDBC 的模型来存储持久性数据。代理属性 imq.persist.store(表 14-4)指定要使用的模型。以下各节介绍了这两种模型的代理配置属性。
基于文件的持久性
表 14-5 中列出了与基于文件的持久性相关的代理属性。
基于 JDBC 的持久性
表 14-6 中列出了与基于 JDBC 的持久性相关的代理属性。给出的示例适用于 DataMirror Mobile Solutions, Inc. 提供的 PointBase® 数据库产品系列。
安全属性表 14-7 中列出了与安全服务相关的代理属性。
表 14-7 安全属性
属性
类型
默认值
描述
imq.accesscontrol.enabled
布尔值
true
是否使用访问控制?
如果为 true,系统将检查访问控制属性文件,以验证是否允许经过验证的用户使用连接服务或执行与特定目标有关的特定操作。
imq.serviceName.accesscontrol.enabled
布尔值
无
是否为连接服务使用访问控制?
如果指定,则覆盖指定连接服务的 imq.accesscontrol.
enabled。如果为 true,系统将检查访问控制属性文件,以验证是否允许经过验证的用户使用指定的连接服务或执行与特定目标有关的特定操作。
imq.accesscontrol.file.filename
字符串
accesscontrol.properties
访问控制属性文件的名称
文件名指定了相对于访问控制目录的路径(请参见附录 A)。
imq.serviceName.accesscontrol.file.filename
字符串
无
连接服务的访问控制属性文件的名称
如果指定,则覆盖指定连接服务的 imq.accesscontrol.
file.filename。文件名指定了相对于访问控制目录的路径(请参见附录 A)。
imq.authentication.type
字符串
digest
密码编码方法:
basic Base-64
digest MD5imq.serviceName.authentication.type
字符串
无
连接服务的密码编码方法:
basic Base-64
digest MD5如果指定,则覆盖指定连接服务的 imq.authentication.
type。imq.authentication.basic.user_repository
字符串
file
base-64 验证的用户系统信息库类型:
file 基于文件
ldap LDAPimq.authentication.client.response.timeout
整数
180
等待客户端响应验证请求的时间间隔(以秒为单位)。
imq.passfile.enabled
布尔值
false
是否从密码文件获取密码?
imq.passfile.dirpath
字符串
请参见附录 A
包含密码文件的目录的路径
imq.passfile.name
字符串
passfile
密码文件的名称
imq.imqcmd.password
字符串
无
管理用户的密码。
命令实用程序 (imqcmd) 在执行命令前使用此密码验证用户。
imq.user_repository.ldap.server
字符串
无
LDAP 服务器的主机名和端口号
该值的格式为:
hostName:port
其中 hostName 是运行 LDAP 服务器的主机的全限定 DNS 名称,而 port 是服务器使用的端口号。
要指定故障转移服务器列表,请使用下面的语法:
host1:port1
ldap://host2:port2
ldap://host3:port3
...列表中的条目用空格分隔。请注意,每个故障转移服务器地址均带有 ldap:// 前缀。即使您使用 SSL 并将属性 imq.user_repository.ldap.ssl.enabled 设置为 true,也请使用此格式。您无需在地址中指定 ldaps。
imq.user_repository.ldap.principal
字符串
无
用于绑定到 LDAP 用户系统信息库的标识名
如果 LDAP 服务器允许匿名搜索,则无需此标识名。
imq.user_repository.ldap.password
字符串
无
用于绑定到 LDAP 用户系统信息库的密码
如果 LDAP 服务器允许匿名搜索,则无需此密码。
应仅在密码文件中指定此属性。
imq.user_repository.ldap.propertyName
待定
待定
待定
imq.user_repository.ldap.base
字符串
无
LDAP 用户条目的目录库
imq.user_repository.ldap.uidattr
字符串
无
LDAP 用户名的特定于提供者的属性标识符
imq.user_repository.ldap.usrfilter
字符串
无
(可选)用于 LDAP 用户搜索的 JNDI 过滤器
imq.user_repository.ldap.grpsearch
布尔值
false
是否启用 LDAP 组搜索?
注: Message Queue 不支持嵌套组。
imq.user_repository.ldap.grpbase
字符串
无
LDAP 组条目的目录库。
imq.user_repository.ldap.gidattr
字符串
无
LDAP 组名的特定于提供者的属性标识符。
imq.user_repository.ldap.memattr
字符串
无
LDAP 组中用户名的特定于提供者的属性标识符
imq.user_repository.ldap.grpfilter
字符串
无
(可选)用于 LDAP 组搜索的 JNDI 过滤器
imq.user_repository.ldap.timeout
整数
280
LDAP 搜索的时间限制(以秒为单位)
imq.user_repository.ldap.ssl.enabled
布尔值
false
与 LDAP 服务器通信时是否使用 SSL?
imq.keystore.file.dirpath
字符串
请参见附录 A
包含密钥库文件的目录的路径
imq.keystore.file.name
字符串
keystore
密钥库文件的名称
imq.keystore.password
字符串
无
密钥库文件的密码
应仅在密码文件中指定此属性。
imq.audit.enabled
布尔值
false
是否启动代理日志文件的审计日志?
此选项仅适用于 Message Queue Enterprise Edition。
监视属性表 14-8 中列出了与监视服务相关的代理属性。
表 14-8 代理监视属性
属性
类型
默认值
描述
imq.log.level1
字符串
INFO
日志记录级别
指定可以写入输出通道的日志记录信息的类别。可能的值为(由高至低):
ERROR
WARNING
INFO每个级别都包括高于它的级别(例如,WARNING 包括 ERROR)。
imq.destination.logDeadMsgs1
布尔值
false
是否记录有关停用消息的信息?
如果为 true,将记录以下事件:
imq.log.console.stream
字符串
ERR
控制台输出的目标:
OUT stdout
ERR stderrimq.log.console.output
字符串
ERROR|WARNING
可以写入控制台的日志记录信息的类别:
NONE
ERROR
WARNING
INFO
ALLERROR、WARNING 和 INFO 类别不包括高于它们的类别,因此必须根据需要明确指定每个类别。可以指定用竖线 (|) 分隔的任意类别组合。
imq.log.file.dirpath
字符串
请参见附录 A
包含日志文件的目录的路径
imq.log.file.filename
字符串
log.txt
日志文件的名称
imq.log.file.output
字符串
ALL
可以写入日志文件的日志记录信息的类别:
NONE
ERROR
WARNING
INFO
ALLERROR、WARNING 和 INFO 类别不包括高于它们的类别,因此必须根据需要明确指定每个类别。可以指定用竖线 (|) 分隔的任意类别组合。
imq.log.file.rolloverbytes1
整数
-1
文件长度(以字节为单位),达到该值后,输出将转移到新的日志文件。
值为 -1 表示不限制字节数(不基于文件长度转移输出)。
imq.log.file.rolloversecs1
整数
604800(一周)
文件的生存期(以秒为单位),达到该值后,输出将转移到新的日志文件。
值为 -1 表示不限制秒数(不基于文件生存期转移输出)。
imq.log.syslog.output2
字符串
ERROR
可以写入 syslogd(1M) 的日志记录信息的类别:
NONE
ERROR
WARNING
INFO
ALLERROR、WARNING 和 INFO 类别不包括高于它们的类别,因此必须根据需要明确指定每个类别。可以指定用竖线 (|) 分隔的任意类别组合。
imq.log.syslog.facility2
字符串
LOG_DAEMON
用于记录消息的 syslog 工具
可能的值镜像 syslog(3C) 手册页中列出的值。适用于 Message Queue 的值包括:
LOG_USER
LOG_DAEMON
LOG_LOCAL0
LOG_LOCAL1
LOG_LOCAL2
LOG_LOCAL3
LOG_LOCAL4
LOG_LOCAL5
LOG_LOCAL6
LOG_LOCAL7imq.log.syslog.identity2
字符串
imqbrokerd_${imq.instanceName}
标识字符串,该字符串将被加到记录到 syslog 中的每条消息的前面。
imq.log.syslog.logpid2
布尔值
true
是否将代理进程 ID 与消息一起记录?
imq.log.syslog.logconsole2
布尔值
false
如果无法将消息发送到 syslog,是否将其写入系统控制台?
imq.log.timezone
字符串
当地时区
日志时间戳的时区。
可能的值与方法 java.util.TimeZone.getTimeZone 使用的值相同。示例:
GMT
GMT-8:00
America/LosAngeles
Europe/Rome
Asia/Tokyoimq.metrics.enabled
布尔值
true
是否将度量信息写入记录程序?
不影响度量消息的生成(由 imq.metrics.topic.enabled 控制)。
imq.metrics.interval
整数
-1
将度量信息写入记录程序的时间间隔(以秒为单位)。
不影响度量消息生成的时间间隔(由 imq.metrics.topic.interval 控制)。
值为 -1 表示时间间隔为无限长(永不将度量信息写入记录程序)。
imq.metrics.topic.enabled
布尔值
true
是否向度量主题目标中生成度量消息?
如果为 false,则试图订阅度量主题目标时会抛出客户端异常。
imq.metrics.topic.interval
整数
60
向度量主题目标中生成度量消息的时间间隔(以秒为单位)
imq.metrics.topic.persist
布尔值
false
发送到度量主题目标的度量消息是否为永久性消息?
imq.metrics.topic.timetolive
整数
300
发送到度量主题目标的度量消息的生命周期(以秒为单位)
1可用于 imqcmd update bkr 命令
2仅限于 Solaris 平台
群集配置属性表 14-9 中列出了与代理群集相关的配置属性。
表 14-9 群集配置的代理属性
属性
类型
默认值
描述
imq.cluster.brokerlist1
字符串
无
代理地址的列表
该列表中包含一个或多个用逗号分隔的地址。每个地址指定了群集中某个代理的主机名和端口映射器端口号,格式为 hostName:portNumber。示例:
host1:3000,host2:8000,ctrlhost
imq.cluster.hostname2
字符串
无
cluster 连接服务的主机名或 IP 地址
如果指定,则覆盖 cluster 连接服务的 imq.hostname(请参见表 14-1)。
imq.cluster.port2
整数
0
cluster 连接服务的端口号
值为 0 表示应当由端口映射器动态分配端口号。
imq.cluster.transport1
字符串
tcp
cluster 连接服务的网络传输协议
要在代理之间实现安全、加密的消息传送,请将此属性设置为 ssl。
字符串
无
cluster 配置文件的 URL(如果有)
示例:
http://webserver/imq/cluster.properties
(对于 Web 服务器上的文件)
file:/net/mfsserver/imq/cluster.properties
(对于共享驱动器上的文件)
imq.cluster.masterbroker1
字符串
无
群集主代理的主机名和端口号(如果有)
该值的格式为 hostName:portNumber,其中 hostName 是主代理的主机名,portNumber 是它的端口映射器端口号。示例:
ctrlhost:7676
1群集中的所有代理必须具有相同的值。
2可以为群集中的每个代理单独指定。
3可用于 imqcmd update bkr 命令。
按字母顺序排列的代理属性列表表 14-10 是按字母顺序排列的代理配置属性列表,其中包含对本章中相关表的交叉引用。