第 16 章
受管理对象的属性参考
本章提供了有关受管理对象属性的参考信息。其中包含以下各节:
目标属性
表 16-1 列出了用于配置目标受管理对象的各种属性。
表 16-1 目标受管理对象的属性
属性名称
|
说明
|
类型
|
默认值
|
imqDestinationDescription
|
目标对象的说明。
|
字符串
|
无
|
imqDestinationName
|
物理目标的名称。
|
字符串
|
Untitled_Destination_Object
|
连接工厂属性
本节包含有关用于配置连接工厂受管理对象的属性的参考信息。属性可划分为以下类别:
表 16-2 是连接工厂受管理对象属性的索引。第一列按字母顺序列出了各个属性;第二列列出了其类别;第三列是描述各属性的表格的交叉参考。
连接处理
表 16-2 列出了用于连接处理的连接工厂属性。
表 16-2 连接工厂属性:连接处理
属性名称
|
说明
|
类型
|
默认值
|
imqAddressList
|
以逗号分隔的列表,其中包含一个或多个消息服务器地址。共有多种寻址方案,具体取决于您要使用的连接服务和端口分配方法。
有关如何指定地址列表的信息以及说明列表条目的示例,请参见 imqAddressList 属性值的语法。
|
字符串
|
现有的 Message Queue 3.0 地址(如果有),如果没有,则使用表 16-3 中的第一个条目。
|
imqAddressListBehavior
|
一个字符串,用来指定连接尝试是采用 imqAddressList 属性中的地址顺序 (PRIORITY),还是采用随机顺序 (RANDOM)。如果多个客户机使用同一连接工厂尝试连接,则可以使用随机顺序,以防止所有客户机都连接到同一地址。
|
字符串
|
PRIORITY
|
imqAddressListIterations
|
在尝试建立或重新建立连接时,客户机运行时重复访问 imqAddressList 的次数。值 -1 表示尝试次数是无限的。
|
整数
|
5
|
imqPingInterval
|
客户机运行时测试应用程序与代理之间连接情况的频率(以秒为单位)。
当值为 -1 或 0(零)时,将禁止客户机运行时定期测试连接。
|
整数
|
30
|
imqReconnectEnabled
|
一个布尔值,用来指定当连接断开时,客户机运行时是否应尝试重新连接到消息服务器(或 imqAddressList 中的地址列表)。
|
布尔值
|
false
|
imqReconnectAttempts
|
在客户机运行时转为尝试列表中的下一个地址之前,对 imqAddressList 中的每个地址尝试连接(或重新连接)的次数。当值为 -1 时,表明尝试重新连接的次数是无限的(客户机运行时将不断尝试连接到第一个地址,直到连接成功为止)。
|
整数
|
0(零)
|
imqReconnectInterval
|
两次重新连接尝试的时间间隔(以毫秒为单位)。此值适用于对 imqAddressList 中每个地址的尝试,也适用于对列表中连续地址的尝试。如果此值过小,代理将没有足够的恢复时间。如果此值过大,则重新连接可能出现无法接受的延迟。
|
长型
|
3000(毫秒)
|
imqSSLIsHostTrusted
|
一个布尔值,用来指定客户机是否可以接受代理的自签名证书。要使用证书颁发机构的签名证书,请将此值设置为 false。
|
布尔值
|
true
|
imqAddressList 属性值的语法
imqbrokerlist 值中的每个地址对应于客户机运行时可以连接的一个代理实例。
对于每个连接服务,请指定不同的代理地址。其语法通常如下所示:
scheme://address_syntax
要在列表中添加地址,请先添加一个逗号,然后再添加其他地址。列表可以包含任意数量的条目,其格式如下:
scheme://address_syntax,scheme://address_syntax...
变量 scheme 用来指定您使用的是下列哪些寻址类型,如表 16-3 中所述:mq、mqtcp、mqssl、http 或 https。变量 address_syntax 表示特定方案的代理地址。表 16-3 列出了寻址方案。第一列包含寻址方案的名称;第二列显示与该名称相关的连接服务;第三列是说明;第四列提供要使用的语法。
表 16-3 imqAddressList 属性的寻址方案
方案
|
连接 服务
|
说明
|
语法
|
mq
|
ms ssljms
|
提供用于 jms 或 ssljms 服务的动态端口分配。
指定端口映射器主机和端口。端口映射器动态地分配用于连接的端口。
|
[hostName][:port][/serviceName]
对于 jms 连接服务,将应用以下默认值:
hostName = localhost port = 7676 serviceName = jms
对于 ssljms 连接服务,没有默认值。您必须指定所有变量。
|
mqtcp
|
jms
|
指定端口号并使用 jms 连接服务。
Message Queue 客户机运行时通过建立到指定主机和端口的 tcp 连接来建立连接。
|
hostName:port/jms
|
mqssl
|
ssljms
|
指定端口号并使用 ssljms 连接服务。
Message Queue 客户机运行时通过建立到指定主机和端口的安全 ssl 连接来建立连接。
|
port/ssljms
|
http
|
httpjms
|
使用 httpjms 连接服务。
客户机运行时建立到指定 URL 的 Message Queue 隧道 Servlet 的 HTTP 连接。必须将代理配置为访问 HTTP 隧道 Servlet。
|
http://hostName:port/contextRoot/tunnel
如果多个代理实例使用同一隧道 Servlet,则下面是连接到特定代理实例(而非随机选择的实例)的语法:
http://hostName:port/contextRoot /tunnel?ServerName=hostName:instanceName
|
https
|
httpsjms
|
使用 httpsjms 连接服务。
Message Queue 客户机运行时建立到指定 Message Queue 隧道 Servlet URL 的安全 HTTPS 连接。必须将代理配置为访问 HTTPS 隧道 Servlet。
|
https://hostName:port/contextRoot/tunnel
如果多个代理实例使用同一隧道 Servlet,则下面是连接到特定代理实例(而非随机选择的实例)的语法:
https://hostName:port/contextRoot/ tunnel?ServerName=hostName:instanceName
|
表 16-4 包含有关寻址格式的示例。第一列是连接服务的名称。第二列指定示例中的主机是本地主机、未指定的主机、指定的主机还是不适用。第三列指定示例中的端口是指定的、未指定的还是不适用;第四列是示例。
表 16-4 消息服务器地址示例
连接服务
|
代理主机
|
端口
|
示例地址
|
未指定
|
本地主机
|
未指定
|
默认值 (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-5 列出了用于客户机标识的连接工厂属性。
表 16-5 连接工厂属性:客户机标识
属性名称
|
说明
|
类型
|
默认值
|
imqDefaultUsername
|
用于验证代理的默认用户名。
|
字符串
|
guest
|
imqDefaultPassword
|
用于验证代理的默认密码。
|
字符串
|
guest
|
imqConfiguredClientID
|
以管理方式配置的客户机 ID。
|
字符串
|
null
|
imqDisableSetClientID
|
一个布尔值,用来指定是否阻止客户机使用 JMS API 中的 setClientID() 方法来更改客户机 ID。
|
布尔值
|
false
|
消息标题覆盖
表 16-6 列出了用于覆盖 JMS 消息标题字段的连接工厂属性。
表 16-6 连接工厂属性:消息标题覆盖
属性名称
|
说明
|
类型
|
默认值
|
imqOverrideJMSDeliveryMode
|
一个布尔值,用来指定能否覆盖客户设置的 JMSDeliveryMode 字段。
|
布尔值
|
false
|
imqJMSDeliveryMode
|
JMSDeliveryMode 的覆盖值。值为 1(非永久性)和 2(永久性)。
|
整数
|
2
|
imqOverrideJMSExpiration
|
一个布尔值,用来指定能否覆盖客户设置的 JMSExpiration 字段。
|
布尔值
|
false
|
imqJMSExpiration
|
JMSExpiration 的覆盖值(以毫秒为单位)。
|
长型
|
0 (不过期)
|
imqOverrideJMSPriority
|
一个布尔值,用来指定能否覆盖客户设置的 JMSPriority 字段。
|
布尔值
|
false
|
imqJMSPriority
|
JMSPriority 的覆盖值(0 到 9 的整数)。
|
整数
|
4(标准)
|
imqOverrideJMSHeadersTo TemporaryDestinations
|
一个布尔值,用来指定覆盖是否适用于临时目标。
|
布尔值
|
false
|
可靠性和流控制
表 16-7 列出了用于配置可靠性和流控制的连接工厂属性。
表 16-7 连接工厂属性:可靠性和流控制
属性名称
|
说明
|
类型
|
默认值
|
imqAckTimeout
|
客户机运行时在抛出异常前等待代理响应的最长时间(以毫秒为单位)。当值为 0 时表示无超时,客户机运行时将一直等待。
在某些情况下,此值可能过低而导致客户机运行时超时。例如,当代理使用 LDAP 用户系统信息库和安全 (SSL) 连接验证每个用户时,第一次验证所需的时间可能会超过 30 秒。
|
字符串
|
0
|
imqAckOnProduce
|
一个字符串,用来指定代理如何响应来自生产方客户机的消息。
如果将此属性设置为 true,代理将响应从生产方客户机接收到的所有 JMS 消息(持久性和非持久性消息)。在等待这些响应期间,生产方客户机线程将会阻塞。
如果未指定此属性,代理仅响应持久性消息。在等待这些响应期间,生产方客户机线程将会阻塞。
|
字符串
|
未指定
|
imqConnectionFlowCount
|
测量批中 JMS 消息的数量。当此数目的 JMS 消息传送到客户机运行时时,传送将被暂时挂起,允许传送任何已阻塞的控制消息。当收到客户机运行时通知时,有效负荷消息将继续进行传送,直到再次达到计数为止。
如果将计数设置为 0,则对测量批中 JMS 消息的数目没有限制。非零设置允许客户机运行时测量消息流,以使 Message Queue 控制消息不被繁忙的 JMS 消息传送阻塞。
|
整数
|
100
|
imqConnectionFlowLimit Enabled
|
一个布尔值,用来指定是否使用 imqConnectionFlowLimit 值来限制连接级别的消息流。
|
布尔值
|
false
|
imqConnectionFlowLimit
|
可通过连接传送并在客户机运行时中进行缓冲(等待被使用)的最大消息数。但请注意,除非启用 imqConnectionFlowIsLimited,否则不会检查此限制。
当传送到客户机运行时的 JMS 消息数(按照 imqConnectionFlowCount 控制的流量测量)超过此限制时,消息传送将停止。仅当未使用的消息数目低于使用此属性设置的值时,才会恢复消息传送。
此限制防止用很长时间处理消息的使用方客户机必须处理可能导致它内存不足的大量挂起消息。
|
整数
|
1000
|
imqConsumerFlowLimit
|
每个使用方可通过连接传送并在客户机运行时中进行缓冲(等待被使用)的最大消息数。此限制用来改进在多使用方队列传送情况下使用方之间的负荷平衡(向任何一个使用方发送的消息数都是均衡的)。可以使用在代理端为队列的 consumerFlowLimit 属性设置的较小值覆盖此限制(请参见 Message Queue 管理指南中有关目标属性的信息)。
此限制还有助于防止连接上的任一使用方迫使其他使用方断开连接。
当传送到客户机运行时的 JMS 消息数超过任何使用方的此限制时,将停止传送该使用方的消息。仅当该使用方的未使用消息数下降到低于 imqConsumerFlowThreshold 设置的值时才会恢复。
(请注意,如果为一个连接上所有使用方缓冲的消息总数超过 imqConnectionFlowLimit,则将停止通过此连接传送消息,直到消息总数降到连接限制以下。)
|
整数
|
100
|
imqConsumerFlow Threshold
|
每个使用方在客户机运行时中缓冲的消息数(以 imqConsumerFlowLimit 百分比的形式表示),低于此数值时将恢复使用方的消息传送。
|
整数
|
50
|
队列浏览器行为和服务器会话
表 16-8 描述影响客户机队列浏览的属性。
表 16-8 连接工厂属性:队列浏览器行为
属性名称
|
说明
|
类型
|
默认值
|
imqQueueBrowserMax MessagesPerRetrieve
|
客户机运行时在浏览队列目标的内容时一次检索的最大消息数。
|
整数
|
1000
|
imqQueueBrowserRetrieveTimeout
|
客户机运行时抛出异常之前在浏览队列目标内容时等待检索消息的最大时间值(以毫秒为单位)。
|
长型
|
60000
|
imqLoadMaxToServerSession
|
适用于 JMS 应用服务器工具,它是一个布尔值,用来指定 Message Queue 连接使用方是否应将 maxMessages 数量的消息加载到 ServerSession 会话中。如果为 false,则客户机一次只加载一条消息。
|
|
true
|
JMS 定义的属性支持
JMS 定义的属性是 JMS 保留的名称,JMS 提供者可以选择提供支持以增强客户机编程功能。表 16-9 描述了 Message Queue 所支持的 JMS 定义的属性。
表 16-9 连接工厂属性:JMS 定义的属性支持
属性名称
|
说明
|
类型
|
默认值
|
imqSetJMSXUserID
|
一个布尔值,用来指定是否要在生成的消息上设置 JMS 定义的属性 JMSXUserID(发送消息的用户标识)。
|
布尔值
|
false
|
imqSetJMSXAppID
|
一个布尔值,用来指定是否要在生成的消息上设置 JMS 定义的属性 JMSXAppID(发送消息的应用程序标识)。
|
布尔值
|
false
|
imqSetJMSXProducerTXID
|
一个布尔值,用来指定是否要在生成的消息上设置 JMS 定义的属性 JMSXProducerTXID(生成此消息的事务的事务标识符)。
|
布尔值
|
false
|
imqSetJMSXConsumerTXID
|
一个布尔值,用来指定是否要在使用的消息上设置 JMS 定义的属性 JMSXConsumerTXID(使用此消息的事务的事务标识符)。
|
布尔值
|
false
|
imqSetJMSXRcvTimestamp
|
一个布尔值,用来指定是否要在使用的消息上设置 JMS 定义的属性 JMSXRcvTimestamp(消息传送到使用方所需的时间)。
|
布尔值
|
false
|
SOAP 端点属性
表 16-10 列出了用于为使用 SOAP 的应用程序配置端点 URL 的属性。有关使用 SOAP 的应用程序的信息,请参见 Message Queue Developer's Guide for Java Clients 。
表 16-10 SOAP 端点属性
属性名称
|
说明
|
类型
|
默认值
|
imqSOAPEndpointList
|
由单个或多个以空格分隔的 URL 组成的列表,这些 URL 表示将消息发送到的 SOAP 端点。
如果指定多个 URL,则将消息广播到列表中的所有 URL。每个 URL 都应与一个 Servlet 相关联,该 Servlet 可以接收和处理 SOAP 消息。
示例:
http://www.myServlet/ http://www.myServlet2/
|
字符串
|
|
imqEndpointName
|
SOAP 端点的名称。
示例:MyTopicEndpoint
|
字符串
|
Untitled_ Endpoint_ Object
|
imqEndpointDescription
|
SOAP 端点说明。
示例:
"imqEndpointDescription=my endpoints for broadcast"
|
字符串
|
端点对象的说明
|