第 16 章
受管理对象属性参考
本章提供了有关受管理对象属性的参考信息。本章包含以下各节:
连接工厂属性
连接工厂对象的属性分为不同类别,如以下各节所述:
连接处理
表 16-1 列出了用于连接处理的连接工厂属性。
表 16-1 用于连接处理的连接工厂属性
属性
|
类型
|
默认值
|
描述
|
imqAddressList
|
字符串
|
现有的 Message Queue 3.0 地址(如果有);如果没有,则使用表 16-2 中的第一个条目。
|
代理地址列表
该列表包含由逗号分隔的一个或多个消息服务器地址。每个地址指定(或表示)客户端可以连接的代理实例的主机名、端口号和连接服务。地址语法因连接服务及端口分配方法而异;有关详细信息,请参见下文。
|
imqAddressListBehavior
|
字符串
|
PRIORITY
|
尝试连接到服务器地址的顺序:
PRIORITY 地址列表中指定的顺序
RANDOM 随机顺序
注:如果多个客户端共享同一连接工厂,则指定随机连接顺序可防止所有客户端尝试连接到同一地址。
|
imqAddressListIterations
|
整数
|
5
|
重复访问地址列表以尝试建立或重新建立连接的次数。
值为 -1 表示不限制重复次数。
|
imqPingInterval
|
整数
|
30
|
测试客户端与代理之间的连接的时间间隔(以秒为单位)
如果值为 0 或 -1,则禁止定期测试连接。
|
imqReconnectEnabled
|
布尔值
|
false
|
是否尝试重新建立断开的连接?
|
imqReconnectAttempts
|
整数
|
0
|
尝试连接(或重新连接)到地址列表中每个地址的次数,超过该次数后,将移动到下一个地址。
值为 -1 表示不限制连接尝试次数;将反复尝试连接到第一个地址,直至成功。
|
imqReconnectInterval
|
长整型
|
3000
|
两次重新连接尝试的时间间隔(以毫秒为单位)。
此值适用于针对给定地址的连续尝试,也适用于列表中的连续地址。
注:此值过小可能会导致代理没有足够的恢复时间;而此值过大则可能会导致无法接受的连接延迟。
|
imqSSLIsHostTrusted
|
布尔值
|
true
|
是否接受代理的自签名验证证书?
注:要使用来自证书颁发机构的签名证书,请将此属性设置为 false。
|
imqAddressList 属性的值是由逗号分隔的字符串,它指定要连接的一个或多个消息服务器地址。每个地址的一般语法如下:
scheme://address
其中 scheme 标识表 16-2 第一列中所示的寻址方案之一,address 表示服务器地址本身。用于指定地址的确切语法取决于寻址方案,如表中最后一列所示。
表 16-2 消息服务器寻址方案
方案
|
服务
|
语法
|
描述
|
mq
|
jms 或 ssljms
|
[hostName][:portNumber][/serviceName]
|
为 jms 或 ssljms 连接服务动态指定端口。
地址列表条目指定 Message Queue 端口映射器的主机名和端口号。端口映射器本身动态指定用于连接的端口。
默认值:
hostName = localhost portNumber = 7676 serviceName = jms
对于 ssljms 连接服务,必须明确指定所有变量。
|
mqtcp
|
jms
|
hostName:portNumber/jms
|
使用 jms 连接服务连接到指定端口。
绕过端口映射器,直接与指定的主机名和端口号建立 TCP 连接。
|
mqssl
|
ssljms
|
hostName:portNumber/ssljms
|
使用 ssljms 连接服务连接到指定端口。
绕过端口映射器,直接与指定的主机名和端口号建立安全的 SSL 连接。
|
http
|
httpjms
|
http://hostName:portNumber/contextRoot/tunnel
如果多个代理实例使用同一隧道 Servlet,则使用以下语法将会连接到特定代理实例而非随机选择的实例:
http://hostName:portNumber/contextRoot/tunnel? ServerName=hostName:instanceName
|
使用 httpjms 连接服务连接到指定端口。
与位于指定 URL 的 Message Queue 隧道 Servlet 建立 HTTP 连接。必须将代理配置为访问 HTTP 隧道 Servlet。
|
https
|
httpsjms
|
https://hostName:portNumber/contextRoot/tunnel
如果多个代理实例使用同一隧道 Servlet,则使用以下语法将会连接到特定代理实例而非随机选择的实例:
https://hostName:portNumber/contextRoot/tunnel? ServerName=hostName:instanceName
|
使用 httpsjms 连接服务连接到指定端口。
与位于指定 URL 的 Message Queue 隧道 Servlet 建立安全的 HTTPS 连接。必须将代理配置为访问 HTTPS 隧道 Servlet。
|
表 16-3 显示了各种地址格式的示例。
表 16-3 消息服务器地址示例
服务
|
代理主机
|
端口
|
示例地址
|
未指定
|
未指定
|
未指定
|
无地址 (mq://localHost:7676/jms)
|
未指定
|
指定的主机
|
未指定
|
myBkrHost (mq://myBkrHost:7676/jms)
|
未指定
|
未指定
|
指定的端口映射器端口
|
1012 (mq://localHost:1012/jms)
|
ssljms
|
本地主机
|
标准的端口映射器端口
|
mq://localHost:7676/ssljms
|
ssljms
|
指定的主机
|
标准的端口映射器端口
|
mq://myBkrHost:7676/ssljms
|
ssljms
|
指定的主机
|
指定的端口映射器端口
|
mq://myBkrHost:1012/ssljms
|
jms
|
本地主机
|
指定的服务端口
|
mqtcp://localhost:1032/jms
|
ssljms
|
指定的主机
|
指定的服务端口
|
mqssl://myBkrHost:1034/ssljms
|
httpjms
|
不适用
|
不适用
|
http://websrvr1:8085/imq/tunnel
|
httpsjms
|
不适用
|
不适用
|
https://websrvr2:8090/imq/tunnel
|
客户端身份验证
表 16-4 列出了用于客户端身份验证的连接工厂属性。
表 16-4 用于客户端身份验证的连接工厂属性
属性
|
类型
|
默认值
|
描述
|
imqDefaultUsername
|
字符串
|
guest
|
用于通过代理验证的默认用户名
|
imqDefaultPassword
|
字符串
|
guest
|
用于通过代理验证的默认密码
|
imqConfiguredClientID
|
字符串
|
null
|
以管理方式配置的客户端标识符
|
imqDisableSetClientID
|
布尔值
|
false
|
是否阻止客户端使用 setClientID 方法更改客户端标识符?
|
可靠性和流控制
表 16-5 列出了用于可靠性和流控制的连接工厂属性。
表 16-5 用于可靠性和流控制的连接工厂属性
属性
|
类型
|
默认值
|
描述
|
imqAckTimeout
|
字符串
|
0
|
等待代理确认的最长时间(以毫秒为单位),超过该时间后,将抛出异常
值为 0 表示无超时(无限期等待)。
注:在某些情况下,此值过低可能会导致提前超时:例如,第一次使用安全 (SSL) 连接对照 LDAP 用户系统信息库来验证用户时需要 30 秒以上的时间。
|
imqConnectionFlowCount
|
整数
|
100
|
计量批中有效负荷消息的数量
达到此消息数后,会暂停向客户端传送有效负荷消息,以便传送堆积的所有控制消息。当收到客户端运行时通知时,将恢复有效负荷消息传送,直到再次达到该消息数为止。
值为 0 将禁用消息传送计量,这可能会因为有效负荷消息流量过大而导致 Message Queue 控制消息被阻塞。
|
imqConnectionFlowLimitEnabled
|
布尔值
|
false
|
是否在连接级别限制消息流?
|
imqConnectionFlowLimit
|
整数
|
1000
|
每个连接中可以传送和缓冲(以便使用)的最大消息数
如果待处理的未使用有效负荷消息数(受流计量的约束,流计量由 imqConnectionFlowCount 控制)超过此限制,连接中的消息传送将会停止。仅当待处理的消息数低于该限制时,才会恢复传送。这样可防止客户端因待处理消息太多而过载,从而导致内存不足。
如果 imqConnectionFlowLimitEnabled 为 false,则忽略此属性。
|
imqConsumerFlowLimit
|
整数
|
100
|
每个使用方可以传送和缓冲(以便使用)的最大消息数
对于给定的使用方,如果待处理的未使用有效负荷消息数超过此限制,将停止向该使用方传送消息。仅当该使用方的待处理消息数低于 imqConsumerFlowThreshold 指定的百分比时,才会恢复传送。使用此限制可以改进多个使用方之间的负载平衡,并防止同一连接上的任一使用方抢占其他使用方的流量。
如果为队列自身的 consumerFlowLimit 属性设置的值较低,则该值可以覆盖此限制(请参见第 15 章“物理目标属性参考”)。另请注意,针对连接上所有使用方的消息传送受 imqConnectionFlowLimit 指定的整体限制的约束。
|
imqConsumerFlowThreshold
|
整数
|
50
|
每个使用方可以在客户端运行时中缓冲的消息数(以 imqConsumerFlowLimit 百分比的形式指定),低于该百分比时将恢复消息传送。
|
队列浏览器及服务器会话
表 16-6 中列出了用于队列浏览和服务器会话的连接工厂属性。
表 16-6 用于队列浏览器和服务器会话的连接工厂属性
属性
|
类型
|
默认值
|
描述
|
imqQueueBrowserMaxMessagesPerRetrieve
|
整数
|
1000
|
在浏览队列目标的内容时一次检索的最大消息数
|
imqQueueBrowserRetrieveTimeout
|
长整型
|
60000
|
在浏览队列目标的内容时等待检索消息的最长时间(以毫秒为单位),超过此时间将会抛出异常。
|
imqLoadMaxToServerSession
|
布尔值
|
true
|
是否向服务器会话中加载最大数量的消息?
如果为 false,则客户端一次只加载一条消息。
此属性仅适用于 JMS 应用服务器工具。
|
设置标准消息属性
表 16-7 中列出的连接工厂属性控制 Message Queue 客户端运行时是否设置 Java 消息服务规范中定义的某些标准消息属性。
表 16-7 用于设置标准消息属性的连接工厂属性
属性
|
类型
|
默认值
|
描述
|
imqSetJMSXUserID
|
布尔值
|
false
|
是否为生成的消息设置 JMSXUserID 属性(发送消息的用户的标识)?
|
imqSetJMSXAppID
|
布尔值
|
false
|
是否为生成的消息设置 JMSXAppID 属性(发送消息的应用程序的标识)?
|
imqSetJMSXProducerTXID
|
布尔值
|
false
|
是否为生成的消息设置 JMSXProducerTXID 属性(生成消息的事务的事务标识符)?
|
imqSetJMSXConsumerTXID
|
布尔值
|
false
|
是否为使用的消息设置 JMSXConsumerTXID 属性(使用消息的事务的事务标识符)?
|
imqSetJMSXRcvTimestamp
|
布尔值
|
false
|
是否为使用的消息设置 JMSXRcvTimestamp 属性(消息传送到使用方的时间)?
|
消息头覆盖
表 16-8 列出了用于覆盖 JMS 消息头字段的连接工厂属性。
表 16-8 用于覆盖消息头的连接工厂属性
属性
|
类型
|
默认值
|
描述
|
imqOverrideJMSDeliveryMode
|
布尔值
|
false
|
是否允许覆盖客户端设置的传送模式?
|
imqJMSDeliveryMode
|
整数
|
2
|
传送模式的覆盖值:
1 非持久性
2 持久性
|
imqOverrideJMSExpiration
|
布尔值
|
false
|
是否允许覆盖客户端设置的到期时间?
|
imqJMSExpiration
|
长整型
|
0
|
到期时间的覆盖值(以毫秒为单位)
值为 0 表示不限制到期时间(消息永不过期)。
|
imqOverrideJMSPriority
|
布尔值
|
false
|
是否允许覆盖客户端设置的优先级?
|
imqJMSPriority
|
整数
|
4(标准)
|
优先级的覆盖值 (0 到 9)
|
imqOverrideJMSHeadersToTemporaryDestinations
|
布尔值
|
false
|
是否对临时目标应用覆盖值?
|
目标属性
表 16-9 中列出了可以为目标受管理对象设置的属性。
表 16-9 目标属性
属性
|
类型
|
默认值
|
描述
|
imqDestinationName
|
字符串
|
Untitled_Destination_Object
|
物理目标的名称
目标名称只能包含字母数字字符(不包括空格),并且必须以字母字符开头,或者以下划线 (_) 或美元符号 ($) 开头。目标名称不得以字符 mq 开头。
|
imqDestinationDescription
|
字符串
|
无
|
目标的描述性字符串
|
SOAP 端点属性
表 16-10 中列出了用于为使用简单对象访问协议 (Simple Object Access Protocol, SOAP) 的应用程序配置端点 URL 的属性;有关更多信息,请参见 Message Queue Developer's Guide for Java Clients。
表 16-10 SOAP 端点属性
属性
|
类型
|
默认值
|
描述
|
imqSOAPEndpointList
|
字符串
|
无
|
由一个或多个以空格分隔的 URL 组成的列表,这些 URL 表示要向其发送消息的 SOAP 端点。
每个 URL 都应该与一个可以接收和处理 SOAP 消息的 Servlet 关联。
示例:
http://www.serv1/ http://www.serv2/
如果该列表指定了多个 URL,则消息将广播到列表中的所有 URL。
|
imqEndpointName
|
字符串
|
Untitled_Endpoint_Object
|
SOAP 端点的名称
|
imqEndpointDescription
|
字符串
|
无
|
SOAP 端点的描述性字符串。
示例:
My endpoints for broadcast(用于接收广播消息的端点)
|