imqobjmgr 指令的 -i 選項,可讓您指定使用 Java 特性檔案語法的指令檔名稱,以表示所有或部分子指令陳述式。此功能在指定物件存放區屬性時極為有用,執行這類作業時一般需要大量的鍵入操作,並且在多次呼叫 imqobjmgr 時所鍵入的內容可能都相同。使用指令檔也可讓您避免超出指令行所允許的最大字元數。
範例 8–9 顯示物件管理員指令檔的一般語法。請注意,version 屬性不是指令行選項:這表示指令檔本身的版本 (而不是 Message Queue 產品的版本),且必須將值設定為 2.0。
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
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 物件存放區的屬性值。
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 所示。
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