![]() | |
Sun Java System Message Queue 3 2005Q1 管理指南 |
第 8 章
管理受管理对象使用受管理对象可以开发供其他 JMS 提供者使用的客户机应用程序。受管理对象封装提供者特定的配置和命名信息。
通常,Message Queue 管理员为客户机应用程序创建受管理对象,以便在获取代理连接时使用。客户机应用程序使用连接将消息发送到物理目标,并从物理目标接收消息。
本章说明如何使用对象管理器实用程序 (imqobjmgr) 执行上述任务。由于这些任务涉及到了解您正在使用的对象存储库以及您正在创建的受管理对象的属性,本章在说明如何使用 imqobjmgr 管理受管理对象之前介绍了这两个主题的背景。
本章包含以下小节:
关于对象存储库受管理对象放置在便于访问的对象存储库中,客户机应用程序可以通过 JNDI 查找访问这些对象。可以使用两种类型的对象存储库:标准 LDAP 目录服务器和文件系统对象存储库。
LDAP 服务器对象存储库
对于生产型消息传送系统,建议使用 LDAP 服务器对象存储库。很多供应商都提供 LDAP 实现,而且 LDAP 实现可以在分布式系统中使用。LDAP 服务器还提供对生产环境特别有用的安全功能。
Message Queue 管理工具可以管理 LDAP 服务器上的对象存储库。不过,您可能需要按照 LDAP 服务器文档中的规定先配置 LDAP 服务器以存储 Java 对象并执行 JNDI 查找。
将 LDAP 服务器用作对象存储库时,需要指定表 8-1 中显示的属性。这些属性分为以下几类:
- 初始上下文:对于 LDAP 服务器对象存储库,该属性是固定的。
- 位置:按照 LDAP 服务器中的设置指定用于存储受管理对象的 URL 和目录路径。特别是,必须检查指定的路径是否存在。
- 安全信息:取决于 LDAP 提供者。应参见 LDAP 实现附带的文档,以决定是所有的操作都需要安全信息,还是只有更改存储数据的操作需要安全信息。
文件系统对象存储库
Message Queue 还支持文件系统对象存储库实现。文件系统对象存储库尚未进行完整测试,因此不建议用于生产系统。它的优势就是在开发环境中非常易于使用。您必须在本地文件系统中创建一个目录,而非设置一台 LDAP 服务器,。
不过,文件系统存储不能用作在多个计算机节点上配置的客户机的集中式对象存储库,除非这些客户机可以访问该对象存储库所在的目录。此外,任何可以访问这个目录的用户都可以使用 Message Queue 管理工具创建和管理受管理对象。
使用文件系统对象存储库时,需要指定表 8-2 中显示的属性。这些属性分为以下几类:
关于受管理对象的属性Message Queue 受管理对象有两种基本类型:
Message Queue 为创建和管理受管理对象提供了两个管理工具:命令行对象管理器实用程序 (imqobjmgr) 和 GUI 管理控制台。本章只介绍如何使用命令行。
受管理对象的属性是使用属性-值对指定的。
连接工厂属性
连接工厂配置将传送到连接工厂代表客户机应用程序所创建的所有连接。可以对连接进行配置以定义发送或接收消息的参与方,指定客户机运行时处理消息流的方式,以及自动为通过连接而发送的所有消息设置某些信息。
共有两种类型的连接工厂对象:
ConnectionFactory 和 XAConnectionFactory 对象共享同一属性集。
管理员或应用程序可以创建和配置连接工厂对象(用于建立原型或测试)。您可以使用 imqobjmgr 工具或管理控制台来设置连接工厂属性。
本节在以下部分中介绍连接工厂属性,各部分内容是按属性所影响的行为而编排的:
您最关心的属性是 imqAddressList,用它来指定客户机将与之建立连接的代理。添加连接工厂说明了在对象存储库中添加连接工厂受管理对象时如何指定这些属性。
有关连接工厂属性的参考信息,请参见第 16 章“受管理对象的属性参考”和适用于 Message Queue 类 com.sun.messaging.ConnectionConfiguration 的 JavaDoc API 文档。
连接处理
可以使用连接处理属性指定要连接的消息服务器地址,如果请求重新连接,则指定尝试重新连接的次数以及尝试的时间间隔。
客户机连接到的消息服务器的地址为所指定的 imqAddressList 属性值。消息服务器地址包含代理主机名、端口号和连接服务类型。
端口号可以是代理端口映射器所在的端口,也可以是某一特定连接服务所在的端口。如果指定了端口映射器端口,则端口映射器会动态为连接分配端口号。有关指定消息服务器地址的完整信息,请参见 imqAddressList 属性值的语法。
自动重新连接
在单个代理环境或多代理群集环境中,可以将连接处理属性设置为使客户机在连接失败时自动与代理重新连接。也可以配置重新连接过程。
重新连接功能提供连接故障转移,但不提供数据故障转移:客户机重新连接到其他代理实例时,出现故障或断开的代理所保存的持久性消息和其他状态信息可能会丢失。
如果启用了自动重新连接,则连接失败时,Message Queue 会使临时目标保持持久,因为客户机可能会重新连接并再次访问它们。在客户机重新连接并使用这些目标后,代理会将其删除。
重新连接的处理方式取决于客户机是连接到单个代理,还是连接到群集中的某个代理上。以下部分介绍了其中的每一种可能性。
重新连接到单个代理 要在连接失败时使客户机自动重新连接到代理,请设置以下连接工厂属性:
有关这些属性的完整参考信息,请参见连接处理。
重新连接到群集中的代理 在多代理群集环境中,如果为 imqAddressList 属性指定了多个地址,则自动重新连接会重复访问代理列表。列表中的所有代理必须均安装了 Message Queue Enterprise Edition。
如果客户机与列表中第一个地址的连接失败,则客户机运行时会尝试将该客户机重新连接到列表中的其他代理。如果该尝试失败,客户机运行时会连接列表中的其他代理,直到能重新连接客户机为止。
如果所有尝试都失败,客户机运行时会在指定的次数内循环访问列表,直到找到可用代理或者没有找到代理。imqAddressListBehavior 属性设置确定选择进行重新连接的代理是按地址列表中的地址顺序选择的,还是在该列表中随机选择的。
要使客户机能够重新连接到群集中的代理,请使用以下属性:
有关这些属性的完整参考信息,请参见连接处理。
连接 Ping
imqPingInterval 属性指定客户机运行时对代理执行 Ping 操作的频率。通过定期测试连接,客户机运行时可尽早检测到失败的连接。如果 Ping 操作失败,客户机运行时会向客户机应用程序的异常侦听器对象抛出异常。如果应用程序没有异常侦听器,则应用程序下次尝试使用连接会失败。
对于等待接收消息而不发送消息的使用方客户机应用程序而言,Ping 的使用尤其重要。否则,此类应用程序不知道连接何时失败。生成不常见消息的客户机也能利用该功能,因为它能够在需要发送消息前处理失败的连接。
默认情况下,将 Ping 的时间间隔设置为 30 秒。值 -1 表示禁用 Ping 操作。
对断开连接的响应因操作系统而异。例如,在某些操作系统中,Ping 立即报告连接失败。其他操作系统可能会继续尝试建立代理连接,连续缓冲 Ping,直到 Ping 成功或缓冲区溢出为止。
有关 imqPingInterval 属性的完整参考信息,请参见连接处理。
客户机标识
Message Queue 定义了一组连接工厂属性以支持客户机验证和唯一客户机 ID 设置(是长期订户所必需的)。
必须对尝试连接到代理的客户机进行验证。如果客户机在创建连接时未指定用户名或密码,则会出现以下情况之一:
此方案允许任何用户获得连接,这对于开发和测试非常方便。在生产系统中,只应为添加到用户系统信息库中的用户授予连接访问权限。
除了对请求连接的客户机进行代理验证外,JMS 规范还要求连接在必须保留客户机状态时提供唯一的客户机标识符。Message Queue 使用客户机 ID 来跟踪其长期订户。如果长期订户处于非活动状态,代理会为该订户保留消息,并在该订户再次处于活动状态时将消息传送给它。代理通过订户的客户机 ID 对其进行标识。
您可通过管理方式设置 ClientID,或者也可以通过客户机以编程方式对其进行设置。如果多个客户机从同一个连接工厂对象获取连接,则请设置该连接工厂的 ClientID。随后 Message Queue 可为从该工厂获取的每个连接提供唯一的 ClientID。
要确保唯一的 ClientID 值,请使用以下格式设置 imqConfiguredClientID 属性:
imqConfiguredClientID=${u}string
${u} 必须是该属性值的前四个字符。如果未遇到 "u",在创建连接时会出现 JMS 异常。
string 的值是要与该连接工厂生成的连接相关联的任意值,例如 Xconn。在用户验证阶段,Message Queue 使用 u:userName 替代 u。例如,如果与连接关联的用户是 Athena,为连接指定的字符串是 ${u}Xconn,则 ClientID 就是 u:AthenaXconn。
此方案确保连接工厂生成的每个连接(虽然它们在其他方面都是相同的)具有唯一的 ClientID。
在以下情况下,该方案不适用:如果两个客户机使用默认用户名(例如 guest)获得连接,则每个客户机的 ClientID 包含相同的组成部分 ${u}。在运行时,第一个请求连接的客户机将获得连接;而第二个请求连接的客户机不会获得连接,因为 MQ 无法创建具有非唯一 ClientID 的连接。
可以设置 imqDisableSetClientID 属性,以禁止使用连接工厂的客户机通过编程方式更改已配置的客户机 ID。
除非应用程序代码使用 setClientId() 方法,否则必须为长期订阅设置 imqConfiguredClientID 属性。
下面概括介绍了影响客户机标识的属性:
有关这些属性的完整参考信息,请参见客户机标识。
可靠性和流控制
客户机收发的消息以及 Message Queue 使用的控制消息通过同一客户机-代理连接进行传送。因此,如果控制消息(例如代理确认)的传送被 JMS 消息的传送阻挡,则可能会发生延迟。
您可以设置允许您管理与客户机消息流相对的控制消息流的连接工厂属性。控制这两种类型的消息流需要考虑可靠性和吞吐量之间的折衷。有关如何使用这些属性来管理流控制和可靠性的讨论,请参见客户机运行时消息流调整。
以下属性影响客户机消息流和控制消息流:
- imqAckTimeout。指定客户机运行时等待任何代理响应的最长时间(以毫秒为单位)。
- imqConnectionFlowCount。指定测量批中 JMS 消息的数量。
- imqConnectionFlowLimitEnabled。限制连接级别的消息流。
- imqConnectionFlowLimit。指定可以通过连接传送并在客户机运行时中缓冲(等待被使用)的消息数限制。
- imqConsumerFlowLimit。指定每个使用方可以通过连接传送并在客户机运行时中缓冲(等待被使用)的消息数限制。
- imqConsumerFlowThreshold。指定(以 imqConsumerFlowLimit 百分比的形式表示)每个使用方在客户机运行时中缓冲的消息数,低于此数值时将恢复使用方的消息传送。
有关这些属性的完整参考信息,请参见可靠性和流控制。
队列浏览器行为和服务器会话
以下属性影响客户机队列浏览:
有关这些属性的完整参考信息,请参见队列浏览器行为和服务器会话。
JMS 定义的属性支持
可以使用连接工厂属性自动在连接生成的消息上设置 JMS 定义的属性。JMS 属性是在 JMS 规范中定义的,位于 http://java.sun.com/products/jms/docs.html。
可以使用以下属性来设置 JMS 定义的属性:
- imqSetJMSXUserID。对于生成的消息,指定 Message Queue 是否设置了 JMS 定义的属性 JMSXUserID(发送消息的用户标识)。
- imqSetJMSXAppID。对于生成的消息,指定 Message Queue 是否设置 JMS 定义的属性 JMSXAppID(发送消息的应用程序标识)。
- imqSetJMSXProducerTXID。对于生成的消息,指定 Message Queue 是否设置 JMS 定义的属性 JMSXProducerTXID(生成消息的事务的事务标识)。
- imqSetJMSXConsumerTXID。对于使用的消息,指定 Message Queue 是否应该设置 JMS 定义的属性 JMSXConsumerTXID(使用消息的事务的事务标识)。
- imqSetJMSXRcvTimestamp。对于使用的消息,指定 Message Queue 是否应该设置 JMS 定义的属性 JMSXRcvTimestamp(将消息发送到使用方的时间)。
有关这些属性的完整参考信息,请参见 JMS 定义的属性支持。
JMS 消息标题覆盖
通过设置连接工厂的属性,可以覆盖 JMS 消息标题字段,这些字段指定了消息的持久性、生命周期以及优先级。这些设置用于由连接(从连接工厂获取的)所生成的所有消息。
可以覆盖以下 JMS 字段中的值:
有关上述字段的详细信息,请参见 JMS 规范,位于 http://java.sun.com/products/jms/docs.html。
因为覆盖消息标题可能会妨碍应用程序要求,所以只有在咨询了应用程序用户或设计者后才能使用此功能。
以下列表包含与消息覆盖有关的连接工厂属性。其中的大部分属性是成对的。在每一对属性中,第一个属性指定是否可以覆盖指定的标题字段,第二个属性指定覆盖值。
- imqOverrideJMSDeliveryMode 和 imqJMSDeliveryMode。第一个属性指定是否可以覆盖客户机设置的 JMSDeliveryMode 字段,第二个属性指定其覆盖值。
- imqOverrideJMSExpiration 和 imqJMSExpiration。第一个属性指定是否可以覆盖客户机设置的 JMSExpiration 字段,第二个属性指定其覆盖值。
- imqOverrideJMSPriority 和 imqJMSPriority。第一个属性指定是否可以覆盖客户机设置的 JMSPriority 字段,第二个属性指定其覆盖值。
- imqOverrideJMSHeadersToTemporaryDestinations。指定覆盖是否适用于临时目标。
有关这些属性的完整参考信息,请参见消息标题覆盖。
目标受管理对象的属性
表 16-1 列出了标识物理主题或队列目标的目标受管理对象的属性。添加主题或队列一节说明了如何在向对象存储库中添加目标受管理对象时指定这些属性。
最重要的属性是 imqDestinationName。这是您为与主题或队列受管理对象相对应的物理目标指定的名称。您也可以为目标提供说明,帮助您将它与您创建以支持更多应用程序的其他目标区分开。
有关详细信息,请参见适用于 Message Queue 类 com.sun.messaging.DestinationConfiguration 的 JavaDoc API 文档。
使用对象管理器实用程序 (imqobjmgr)对象管理器实用程序允许您创建和管理 Message Queue 受管理对象。使用此工具,您可以执行以下任务:
有关 imqobjmgr 命令的语法、子命令和选项的参考信息,请参见第 13 章“命令参考”。下一节介绍了使用任一 imqobjmgr 子命令时需要提供的信息。
所需的信息
执行大多数与受管理对象相关的任务时,必须指定以下信息作为 imqobjmgr 子命令的选项:
表 13-11 显示了允许的类型。
- 受管理对象的属性(add 和 update 子命令特别需要):
- 对于目标:代理上的物理目标名称。这是使用 imqcmd create dst 子命令的 -n 选项指定的名称。如果不指定名称,将使用默认名称 Untitled_Destination_Object。
- 对于连接工厂:最常用的属性是地址列表 (imqAddressList),用于指定客户机将试图连接的消息服务器地址(一个或多个)。如果不指定此信息,则使用本地主机和默认端口号 (7676),这意味着客户机将试图与本地主机端口 7676 上的某个代理建立连接。添加连接工厂一节说明了如何指定对象属性。
有关其他属性的详细信息,请参见连接工厂属性。
- 对象存储库属性
此信息取决于您使用的是文件系统存储还是 LDAP 服务器,但必须包括以下属性:
有关对象存储库属性的详细信息,请参见 LDAP 服务器对象存储库和文件系统对象存储库。
使用命令文件
imqobjmgr 命令允许您指定命令文件的名称,该文件使用 Java 属性文件语法表示全部或部分 imqobjmgr 子命令子句。
在对象管理器实用程序 (imqobjmgr) 中使用命令文件对于指定对象存储库属性特别有用,因为对象存储库属性可能在 imqobjmgr 的多次调用中都相同,并且通常需要多次键入。使用命令文件还可以避免一种情况,即避免超出命令行所允许的最大字符数。
imqobjmgr 命令文件的一般语法如下(版本属性反映命令文件的版本,而非 Message Queue 产品的版本,它不是一个命令行选项,它的值必须设置为 2.0):
作为如何使用命令文件的一个示例,请考虑使用以下 imqobjmgr 命令:
imqobjmgr add
-t qf
-l "cn=myQCF"
-o "imqAddressList=mq://foo:777/jms"
-j "java.naming.factory.initial=
com.sun.jndi.ldap.LdapCtxFactory"
-j "java.naming.provider.url=
ldap://mydomain.com:389/o=imq"
-j "java.naming.security.principal=
uid=fooUser, ou=People, o=imq"
-j "java.naming.security.credentials=fooPasswd"
-j "java.naming.security.authentication=simple"
此命令可以包含在一个文件中(例如 MyCmdFile 文件),其内容如下:
version=2.0
cmdtype=add
obj.type=qf
obj.lookupName=cn=myQCF
obj.attrs.imqAddressList=mq://foo:777/jms
objstore.attrs.java.naming.factory.initial=\
com.sun.jndi.ldap.LdapCtxFactory
objstore.attrs.java.naming.provider.url=\
ldap://mydomain.com:389/o=imq
objstore.attrs.java.naming.security.principal=\
uid=fooUser, ou=People, o=imq
objstore.attrs.java.naming.security.credentials=fooPasswd
objstore.attrs.java.naming.security.authentication=simple
然后可以使用 -i 选项将该文件传递给对象管理器实用程序 (imqobjmgr):
imqobjmgr -i MyCmdFile
也可以使用命令文件指定一些选项,而使用命令行指定其他选项。这样即可使用命令文件指定在实用程序的多次调用中都相同的那部分子命令子句。例如,以下命令可以指定添加连接工厂受管理对象所需的所有选项,但不包括指定受管理对象存储库位置的选项。
在本例中,文件 MyCmdFile 将包含以下定义:
version=2.0
objstore.attrs.java.naming.factory.initial=\
com.sun.jndi.ldap.LdapCtxFactory
objstore.attrs.java.naming.provider.url=\
ldap://mydomain.com:389/o=imq
objstore.attrs.java.naming.security.principal=\
uid=fooUser, ou=People, o=imq
objstore.attrs.java.naming.security.credentials=fooPasswd
objstore.attrs.java.naming.security.authentication=simple
可以从以下位置找到命令文件的其他示例:
添加和删除受管理对象本节说明如何在对象存储库中添加连接工厂和主题或队列目标的受管理对象。
注
对象管理器实用程序 (imqobjmgr) 只列出和显示了 Message Queue 受管理对象。如果对象存储库中包含与希望添加的受管理对象具有相同查找名称的非 Message Queue 对象,则您将在尝试执行添加操作时收到一条错误消息。
添加连接工厂
要使客户机应用程序获得与代理的连接,需要添加一个用来表示客户机应用程序所需连接类型的受管理对象:主题连接工厂或队列连接工厂
要添加队列连接工厂,请使用如下所示的命令:
imqobjmgr add
-t qf
-l "cn=myQCF"
-o "imqAddressList=mq://myHost:7272/jms"
-j "java.naming.factoryinitial=
com.sun.jndi.ldap.LdapCtxFactory"
-j "java.naming.provider.url=ldap://mydomain.com:389/o=imq"
-j "java.naming.security.principal=
uid=fooUser, ou=People, o=imq"
-j "java.naming.security.credentials=fooPasswd"
-j "java.naming.security.authentication=simple"
上述命令创建一个查找名称为 cn=myQCF 的受管理对象,它连接到在 myHost 上运行的代理并在端口 7272 上执行侦听。受管理对象存储库在 LDAP 服务器上。通过指定一个命令文件作为 imqobjmgr 命令的参数,也可以实现此目的。有关详细信息,请参见使用命令文件。
注
命名约定:如果使用 LDAP 服务器存储受管理对象,必须像上例那样指定一个前缀为 "cn=" 的查找名称 (cn=myQCF)。可以通过 -l 选项指定查找名称。如果正在使用文件系统对象存储库,则不必使用 cn 前缀,不过,请不要使用带有 "/" 的查找名称。请参见表 8-3。
添加主题或队列
要使客户机应用程序能够访问代理上的物理目标,可以将标识这些目标的受管理对象添加到对象存储库中。
最好先创建物理目标,然后再将对应的受管理对象添加到对象存储库中。使用命令行实用程序 (imqcmd) 在代理上创建物理目标,这些目标由对象存储库中的目标受管理对象标识。有关创建物理目标的信息,请参见获得有关连接的信息。
以下命令添加了一个标识主题目标的受管理对象,这个主题目标的查找名称为 myTopic,物理目标名称为 TestTopic。受管理对象存储库在 LDAP 服务器上。
imqobjmgr add
-t t
-l "cn=myTopic"
-o "imqDestinationName=TestTopic"
-j "java.naming.factory.initial=
com.sun.jndi.ldap.LdapCtxFactory"
-j "java.naming.provider.url=
ldap://mydomain.com:389/o=imq"
-j "java.naming.security.principal=
uid=fooUser, ou=People, o=imq"
-j "java.naming.security.credentials=fooPasswd"
-j "java.naming.security.authentication=simple"
这是同一个命令,只不过受管理对象存储库在 Solaris 文件系统中:
imqobjmgr add
-t t
-l "cn=myTopic"
-o "imqDestinationName=TestTopic"
-j "java.naming.factory.initial=
com.sun.jndi.fscontext.RefFSContextFactory"
-j "java.naming.provider.url=
file:///home/foo/imq_admin_objects"
以 LDAP 服务器为例,可以使用命令文件 MyCmdFile 指定子命令子句。该文件将包含以下内容:
version=2.0
cmdtype=add
obj.type=t
obj.lookupName=cn=myTopic
obj.attrs.imqDestinationName=TestTopic
objstore.attrs.java.naming.factory.initial=
com.sun.jndi.fscontext.RefFSContextFactory
objstore.attrs.java.naming.provider.url=
file:///home/foo/imq_admin_objects
objstore.attrs.java.naming.security.principal=
uid=fooUser, ou=People, o=imq
objstore.attrs.java.naming.security.credentials=fooPasswd
objstore.attrs.java.naming.security.authentication=simple
使用 -i 选项将该文件传递给 imqobjmgr 命令:
imqobjmgr -i MyCmdFile
添加队列对象与此基本相同,不同之处在于要为 -t 选项指定 q。
删除受管理对象
可以使用 delete 子命令删除受管理对象。必须指定对象的查找名称、类型和地址。
以下命令删除了查找名称为 cn=myTopic 且存储在 LDAP 服务器上的主题的受管理对象。
imqobjmgr delete
-t t
-l "cn=myTopic"
-j "java.naming.factory.initial=
com.sun.jndi.ldap.LdapCtxFactory"
-j "java.naming.provider.url=
ldap://mydomain.com:389/o=imq"
-j "java.naming.security.principal=
uid=fooUser, ou=People, o=imq"
-j "java.naming.security.credentials=fooPasswd"
-j "java.naming.security.authentication=simple"
列出受管理对象使用 list 子命令可以获得所有受管理对象的列表,或者某个特定类型的所有受管理对象的列表。以下样例代码假定受管理对象存储库在 LDAP 服务器上。
以下命令将列出所有对象。
imqobjmgr list
-j "java.naming.factory.initial=
com.sun.jndi.ldap.LdapCtxFactory"
-j "java.naming.provider.url=
ldap://mydomain.com:389/o=imq"
-j "java.naming.security.principal=
uid=fooUser, ou=People, o=imq"
-j "java.naming.security.credentials=fooPasswd"
-j "java.naming.security.authentication=simple"
以下命令将列出类型为 queue 的所有对象。
imqobjmgr list
-t q
-j "java.naming.factory.initial=
com.sun.jndi.ldap.LdapCtxFactory"
-j "java.naming.provider.url=
ldap://mydomain.com:389/o=imq"
-j "java.naming.security.principal=
uid=fooUser, ou=People, o=imq"
-j "java.naming.security.credentials=fooPasswd"
-j "java.naming.security.authentication=simple"
获取有关单个对象的信息使用 query 子命令可以获得有关一个受管理对象的信息。必须指定对象的查找名称,以及包含受管理对象的对象存储库的属性(如初始上下文和地址)。
在以下示例中,使用 query 子命令显示查找名称为 cn=myTopic 的对象的相关信息。
imqobjmgr query
-l "cn=myTopic"
-j "java.naming.factory.initial=
com.sun.jndi.ldap.LdapCtxFactory"
-j "java.naming.provider.url=
ldap://mydomain.com:389/o=imq"
-j "java.naming.security.principal=
uid=fooUser, ou=People, o=imq"
-j "java.naming.security.credentials=fooPasswd"
-j "java.naming.security.authentication=simple"
更新受管理对象可以使用 update 命令修改受管理对象的属性。必须指定对象的查找名称和地址。可以使用 -o 选项修改属性值。
此命令将改变表示主题连接工厂的受管理对象的属性:
imqobjmgr update
-t tf
-l "cn=MyTCF"
-o imqReconnectAttempts=3
-j "java.naming.factory.initial=
com.sun.jndi.ldap.LdapCtxFactory"
-j "java.naming.provider.url=
ldap://mydomain.com:389/o=imq"
-j "java.naming.security.principal=
uid=fooUser, ou=People, o=imq"
-j "java.naming.security.credentials=fooPasswd"
-j "java.naming.security.authentication=simple"