監視傳輸佇列切換

請務必監視叢集傳送端通道切換傳輸佇列的處理程序,以便將對企業的影響降到最低。 例如,當工作量偏高或同時切換多個通道時,您不應嘗試此處理程序。

切換通道的程序

用來切換通道的處理程序為:
  1. 通道會開啟新的傳輸佇列來進行輸入,並開始從其中取得訊息 (使用依相關性 ID 取得)
  2. 佇列管理程式會起始一個背景處理程序,將通道已排入佇列的任何訊息從其舊傳輸佇列移至其新傳輸佇列。 當訊息移動時,通道的任何新訊息都會排入舊傳輸佇列,以保留排序。 如果通道在其舊傳輸佇列上有大量訊息,或新訊息快速送達,則此處理程序可能需要一些時間才能完成。
  3. 如果沒有任何已確定或未確定的訊息仍在其舊傳輸佇列上的通道佇列中,則交換器會完成。 新的訊息現在會直接放置到新的傳輸佇列中。
為了避免多種通道同步切換的可能性, IBM® MQ 可讓您切換一或多個未執行的通道的傳輸佇列。 在:
  • IBM MQ for Multiplatforms 指令稱為 runswchl
  • IBM MQ for z/OS® 可以改用 CSQUTIL 公用程式來處理 SWITCH CHANNEL 指令

監視交換器作業的狀態

若要瞭解交換器作業的狀態,管理者可以執行下列動作:
  • 監視佇列管理程式錯誤日誌 (AMQERR01.LOG) 其中會輸出訊息,以指出作業期間的下列階段:
    • 已啟動切換作業
    • 已開始移動訊息
    • 定期更新要移動的訊息數 (如果切換作業未快速完成)
    • 已完成移動訊息
    • 交換器作業已完成
    z/OS上,這些訊息會輸出至佇列管理程式工作日誌,而不是通道起始程式工作日誌; 不過,如果通道在啟動時起始切換,則通道會將單一訊息輸出至通道起始程式工作日誌。
  • 請使用 DISPLAY CLUSQMGR 指令來查詢每一個叢集傳送端通道目前使用的傳輸佇列。
  • 以查詢模式執行 runswchl 指令 (或 z/OS上的 CSQUTIL) ,以確定一個以上通道的切換狀態。 此指令的輸出會識別每一個通道的下列項目:
    • 通道是否有擱置中的切換作業
    • 通道從哪一個傳輸佇列切換至哪一個傳輸佇列
    • 舊傳輸佇列上剩餘的訊息數
    每一個指令都非常有用,因為在一次呼叫中,您可以判斷每一個通道的狀態、配置變更所造成的影響,以及所有交換器作業是否都已完成。

可能發生的潛在問題

請參閱 切換傳輸佇列時的潛在問題 ,以取得切換傳輸佇列時可能遇到的一些問題、其原因,以及最可能的解決方案。