imqobjmgr 命令的 add 子命令将连接工厂和主题或队列目的地的受管理对象添加到对象存储库中。存储在 LDAP 对象存储库中的受管理对象的查找名称必须以前缀 cn= 开头;文件系统对象存储库中的查找名称不必以任何特定前缀开头,但是不能包含正斜杠字符 (/)。
对象管理器仅列出并显示 Message Queue 受管理对象。如果对象存储库中应该包含一个非 Message Queue 对象,并且该对象与要添加的受管理对象具有相同的查找名称,则当您尝试执行添加操作时,将会收到一条错误消息。
要使客户端应用程序能够创建代理连接,请为要创建的连接类型添加连接工厂受管理对象:队列连接工厂或主题连接工厂。示例 8–1 显示了一条用于将队列连接工厂(受管理对象类型 qf)添加到 LDAP 对象存储库的命令。该对象具有查找名称 cn=myQCF,并通过 jms 连接服务连接到主机 myHost 上使用端口号 7272 运行的代理。
imqobjmgr add -l "cn=myQCF" -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=homerSimpson,ou=People,o=imq" -j "java.naming.security.credentials=doh" -j "java.naming.security.authentication=simple" -t qf -o "imqAddressList=mq://myHost:7272/jms" |
创建表示目的地的受管理对象时,最好先创建物理目的地,然后将受管理对象添加到对象存储库中。可以使用命令实用程序 (imqcmd) 创建物理目的地,如创建物理目的地中所述。
示例 8–2 中显示的命令将受管理对象添加到表示某个主题目的地的 LDAP 对象存储库,该主题目的地的查找名称为 myTopic,物理目的地名称为 physTopic。用于添加队列目的地的命令会很相似,但是受管理对象的类型(-t 选项)应该是 q(对应于 "queue destination")而不是 t(对应于 "topic destination")。
imqobjmgr add -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=homerSimpson,ou=People,o=imq" -j "java.naming.security.credentials=doh" -j "java.naming.security.authentication=simple" -t t -o "imqDestinationName=physTopic" |
示例 8–3 显示的是同一个命令,但是受管理对象存储库在 Solaris 文件系统而不是 LDAP 服务器中。
imqobjmgr add -l "cn=myTopic" -j "java.naming.factory.initial= com.sun.jndi.fscontext.RefFSContextFactory" -j "java.naming.provider.url=file:///home/foo/imq_admin_objects" -t t -o "imqDestinationName=physTopic" |