Sun Java System Message Queue 3.7 UR1 管理指南

使用命令文件

使用 imqobjmgr 命令的 -i 选项可以指定命令文件的名称,命令文件使用 Java 属性文件语法来表示全部或部分子命令子句。此功能在指定对象存储库属性时尤为有用,通常,指定对象存储库属性时需要执行大量的键入操作,并且在多次调用 imqobjmgr 时指定属性的操作可能相同。使用命令文件还可以避免超出命令行所允许的最大字符数。

示例 8–9 说明了对象管理器命令文件的一般语法。请注意,version 属性不是命令行选项:它指的是命令文件自身的版本(而不是 Message Queue 产品的版本),因此必须将其值设置为 2.0


示例 8–9 对象管理器命令文件语法


version=2.0
cmdtype=[ add | delete | list | query | update ]
obj.lookupName=lookup name
objstore.attrs.objStoreAttrName1=value1
objstore.attrs.objStoreAttrName2=value2
   . . .
objstore.attrs.objStoreAttrNameN=valueN
obj.type=[ q | t | cf | qf | tf | xcf | xqf | xtf | e ]
obj.attrs.objAttrName1=value1
obj.attrs.objAttrName2=value2
   . . .
obj.attrs.objAttrNameN=valueN

例如,请考虑前面示例 8–1 中显示的对象管理器命令,该命令将队列连接工厂添加到 LDAP 对象存储库。此命令可以封装在命令文件中,如示例 8–10 所示。如果将此命令文件命名为 MyCmdFile,则可以使用以下命令行来执行该命令:

imqobjmgr -i MyCmdFile

示例 8–10 示例命令文件


version=2.0
cmdtype=add
obj.lookupName=cn=myQCF
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=homerSimpson,ou=People,o=imq
objstore.attrs.java.naming.security.credentials=doh
objstore.attrs.java.naming.security.authentication=simple
obj.type=qf
obj.attrs.imqAddressList=mq://myHost:7272/jms

还可以仅使用命令文件指定 imqobjmgr 子命令子句部分,而在命令行上明确提供其余部分。例如,示例 8–11 中显示的命令文件仅指定了 LDAP 对象存储库的属性值。


示例 8–11 部分命令文件


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=homerSimpson,ou=People,o=imq
objstore.attrs.java.naming.security.credentials=doh
objstore.attrs.java.naming.security.authentication=simple

然后,可以使用此命令文件在 imqobjmgr 命令中指定对象存储库,同时明确提供其余选项,如示例 8–12 所示。


示例 8–12 使用部分命令文件


imqobjmgr add
   -l "cn=myQCF"
   -i MyCmdFile
   -t qf
   -o "imqAddressList=mq://myHost:7272/jms"

您可以根据使用的平台,从以下相应位置找到命令文件的其他示例:

Solaris:/usr/demo/imq/imqobjmgr Linux:/opt/sun/mq/examples/imqobjmgr Windows:IMQ_HOME/demo/imqobjmgr