設定物件啟動常駐程式

WebSphere MQ 可提供一種名為觸發的機能,可讓應用程式在有訊息可供擷取時自行啟動。 WebSphere InterChange Server 產品會使用 MQ 觸發的「物件啟動常駐程式 (OAD)」來處理下列作業:

這個 MQ 觸發的 OAD 會使用 WebSphere MQ 的觸發功能,來重新啟動連接器代理程式。

設定此 OAD 需要下列步驟:

  1. 確定已安裝 WebSphere MQ
  2. 為 MQ 觸發的 OAD 配置 WebSphere MQ
  3. 啟動「MQ 觸發監視器」
  4. 配置配接器,以供自動及遠端重新啟動

安裝 OAD 軟體

使用 MQ 觸發的 OAD 需要安裝「MQ 觸發監視器」。 此監視器會隨著 WebSphere MQ 軟體一起安裝,相關說明請見安裝 IBM WebSphere MQ。 此軟體必須位在連接器代理程式所在的機器上。

圖 20 中,每一個連接器代理程式都參與了遠端啟動或和自動重新啟動的行列。 在參與的連接器代理程式所在的每一部機器上,都必須要有 WebSphere MQ 軟體存在。 請注意,不管機器上有多少個連接器代理程式,每一部機器都只需要一個「MQ 觸發監視器」。如果本端機器已安裝 WebSphere MQ 伺服器, runmqtrm 指令就會呼叫「MQ 觸發監視器」常駐程式。如果本端機器已安裝 WebSphere MQ 用戶端, runmqtmc 指令就會呼叫「MQ 觸發監視器」常駐程式。

圖 20. OAD 配置範例

此圖顯示範例 OAD 配置。 有四個節點。每一個代表個別的電腦。其中三個包含連接器和 OAD, 這裡面有兩個是 Win2000 機器,第三個是 UNIX 機器;第四個節點是已安裝 ICS 的 Win2000 機器。三個用戶端節點連接至 ICS。三個用戶端都各含一個 OAD,但包含不同數目的連接器。

圖 20 中的配置需要安裝下列軟體:

使用 runmqtrm 在 UNIX 上呼叫「MQ 觸發監視器」時會有問題。mqm 使用者是「觸發監視器」的擁有者,但是可能沒有正確的路徑和許可權,來執行例如 cwadmin 使用者所起始的指令。若要防止這個問題發生, 請複製 runmqtrm 指令,然後取消與 mqm 使用者和群組的關聯性, 並僅將其用於「MQ 觸發監視器」常駐程式的起始。必要的指令如下:

cp /opt/mqm/bin/runmqtrm /opt/mqm/bin/runmqtrm2
 

runmqtrm 複製至 runmqtrm2,以及

chmod ug-s /opt/mqm/bin/runmqtrm2
 

runmqtrm2 指令移除使用者和群組設定。

然後,使用 runmqtrm2 指令來呼叫「MQ 觸發監視器」常駐程式, 發出 runmqtrm2 指令的使用者將擁有此常駐程式。這會產生一個次要問題, 因為發出指令的使用者可能沒有所有的必要許可權可存取佇列管理程式、起始佇列 (放置觸發訊息的位置) 及無法傳送的郵件。 使用 『setmqaut』 程式,將存取 MQ 物件的權限給予所選擇的群組,但是請注意,您無法將權限給予個別使用者。

例如,本身是 『appdev』 群組成員的使用者,必須執行 runmqtrm2。佇列管理程式名稱為 『CALVIN』,起始佇列稱為 『CALVIN.INITQ』,而無法傳送的郵件佇列為 『SYSTEM.DEAD.LETTER.QUEUE』。 請執行下列指令,將執行「觸發監視器」的權限給予 『appdev』 群組:

setmqaut -m CALVIN -t qmgr -g appdev +connect +inq
 

setmqaut -m CALVIN -t queue -n CALVIN.INITQ -g appdev +get
 

setmqaut -m CALVIN -t queue -n SYSTEM.DEAD.LETTER.QUEUE -g appdev +put +inq +passall
 

請注意,該群組的每一個成員都具有存取佇列管理程式的許可權。

有關如何安裝 WebSphere MQ 的詳細資訊,請參閱安裝 IBM WebSphere MQ

為 MQ 觸發的 OAD 配置 WebSphere MQ

若要支援 MQ 觸發的 OAD,必須配置 WebSphere MQ 佇列管理程式來處理觸發程式。 必須將表 30 中的 WebSphere MQ 相關物件建立在包含 InterChange Server 及 WebSphere MQ 佇列管理程式的相同機器上,才能提供此支援。

表 30. WebSphere MQ 觸發之 OAD 的 WebSphere MQ 相關物件
服務 資料庫存取的目的
起始佇列 從 MQ 佇列管理程式接收「MQ 觸發監視器」的觸發訊息。
處理程序定義 說明當「MQ 觸發監視器」從起始佇列擷取觸發訊息時,所呼叫的處理程序。
配接器啟動佇列 從 InterChange Server 接收配接器的觸發事件。 與該佇列相關聯之連接器的連接器組織架構會擷取這些訊息。

若要建立這些 MQ 相關物件,請執行 mqtriggersetup script, 其位於 ProductDir/bin 子目錄中。 請在包含您要啟用自動及遠端重新啟動功能之連接器的機器上執行此 Script。

註:
在您執行 mqtriggersetup 之前,您必須已建立要用於 InterChange Server (ICS) 的 MQ 佇列管理程式。 configure_mq script 會建立佇列管理程式。如需相關資訊,請參閱配置配接器的佇列
mqtriggersetup script 的語法如下:
mqtriggersetup WICS_queueManagerName connName connStartupScript
 

其中:

假設要為一個名為 MyConn 的連接器設定自動及遠端重新啟動功能, 您可以使用下列呼叫來進行 mqtriggersetup

mqtriggersetup InterChangeServer.queue.manager MyConn 
 /IBM/WebSphereBI/connectors/MyConn/connector_manager_MyConn.sh
 

您必須在包含 MQ 佇列管理程式的機器上執行 mqtriggersetup script。 針對相同機器上的每個連接器來執行 mqtriggersetup script。 此外,您也必須針對遠端機器上的每個連接器來執行這個 Script。

啟動 MQ 觸發的 OAD

若要啟動 MQ 觸發的 OAD,您必須以適當的啟動 Script 來明確地啟動「MQ 觸發監視器」。 您必須在連接器所在的每台機器上啟動「MQ 觸發監視器」。

當您安裝 WebSphere MQ 時, 安裝程式會安裝 runmqtrmrunmqtmc 檔案。 這些 Script 會分別隨著 MQ 伺服器或 MQ 用戶端版本來啟動「MQ 觸發監視器」。 例如,下列指令會啟動「MQ 觸發監視器」(MQ 伺服器版本):

runmqtrm -m WICS_queueManager -q INITIATION.QUEUE
 

其中 WICS_queueManager 是 InterChange Server 之 MQ 佇列管理程式的名稱。

註:
若要在「MQ 用戶端」版本中啟動「MQ 觸發監視器」,請在啟動「MQ 觸發監視器」的指令中, 將 runmqtrm 改成 runmqtmc

為 MQ 觸發的 OAD 配置連接器

若要配置個別的連接器來使用自動及遠端重新啟動功能,您必須遵循下列步驟:

  1. 將其 OADAutoRestartAgent 連接器配置內容設定為 true。
  2. 依需要,設定任何其他 OAD 連接器配置內容。

如需有關如何設定這些內容的資訊,請參閱 System Administration Guide

Copyright IBM Corp. 1997, 2004