本章提供使用 Message QueueTM 指令行管理公用程式的參考資訊。包含下列各節:
Message Queue 指令行公用程式是 Shell 指令。公用程式名稱是一個指令,其子指令或選項是傳給指令的引數。個別的指令不需要啟動或退出公用程式。
utilityName [subcommand] [commandArgument] [ [-optionName [optionArgument]]…]
其中,utilityName 是以下其中之一:
imqbrokerd (代理程式公用程式)
imqcmd (指令公用程式)
imqobjmgr (物件管理員公用程式)
imqdbmgr (資料庫管理者公用程式)
imqusermgr (使用者管理員公用程式)
imqsvcadmin (服務管理員公用程式)
imqkeytool (金鑰工具公用程式)
子指令與指令層級引數 (若有) 必須處於所有選項及其引數之前;但選項的顯示順序可隨意。以空格分隔所有子指令、指令引數、選項和選項引數。如果選項引數的值包含空格,就必須將整個值括在引號內。(通常最為安全的方式,就是將所有成對的屬性值都括在引號內。)
以下指令可啟動預設代理程式,是沒有子指令子句的指令行範例:
imqbrokerd
此為更完整的範例:
imqcmd destroy dst -t q -n myQueue -u admin -f -s
此指令會銷毀名稱為 myQueue 的佇列目標 (目標類型 q)。對於使用者名稱 admin 會執行認證;該指令會提示您輸入密碼。該指令以無訊息模式執行,將不會提示您確認 (-f 選項),亦不會顯示任何輸出 (-s 選項)。
代理程式公用程式 (imqbrokerd) 可啟動代理程式。指令行選項可置換代理程式配置檔案中的值,但僅限於目前的代理程式階段作業。
表 13–1 顯示 imqbrokerd 指令的選項,以及每個選項所置換的配置特性 (若有)。
表 13–1 代理程式公用程式選項
選項 |
被置換的特性 |
說明 |
---|---|---|
-name instanceName |
imq.instancename |
在同一台主機上執行的多個代理程式實例,必須擁有不同的實例名稱。 預設值:imqbroker |
-port portNumber |
imq.portmapper.port |
Message Queue 用戶端可使用此連接埠號連線至代理程式。在同一台主機上執行的多個代理程式實例,必須擁有不同的連接埠對映器連接埠號。 預設值:7676 |
-cluster broker1 [ [ , broker2 ]…] |
imq.cluster.brokerlist |
指定的代理程式會與 imq.cluster.brokerlist 特性中的清單合併。每個代理程式引數的格式如下 hostName: portNumber hostName :portNumber 如果省略 hostName,則預設值為 localhost;如果省略 portNumber,則預設值為 7676。 |
-Dproperty= value |
實例配置檔案中的對應特性 |
設定配置特性 請參閱第 14 章, 代理程式特性參照,以取得代理程式配置特性的相關資訊。 注意:請仔細檢查使用此選項設定的特性的拼寫與格式。不正確的值會被忽略,不會另行通知或警告。 |
-reset props |
無 |
重設配置特性 以空白檔案替代代理程式現有的實例配置檔案 ( config.properties);所有特性皆為預設值。 |
-reset store |
無 |
重設永久性資料存放區 清除資料存放區的所有永久性資料 (包括永久性訊息、長期訂閱與作業事件資訊),讓您在啟動代理程式實例時「重新來過」。若要防止在後續的重新啟動時重設永久性存放區,請不使用 -reset 選項重新啟動代理程式實例。 若只要清除永久性訊息或長期訂閱,請改用 -reset messages 或 -reset durables 。 |
-reset messages |
無 |
清除資料存放區的永久性訊息 |
-reset durables |
無 |
清除資料存放區的長期訂閱 |
-backup fileName |
無 |
將配置變更記錄備份至檔案 如需更多資訊,請參閱管理配置變更記錄。 |
-restore fileName |
無 |
從備份檔案復原配置變更記錄 此備份檔案必須已使用 -backup 選項事先建立。 如需更多資訊,請參閱管理配置變更記錄。 |
-remove instance |
無 |
移除代理程式實例 [除非也指定了 -force,否則此選項會要求使用者確認。] 刪除此實例配置檔案、記錄檔、永久性存放區以及與此實例相關的其他檔案和目錄。 |
-password keyPassword |
imq.keystore.password |
SSL 憑證金鑰庫的密碼 [此選項已經停用而且會永遠移除。請省略密碼 (將會以互動方式提示使用者輸入密碼),或使用 -passfile 選項指定包含密碼的檔案。] |
-dbuser userName |
imq.persist.jdbc.user |
JDBC 型永久性資料存放區的使用者名稱 |
-dbpassword dbPassword |
imq.persist.jdbc.password |
JDBC 型永久性資料存放區的密碼 |
-ldappassword ldapPassword |
imq.user_repository.ldap.password |
LDAP 使用者儲存庫的密碼 |
-passfile filePath |
imq.passfile.enabledimq.passfile. dirpathimq.passfile.name |
將代理程式的 imq.passfile.enabled 特性設為 true,imq.passfile.dirpath 設為包含密碼檔案的路徑,而 imq.passfile.name 設為檔案名稱。 如需更多資訊,請參閱密碼檔案。 |
-shared |
imq.jms.threadpool_model |
使用共用的執行緒池模型來實作 jms 連線服務。 將會在連線之間共用執行執行緒,以增加所支援的連線數目。 將代理程式的 imq.jms.threadpool_model 特性設為 shared。 |
-javahome path |
無 |
預設運作方式:使用安裝在系統上或是隨附於 Message Queue 的執行階段。 |
-vmargs arg1 [ [ arg2 ] … ] |
無 |
將引數傳送給 Java 虛擬機器。 以空格分隔引數。若要傳送多個引數,或包含空格的引數,請將引數清單括在引號內。 VM 引數只能從指令行傳送;實例配置檔案中並沒有相關的配置特性。 |
-license [ licenseName ] |
無 |
要載入的授權 (如果與已安裝的 Message Queue 產品版本的預設值不同): pe:具備基本功能的 Platform Edition try:具備企業功能的 Platform Edition (90 天試用期) unl:Enterprise Edition 如果未指定授權名稱,此選項會列出系統上已安裝的所有授權。 |
-upgrade-store-nobackup |
無 |
從不相容的版本升級至 Message Queue 3.5 或 3.5 SPx 時,自動移除舊的資料存放區 如需更多資訊,請參閱「Message Queue 安裝指南」。 |
-force |
無 |
執行動作而無需使用者確認 此選項僅適用於通常會要求確認的 -remove instance 與 - upgrade-store-nobackup 選項。 |
-loglevel level |
imq.broker.log.level |
NONE ERROR WARNING INFO 預設值:INFO |
-metrics interval |
imq.metrics.interval | |
-tty |
imq.log.console.output |
將所有訊息記錄至主控台 將代理程式的 imq.log.console.output 特性設為 ALL。 如果未指定,將只記錄錯誤與警告訊息。 |
-s | -silent |
imq.log.console.output |
將代理程式的 imq.log.console.output 特性設為 NONE。 |
-version |
無 | |
-h | -help |
無 |
顯示用法說明 |
指令公用程式 (imqcmd) 可用於管理代理程式、連線服務、連線、實體目標、長期訂閱與作業事件。
所有 imqcmd 指令都必須包含子指令 (除了使用 -v 或 -h 選項以顯示產品版本資訊或用法說明以外)。此處會列出可能的子指令,還會在以下各節詳細地說明。在所有情況下,如果子指令接受代理程式位址 (-b 選項),而且未指定主機名稱和連接埠號,那麼會使用預設值 localhost 與 7676。
shutdown bkr |
關閉代理程式 |
restart bkr |
重新啟動代理程式 |
pause bkr |
暫停代理程式 |
resume bkr |
重新繼續代理程式 |
update bkr |
設定代理程式特性 |
reload cls |
重新載入叢集配置 |
query bkr |
列出代理程式特性值 |
metrics bkr |
顯示代理程式度量 |
pause svc |
暫停連線服務 |
resume svc |
重新繼續連線服務 |
update svc |
設定連線服務特性 |
list svc |
列出代理程式上可用的連線服務 |
query svc |
列出連線服務特性值 |
metrics svc |
顯示連線服務度量 |
list cxn |
列出代理程式上的連線 |
query cxn |
顯示連線資訊 |
create dst |
建立實體目標 |
destroy dst |
銷毀實體目標 |
pause dst |
暫停將訊息傳送給實體目標 |
resume dst |
重新繼續將訊息傳送給實體目標 |
update dst |
設定實體目標特性 |
purge dst |
清除來自實體目標的所有訊息 |
compact dst |
壓縮實體目標 |
list dst |
列出實體目標 |
query dst |
列出實體目標特性值 |
metrics dst |
顯示實體目標度量 |
destroy dur |
銷毀長期訂閱 |
purge dur |
清除長期訂閱的所有訊息 |
list dur |
列出主題的長期訂閱 |
commit txn |
確定作業事件 |
rollback txn |
回復作業事件 |
list txn |
列出代理程式追蹤的作業事件 |
query txn |
顯示作業事件資訊 |
要使用代理程式公用程式 (imqbrokerd) 才能啟動代理程式;無法使用指令公用程式啟動代理程式。啟動代理程式之後,就可以使用表 13–2 中列出的 imqcmd 子指令對該代理程式進行管理與控制。
表 13–2 用於代理程式管理的指令公用程式子指令
語法 |
說明 |
---|---|
shutdown bkr [-b hostName :portNumber] | |
restart bkr [-b hostName :portNumber] |
關閉代理程式,然後使用原來啟動時所指定的相同選項重新啟動該代理程式。 |
pause bkr [-b hostName :portNumber] |
如需更多資訊,請參閱暫停代理程式。 |
resume bkr [-b hostName :portNumber] | |
update bkr [-b hostName :portNumber] -o property1= value1 [ [-o property2 =value2] … ] |
設定代理程式特性 請參閱第 14 章, 代理程式特性參照,以取得代理程式特性的相關資訊。 |
reload cls |
強制更新所有永久性資訊以保持最新的狀態。 |
query bkr -b hostName :portNumber |
列出代理程式特性值 還會列出所有連線至叢集中指定代理程式的執行中代理程式。 |
metrics bkr [-b hostName :portNumber] [-m metricType] [-int interval] [-msp numSamples] |
顯示代理程式度量 -m 選項可指定要顯示的度量類型: ttl:傳入和傳出代理程式的訊息與封包 rts:代理程式的訊息與封包每秒傳入和傳出的速率 cxn:連線、虛擬記憶體堆疊與執行緒 預設值:ttl。 -int 選項可指定顯示度量的時間間隔 (以秒為單位)。預設值: 5。 -msp 選項可指定要顯示的範例數目。預設值:不限制 (無限)。 |
表 13–3 列出可管理連線服務的 imqcmd 子指令。
表 13–3 連線服務管理的指令公用程式子指令
語法 |
說明 |
---|---|
pause svc -n serviceName [-b hostName: portNumber] |
無法暫停 admin 連線服務。 |
resume svc -n serviceName [-b hostName: portNumber] | |
update svc -n serviceName [-b hostName: portNumber] -o property1= value1 [ [-o property2 =value2] … ] |
設定連線服務特性 請參閱連線特性,以取得連線服務特性的相關資訊。 |
list svc [-b hostName :portNumber] |
列出代理程式上可用的連線服務 |
query svc -n serviceName [-b hostName: portNumber] |
列出連線服務特性值 |
metrics svc -n serviceName [-b hostName: portNumber] [-m metricType] [-int interval] [-msp numSamples] |
顯示連線服務度量 -m 選項可指定要顯示的度量類型: ttl:利用指定的連線服務,傳入和傳出代理程式的訊息與封包 rts:利用指定的連線服務,代理程式的訊息與封包每秒傳入和傳出的速率 cxn:連線、虛擬記憶體堆疊與執行緒 預設值:ttl。 -int 選項可指定顯示度量的時間間隔 (以秒為單位)。預設值: 5。 -msp 選項可指定要顯示的範例數目。預設值:不限制 (無限)。 |
表 13–4 列出可管理連線的 imqcmd 子指令。
表 13–4 連線服務管理的指令公用程式子指令
語法 |
說明 |
---|---|
list cxn [-svn serviceName] [-b hostName: portNumber] |
列出指定連線服務在代理程式上的所有連線。如果未指定連線服務,則會列出所有連線。 |
query cxn -n connectionID [-b hostName: portNumber] |
表 13–5 列出可管理實體目標的 imqcmd 子指令。在所有情況下,- t (目標類型) 選項均可使用下列兩項值之一:
q:佇列目標
t:主題目標
語法 |
說明 |
---|---|
create dst -t destType -n destName [-o property1 =value1] [ [ -o property2 =value2] … ] |
建立實體目標 [不能在主代理程式暫時無法使用的代理程式叢集上執行此作業。] 目標名稱 destName 只能包含字母數字字元 (無空格),而且必須以字母字元或底線 (_) 或錢幣符號 ($) 開頭。而且開頭不能是 mq 字元。 |
destroy dst -t destType -n destName |
銷毀實體目標 此作業不適用於由系統建立的目標,例如停用的訊息佇列。 |
pause dst [-t destType -n destName] [-pst pauseType] |
暫停將訊息傳送給利用 - t 與 -n 選項指定的實體目標。如果未指定這些選項,就會暫停所有目標。 -pst 選項可指定要暫停的訊息傳送類型: CONSUMERS:暫停傳送給訊息用戶 PRODUCERS:暫停傳送給訊息產生器 ALL:暫停所有訊息傳送 預設值:ALL |
resume dst [-t destType -ndestName] |
重新繼續將訊息傳送給實體目標 重新繼續將訊息傳送給利用 - t 與 -n 選項指定的實體目標。如果未指定這些選項,就會重新繼續所有目標。 |
update dst -t destType -n destName -o property1= value1 [ [ -o property2 =value2] … ] |
請參閱第 15 章, 實體目標特性參照,以取得實體目標特性的相關資訊。 |
purge dst -t destType -n destName | |
compact dst [-t destType -n destName] |
壓縮由 -t 與 -n 選項所指定之實體目標的檔案式永久性資料存放區。如果未指定這些選項,就會壓縮所有目標。 必須在壓縮目標前暫停目標。 |
list dst [-t destType] [-tmp] |
列出實體目標 列出由 -t 選項指定的所有實體目標類型。如果未指定目標類型,就會列出佇列與主題目標。如果已指定 -tmp 選項,也會列出暫時目標。 |
query dst -t destType -n destName | |
metrics dst -t destType -n destName [-m metricType] [-int interval] [-msp numSamples] |
顯示實體目標度量 -m 選項可指定要顯示的度量類型: ttl:傳入和傳出目標以及常駐於記憶體中的訊息與封包。 rts:代理程式的訊息與封包每秒傳入和傳出的速率,以及其他速率資訊 con:與訊息用戶相關的度量 dsk:磁碟使用率 預設值:ttl。 -int 選項可指定顯示度量的時間間隔 (以秒為單位)。預設值: 5。 -msp 選項可指定要顯示的範例數目。預設值:不限制 (無限)。 |
表 13–6 列出可管理長期訂閱的 imqcmd 子指令。
表 13–6 用於長期訂閱管理的指令公用程式子指令
語法 |
說明 |
---|---|
destroy dur -c clientID -n subscriberName | |
purge dur -c clientID -n subscriberName | |
list dur -d topicName |
表 13–7 列出可管理作業事件的 imqcmd 子指令。
表 13–7 用於作業事件管理的指令公用程式子指令
語法 |
說明 |
---|---|
commit txn -n transactionID | |
rollback txn -n transactionID | |
list txn | |
query txn -n transactionID |
表 13–8 中列出的其他選項,可套用至 imqcmd 指令的任何子指令。
表 13–8 一般指令公用程式選項
選項 |
說明 |
---|---|
-secure | |
-u userName |
認證的使用者名稱 如果省略此選項,指令公用程式就會以互動方式提示您輸入。 |
-p password |
認證的密碼 [此選項已經停用而且會永遠移除。請省略密碼 (將會以互動方式提示使用者輸入密碼),或使用 -passfile 選項指定包含密碼的檔案。] |
-passfile path |
密碼檔案位置 如需更多資訊,請參閱密碼檔案。 |
-rtm timeoutInterval |
初始逾時時間間隔 (以秒為單位) 重試請求之前,指令公用程式等待代理程式回覆的初始時間長度。每次後續重試都會使用逾時時間間隔,而此間隔為此初始時間間隔的倍數。 預設值:10。 |
-rtr numRetries |
代理程式請求逾時之後的重試次數 預設值:5。 |
-javahome path |
預設運作方式:使用安裝在系統上或是隨附於 Message Queue 的執行階段。 |
-f |
執行動作而無需使用者確認 |
-s |
無訊息模式 (不顯示輸出) |
-v | |
-h | |
-H |
顯示詳細的用法說明,包括屬性清單與範例, |
物件管理員公用程式 (imqobjmgr) 可建立和管理 Message Queue 受管理物件。表 13–9 列出可用的子指令。
表 13–9 物件管理員子指令
子指令 |
說明 |
---|---|
add |
將受管理物件新增至物件存放區 |
delete |
刪除物件存放區內的受管理物件 |
list |
列出物件存放區中的受管理物件 |
query |
顯示受管理物件資訊 |
update |
修改受管理物件 |
表 13–10 列出 imqobjmgr 指令的選項。
表 13–10 物件管理員選項
選項 |
說明 |
---|---|
-l lookupName |
受管理物件的 JNDI 查找名稱 |
-j attribute= value |
JNDI 物件存放區 (請參閱物件存放區) 的屬性 |
-t objectType |
受管理物件的類型: q:佇列目標 t:主題目標 cf:連線工廠 qf:佇列連線工廠 tf:主題連線工廠 xcf:分散式作業事件的連線工廠 xqf:分散式作業事件的佇列連線工廠 xtf:分散式作業事件的主題連線工廠 e:SOAP 端點 (請參閱「Message Queue Developer's Guide for Java Clients」) |
-o attribute= value |
受管理物件的屬性 (請參閱受管理物件屬性與第 16 章, 受管理物件屬性參照) |
-r readOnlyState |
受管理物件是否為唯讀? 如果為 true,用戶端就無法修改物件的屬性。預設值:false。 |
-i fileName |
包含所有或部分子指令子句的指令檔名稱 |
-pre |
無需執行指令即能預覽結果 此選項對檢查預設屬性的值很有用。 |
-javahome path |
預設運作方式:使用安裝在系統上或是隨附於 Message Queue 的執行階段。 |
-f |
執行動作而無需使用者確認 |
-s |
無訊息模式 (不顯示輸出) |
-v | |
-h |
顯示用法說明 |
-H |
顯示詳細的用法說明,包括屬性清單與範例 |
資料庫管理者公用程式 (imqdbmgr) 可設定 JDBC 型永久性資料存放區的資料庫模式。您也可以用該指令刪除已毀壞的 Message Queue 資料庫表格,或變更資料存放區。表 13–11 列出可用的子指令。
表 13–11 資料庫管理者子指令
子指令 |
說明 |
---|---|
create all |
建立新資料庫與永久性存放區模式。 用於內嵌式資料庫系統。必須指定代理程式特性 imq.persist.jdbc.createdburl。 |
create tbl |
建立現有資料庫的永久性存放區模式 用於外部資料庫系統。 |
delete tbl |
刪除目前永久性存放區的 Message Queue 資料庫表格 |
delete oldtbl |
刪除舊版永久性存放區的 Message Queue 資料庫表格 在自動將永久性存放區遷移到 Message Queue 目前版本後使用。 |
recreate tbl |
重新建立永久性存放區模式 刪除目前永久性存放區所有現有的 Message Queue 資料庫表格,然後重新建立模式。 |
reset lck |
重設永久性存放區鎖定狀態 重設鎖定狀態,以便其他程序可以使用永久性存放區資料庫。 |
表 13–12 列出 imqdbmgr 指令的選項。
表 13–12 資料庫管理者選項
選項 |
說明 |
---|---|
-b instanceName |
代理程式的實例名稱 |
-Dproperty= value |
設定代理程式配置特性 請參閱永久性特性,以取得與永久性相關的代理程式配置特性之資訊。 注意:請仔細檢查使用此選項設定的特性的拼寫與格式。不正確的值會被忽略,不會另行通知或警告。 |
-u name |
認證的使用者名稱 |
-p password |
認證的密碼 [此選項已經停用而且會永遠移除。請省略密碼 (將會以互動方式提示使用者輸入密碼),或使用 -passfile 選項指定包含密碼的檔案。] |
-passfile path |
密碼檔案位置 如需更多資訊,請參閱密碼檔案。 |
-v | |
-h |
顯示用法說明 |
使用者管理員公用程式 (imqusermgr) 可用於寫入或編輯平面檔案使用者儲存庫。此公用程式必須在安裝代理程式的同一台主機上執行;如果代理程式專用的使用者儲存庫尚不存在,您必須先啟動相對的代理程式實例才能建立。您還需要適當的權限才能寫入儲存庫:也就是說,在 Solaris 或 Linux 平台上,您必須是超級使用者或代理程式實例的建立者。
表 13–13 列出 imqusermgr 指令提供的子指令。在所有情況下,-i 選項都可指定代理程式實例名稱,指令會套用到該代理程式的使用者儲存庫;如果未指定,就會使用預設名稱 imqbroker。
表 13–13 使用者管理員子指令
此外,表 13–14 中所列出的選項,可套用至 imqusermgr 指令的任何子指令。
表 13–14 一般使用者管理員選項
選項 |
說明 |
---|---|
-f |
執行動作而無需使用者確認 |
-s |
無訊息模式 (不顯示輸出) |
-v | |
-h |
顯示用法說明 |
服務管理員公用程式 (imqsvcadmin) 可將代理程式安裝為 Windows 服務。表 13–15 列出可用的子指令。
表 13–15 服務管理員子指令
子指令 |
說明 |
---|---|
install |
安裝服務 |
remove |
移除服務 |
query |
顯示啟動選項 啟動選項可包括服務是手動啟動還是自動啟動、服務的位置、Java 執行階段的位置,以及啟動時傳送至代理程式的引數值 (請參閱表 13–16)。 |
表 13–16 列出 imqsvcadmin 指令的選項。
表 13–16 服務管理員選項
選項 |
說明 |
---|---|
-javahome path |
預設運作方式:使用安裝在系統上或是隨附於 Message Queue 的執行階段。 |
-jrehome path | |
-vmargs arg1 [ [arg2 ] … ] |
要傳送給執行代理程式服務的 Java 虛擬機器 (JVM) 的其他引數 [也可以使用 Windows [系統管理工具] 控制面板中的 [服務] 工具,開啟服務的 [內容] 視窗,並於 [一般] 標籤下方的 [啟動參數] 欄位中,指定這些引數。] 範例: imqsvcadmin install -vmargs "-Xms16m -Xmx128m" |
-args arg1 [ [arg2] … ] |
要傳送給代理程式服務的其他指令行引數 範例: imqsvcadmin install -args "-passfile d:\\imqpassfile" 請參閱代理程式公用程式,以取得代理程式指令行引數的相關資訊。 |
-h |
您使用 -javahome、-vmargs 和 -args 選項指定的任何資訊,都會儲存在 Windows 登錄中的機碼 JREHome、JVMArgs 和 ServiceArgs 下,路徑為
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\iMQ_Broker\Parameters
金鑰工具公用程式 (imqkeytool) 會為代理程式產生自我簽署的憑證,此憑證可用於 ssljms、 ssladmin 或 cluster 連線服務。語法為
imqkeytool -broker
若為 UNIX 系統,需要從超級使用者 (root) 帳號執行公用程式。