连接工厂对象的属性分为不同类别,如以下各节所述:
表 16–1 列出了用于连接处理的连接工厂属性。
表 16–1 用于连接处理的连接工厂属性
属性 |
类型 |
默认值 |
描述 |
---|---|---|---|
字符串 |
现有的 Message QueueTM 3.0 地址(如果有);如果没有,则使用表 16–2 中的第一个条目。 |
代理地址的列表 该列表中包含一个或多个用逗号分隔的代理地址。每个地址指定(或表示)客户端可以连接的代理实例的主机名、端口号和连接服务。地址语法因连接服务及端口分配方法而异;有关详细信息,请参见下文。 |
|
字符串 |
PRIORITY |
尝试连接到代理地址的顺序: PRIORITY:地址列表中指定的顺序 RANDOM:随机顺序 注 – 如果多个客户端共享同一连接工厂,则指定随机连接顺序可防止所有客户端尝试连接到同一地址。 |
|
整数 |
5 |
重复访问地址列表以尝试建立或重新建立连接的次数。 值为 -1 表示不限制重复次数。 |
|
imqPingInterval |
整数 |
30 |
测试客户端与代理之间的连接的时间间隔(以秒为单位) 如果值为 0 或 -1,将禁止定期测试连接。 |
布尔值 |
false |
是否尝试重新建立断开的连接? |
|
整数 |
0 |
尝试连接(或重新连接)到地址列表中每个地址的次数,超过该次数后,将移动到下一个地址。 值为 -1 表示不限制尝试连接尝试次数:将反复尝试连接到第一个地址,直至成功。 |
|
长整型 |
3000 |
两次重新连接尝试的时间间隔(以毫秒为单位)。 此值适用于针对给定地址的连续尝试,也适用于列表中的连续地址。 注 – 此值过小可能会导致代理没有足够的恢复时间;而此值过大则可能会导致无法接受的连接延迟。 |
|
布尔值 |
true |
是否信任代理提供的任何证书? 如果为 false, 则 Message Queue 客户端运行时环境将验证所有提供给它的证书。如果证书的签名不在客户端的信任存储库中,验证将失败。 如果为 true,则跳过证书验证。这在使用自签名证书的软件测试期间非常有用。 注意:要使用来自证书颁发机构的签名证书,请将此属性设置为 false。 |
imqAddressList 属性的值是由逗号分隔的字符串,它指定要连接的一个或多个代理地址。 每个地址的一般语法如下:
scheme://address
其中 scheme 标识表 16–2 第一列中所示的某个寻址方案, address 表示代理地址本身。 用于指定地址的确切语法取决于寻址方案,如表中最后一列所示。
表 16–2 消息代理寻址方案表 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 用于客户端身份验证的连接工厂属性
属性 |
类型 |
默认值 |
描述 |
---|---|---|---|
字符串 |
guest |
用于通过代理验证的默认用户名 |
|
字符串 |
guest |
用于通过代理验证的默认密码 |
|
字符串 |
null |
以管理方式配置的客户端标识符 |
|
布尔值 |
false |
是否阻止客户端使用 setClientID 方法更改客户端标识符? |
表 16–5 列出了用于可靠性和流控制的连接工厂属性。
表 16–5 用于可靠性和流控制的连接工厂属性
属性 |
类型 |
默认值 |
描述 |
---|---|---|---|
字符串 |
0 |
等待代理确认的最长时间(以毫秒为单位),超过该时间后,将抛出异常 值为 0 表示无超时(无限期等待)。 注 – 在某些情况下,此值过低可能会导致提前超时:例如,第一次使用安全 (SSL) 连接对照 LDAP 用户系统信息库来验证用户时需要 30 秒以上的时间。 |
|
整数 |
100 |
计量批中有效负荷消息的数量 达到此消息数后,会暂停向客户端传送有效负荷消息,以便传送堆积的所有控制消息。当收到客户端运行时环境通知时,将恢复有效负荷消息传送,直到再次达到该消息数为止。 值为 0 将禁用消息传送计量,这可能会因为有效负荷消息流量过大而导致 Message Queue 控制消息被阻塞。 |
|
布尔值 |
false |
是否在连接级别限制消息流? |
|
整数 |
1000 |
每个连接中可以传送和缓冲(以便使用)的最大消息数 如果待处理的未使用有效负荷消息数(受流计量的约束,流计量由 imqConnectionFlowCount 控制)超过此限制,连接中的消息传送将会停止。 仅当待处理的消息数低于该限制时,才会恢复传送。这样可防止客户端因待处理消息太多而过载,从而导致内存不足。 如果 imqConnectionFlowLimitEnabled 为 false,则忽略此属性。 |
|
整数 |
100 |
每个使用方可以传送和缓冲(以便使用)的最大消息数 对于给定的使用方,如果待处理的未使用有效负荷消息数超过此限制,将停止向该使用方传送消息。 仅当该使用方的待处理消息数低于 imqConsumerFlowThreshold 指定的百分比时,才会恢复传送。 使用此限制可以改进多个使用方之间的负载平衡,并防止同一连接上的任一使用方抢占其他使用方的流量。 如果为队列自身的 consumerFlowLimit 属性设置的值较低,则该值可以覆盖此限制(请参见第 15 章,物理目的地属性参考)。另请注意,针对连接上所有使用方的消息传送受 imqConnectionFlowLimit 指定的整体限制的约束。 |
|
整数 |
50 |
每个使用方可以在客户端运行时环境中缓冲的消息数(以 imqConsumerFlowLimit 百分比的形式指定),低于该百分比时将恢复消息传送。 |
表 16–6 中列出了用于队列浏览和服务器会话的连接工厂属性。
表 16–6 用于队列浏览器和服务器会话的连接工厂属性
属性 |
类型 |
默认值 |
描述 |
---|---|---|---|
整数 |
1000 |
在浏览队列目的地的内容时一次检索的最大消息数 注 – 该属性不影响浏览消息的总数,只影响它们分块发送给客户端运行时环境的方式(数量少但较大的块还是数量多但较小的块)。客户端应用程序将总是接受队列中的所有消息。更改属性的值可能会影响性能,但不会影响检索到的数据的总量。 |
|
长整型 |
60000 |
在浏览队列目的地的内容时等待检索消息的最长时间(以毫秒为单位),超过此时间将会抛出异常。 |
|
布尔值 |
true |
是否向服务器会话中加载最大数量的消息? 如果为 false,则客户端一次只加载一条消息。 |
表 16–7 中列出的连接工厂属性控制 Message Queue 客户端运行时环境是否设置 Java 消息服务规范中定义的某些标准消息属性。
表 16–7 用于设置标准消息属性的连接工厂属性
属性 |
类型 |
默认值 |
描述 |
---|---|---|---|
布尔值 |
false |
是否为生成的消息设置 JMSXUserID 属性(发送消息的用户的标识)? |
|
布尔值 |
false |
是否为生成的消息设置 JMSXAppID 属性(发送消息的应用程序的标识)? |
|
布尔值 |
false |
是否为生成的消息设置 JMSXProducerTXID 属性(生成消息的事务的事务标识符)? |
|
布尔值 |
false |
是否为使用的消息设置 JMSXConsumerTXID 属性(使用消息的事务的事务标识符)? |
|
布尔值 |
false |
是否为使用的消息设置 JMSXRcvTimestamp 属性(消息传送到使用方的时间)? |
表 16–8 列出了用于覆盖 JMS 消息头字段的连接工厂属性。
表 16–8 用于覆盖消息头的连接工厂属性
属性 |
类型 |
默认值 |
描述 |
---|---|---|---|
布尔值 |
false |
是否允许覆盖客户端设置的传送模式? |
|
整数 |
2 |
传送模式的覆盖值: 1 非持久性 2 持久性 |
|
布尔值 |
false |
是否允许覆盖客户端设置的到期时间? |
|
长整型 |
0 |
到期时间的覆盖值(以毫秒为单位) 值为 0 表示不限制到期时间(消息永不过期)。 |
|
布尔值 |
false |
是否允许覆盖客户端设置的优先级? |
|
整数 |
4(标准) |
优先级的覆盖值(0 到 9) |
|
布尔值 |
false |
是否对临时目的地应用覆盖值? |
表 16–9 中列出了可以为目的地受管理对象设置的属性。
表 16–9 目的地属性
属性 |
类型 |
默认值 |
描述 |
---|---|---|---|
字符串 |
Untitled_Destination_Object |
物理目的地的名称 目的地名称只能包含字母数字字符(不包括空格),并且必须以字母字符开头,或者以下划线 (_) 或美元符号 ($) 开头。目的地名称不得以字符 mq 开头。 |
|
字符串 |
无 |
目的地的描述性字符串 |
表 16–10 中列出了用于为使用简单对象访问协议 (Simple Object Access Protocol, SOAP) 的应用程序配置端点 URL 的属性;有关详细信息,请参见 Message Queue Developer's Guide for Java Clients。
表 16–10 SOAP 端点属性