imqcmd 公用程式包括允許您執行以下連線服務管理作業的子指令:
代理程式支援來自應用程式用戶端和管理用戶端的連線。目前,Message Queue 代理程式可提供的連線服務如表 5–1 中所示。如表格中所示,每種服務都與使用的服務類型 (應用程式用戶端為 NORMAL,管理用戶端為 ADMIN) 和基本傳輸協定相關。
表 5–1 Message Queue 連線服務
服務名稱 |
服務類型 | |
---|---|---|
NORMAL | ||
NORMAL | ||
NORMAL | ||
NORMAL | ||
ADMIN |
TCP |
|
ADMIN |
TLS (SSL 型安全性) |
您可以使用 imqcmd 子指令來管理整個連線服務,或管理個別連線服務。如果子指令的目標是個別服務,請使用 -n 選項,以表 5–1 之 [服務名稱] 欄位中所列的其中一個名稱進行指定。
若要列出代理程式上可用的連線服務,請使用 list svc 子指令。
list svc 子指令的語法如下:
imqcmd list svc [-b hostName: portNumber]
該子指令列出預設代理程式或指定主機和連接埠上的代理程式上的所有連線服務。
以下指令列出在使用連接埠 7676 的 localhost 上所執行代理程式的所有服務:
imqcmd list svc -u admin
此指令將輸出以下資訊:
------------------------------------------------ Service Name Port Number Service State ------------------------------------------------ admin 41844 (dynamic) RUNNING httpjms - UNKNOWN httpsjms - UNKNOWN jms 41843 (dynamic) RUNNING ssladmin dynamic UNKNOWN ssljms dynamic UNKNOWN |
若要查詢並顯示單一服務的相關資訊,請使用 query 子指令。
query svc 子指令的語法如下:
imqcmd query svc -n serviceName [-b hostName:portNumber]
query svc 子指令會顯示在預設代理程式或指定主機和連接埠的代理程式上,所執行的指定服務之相關資訊。
例如:
imqcmd query svc -n jms -u admin
提示輸入密碼後,指令會輸出類似下列的內容:
Service Name jms Service State RUNNING Port Number 60920 (dynamic) Current Number of Allocated Threads 0 Current Number of Connections 0 Min Number of Threads 10 Max Number of Threads 1000 |
您可以使用 update 子指令,變更表 5–2 中所列出的一個或多個服務特性的值。
表 5–2 imqcmd 更新的連線服務特性
特性 |
說明 |
---|---|
port |
指定給需更新之服務的連接埠 (不適用於 httpjms 或 httpsjms)。0 值表示連接埠對映器會動態配置連接埠。 |
minThreads | |
maxThreads |
指定給服務的最大執行緒數目。 |
update 子指令的語法如下:
imqcmd update svc -n serviceName [-b hostName:portNumber] -o attribute=value [-o attribute=value1]…
該子指令更新在預設代理程式或指定主機和連接埠上的代理程式上執行的指定服務的指定屬性。如需服務屬性的描述,請參閱連線特性。
以下指令將指定給 jms 服務的執行緒最小數目變更為 20。
imqcmd update svc -n jms -o “minThreads=20” -u admin
若要顯示有關單一服務的度量資訊,請使用 metrics 子指令。
metrics 子指令的語法如下:
imqcmd metrics svc -n serviceName [-b hostName:portNumber] [-m metricType ] [-int interval] [-msp numSamples]
該子指令顯示預設代理程式或指定主機和連接埠上的代理程式上的指定服務之度量。
使用 -m 選項指定要顯示的度量類型:
ttl 顯示經由指定連線服務,傳入和傳出代理程式的訊息和資料封包的度量。(預設度量類型)。
rts 顯示經由指定連線服務,(每秒) 傳入和傳出代理程式的訊息和資料封包流量速率度量。
cxn 顯示連線、虛擬記憶體堆疊和執行緒。
使用 -int 選項,指定顯示度量的時間間隔 (以秒為單位)。預設為 5 秒鐘。
使用 -msp 選項,指定輸出中顯示的範例數目。預設的數目為沒有限制 (無限)。
例如,若要取得由 jms 連線服務處理的訊息和資料封包等累計總數,請使用:
imqcmd metrics svc -n jms -m ttl -u admin
------------------------------------------------- Msgs Msg Bytes Pkts Pkt Bytes In Out In Out In Out In Out ------------------------------------------------- 164 100 120704 73600 282 383 135967 102127 657 100 483552 73600 775 876 498815 149948 |
如需有關使用 imqcmd 以報告連線服務度量的更多詳細描述,請參閱連線服務度量。
除 admin 服務無法暫停之外,若要暫停其他任何服務,請使用 pause svc 和 resume svc 子指令。
pause svc 子指令的語法如下:
imqcmd pause svc -n serviceName [-b hostName:portNumber]
該子指令暫停在預設代理程式或指定主機和連接埠上代理程式執行的指定服務。 例如,下列指令會暫停預設代理程式上執行的 httpjms 服務。
imqcmd pause svc -n httpjms -u admin
暫停服務會造成以下影響:
代理程式會停止接受暫停服務上的新用戶端連線。如果 Message Queue 用戶端嘗試開啟新的連線,將會發生異常。
暫停服務上的所有現有連線會維持持續作用狀態,但在重新繼續服務前,代理程式會暫停此類連線上的所有訊息處理。(例如,如果用戶端嘗試傳送訊息,在重新繼續服務前,send 方法會阻斷此訊息。)
將會維護任何已被代理程式接收之訊息的訊息傳送狀態。(例如,作業事件不會中斷,並且會在重新繼續服務後,繼續訊息傳送。)
若要重新繼續服務,請使用 resume svc 子指令。
resume svc 子指令的語法如下:
imqcmd resume svc -n serviceName[-b hostName:portNumber]