WebSphere MQ 是可讓 InterChange Server 與連接器進行通訊的傳訊軟體。
本節說明如何安裝及配置 WebSphere MQ - 不論是照原本的用法使用,或是當作在 InterChange Server 環境中使用的「Java 傳訊服務 (JMS)」提供者使用。請參閱"配置 WebSphere MQ for JMS",將 WebSphere MQ 配置為 JMS 提供者。
當下列狀況套用到您的環境時,請使用 JMS:
在上述情況下,請將 WebSphere MQ 當作 JMS 提供者使用,不要當作原來的 MQ 使用,因為原有的 MQ 必須依賴 CORBA 才能進行管理及使用其他元件。作為 JMS 提供者時, 則不需要依賴 CORBA。此外,原有的 MQ 只會將進入的事件存至伺服器。
請將 WebSphere MQ 安裝在與 InterChange Server 相同的網路上。 此安裝需要執行下列一般步驟:
後續幾節詳細說明這些步驟。
WebSphere MQ 軟體會安裝在 /MQ_inst_home 的 mqm 子目錄中 (用於 WebSphere MQ 的元件) 及 /var (用於工作資料) 目錄。因此,這些目錄 (或檔案系統) 必須要有足夠的空間來存放 WebSphere MQ。
建議您建立和裝載下列目錄作為檔案系統:/var/mqm、/var/mqm/log、/var/mqm/errors。也建議將日誌放在不是用於佇列 (/var/mqm) 的另一個實體磁碟機。表 9 列示WebSphere MQ 元件的空間需求。
WebSphere MQ 需要一個名為 mqm 的特殊使用者帳戶,才能夠執行。
AIX |
---|
|
Solaris |
---|
HP-UX |
---|
|
Linux (Red Hat 及 SuSE) |
---|
|
就許多 UNIX 系統而言,若在 /etc/passwd 檔的 mqm 項目中,以星號 (*) 填入第二個欄位,將會停用此帳戶。如果您有其他登入驗證機制,請參閱系統手冊。
請確定 mqm 群組是 WebSphere Business Integration 管理者 (依預設是 admin) 的預設群組。
使用者帳戶的預設群組位於 WebSphere Business Integration 管理者帳戶項目的第四個欄位中。 此欄位必須包含 mqm 群組的群組號碼。若要取得群組號碼,您可以從 Shell 提示畫面執行下列指令:
grep mqm /etc/group
群組號碼位於輸出的結果行的第三個欄位。將此群組號碼插入 /etc/passwd 中 WebSphere Business Integration 管理者項目的預設群組欄位中。
當您是 root 時,您可以使用 groups 指令確認 mqm 列示在 root 擁有成員資格的群組輸出。如需 WebSphere Business Integration 管理者的相關資訊,請參閱建立 IBM WebSphere Business Integration 管理者帳戶。
在 Red Hat Linux 上,建議您變更環境變數 LD_ASSUME_KERNEL,方法是,針對即將安裝 WebSphere MQ 的使用者 (mqm),將下列指令行新增至此使用者的 .bash_profile 上:
export LD_ASSUME_KERNEL=2.4.19
然後,您從指令提示中發出下列指令來執行 .bash_profile
. .bash_profile
。
建議您使用下列安裝位置來安裝 WebSphere MQ 軟體:
如果 /WebSphere_MQ_inst_home 和 /var 檔案系統沒有足夠空間, 您可以為 WebSphere MQ 軟體建立解壓縮目錄 (例如 /home_dir/mqm),然後移到此目錄。 您必須建立從 /WebSphere_MQ_inst_home/mqm 和 /var/mqm 目錄到此解壓縮目錄的符號鏈結。
如需相關資訊,請參閱決定空間需求。
IBM 將支援的 WebSphere MQ 軟體版本放在個別的光碟上。 這些 CD 包含要安裝在系統上的幾個軟體目錄。
若要在現行環境中驗證 WebSphere MQ 的版本, 請在 /WebSphere_MQ_inst_home/mqm/bin 提示下鍵入 mqver 指令。
下列步驟提供 WebSphere MQ 安裝程序的簡短概觀:
若要在 Solaris 上的 /WebSphere_MQ_inst_home 和 /var 目錄安裝 WebSphere MQ:
pkgadd -d /mq_cd/mq_solaris
其中 mq_cd 是 WebSphere MQ 光碟的裝載點。
# 您可以建立類似下列二行指令,以啟用預設的轉換功能, # 但要移除表示註解的 # 字元。 default 0 500 1 1 0 default 0 850 1 2 0
商業整合系統需要您以下面列出的內容配置佇列。 在連接器的配置檔中,指定每一個佇列的名稱作為標準內容。
在某個埠號建立連線後會呼叫一些程式。「WebSphere MQ 接聽器」使用埠號 1414。 因此,您必須編輯列示在設定埠號 的系統檔, 才能配置埠號 1414 去啟動「WebSphere MQ 接聽器」。
針對單一 InterChange Server 實例配置 WebSphere MQ 接聽器--位於 UNIX 機器的單一 InterChange Server 實例會使用「WebSphere MQ 佇列管理程式」。「WebSphere MQ 接聽器」使用預設埠號 1414。 因此,您必須編輯列示在設定埠號 的系統檔, 才能配置埠號 1414 來啟動「WebSphere MQ 接聽器」。
若要為「WebSphere MQ 接聽器」配置埠號 1414,請:
WebSphereMQ 1414/tcp # WebSphere MQ channel listener
使用資訊的直欄之間的定位點,使直欄對齊現存的 /etc/services 項目。
WebSphereMQ stream tcp nowait mqm /WebSphere_MQ_inst_home/mqm/bin/amqcrsta amqcrsta -m your-queue-name.queue.manager
其中 your-queue-name 是「WebSphere MQ 佇列管理程式」的名稱。
這整個指令在 /etc/inetd.conf 檔中是單一的指令行。使用欄位之間的定位點使欄位對齊檔案中的前面項目。請按照顯示的內容輸入這一行。此檔案的內容有區分大小寫。
ps -ef | grep inetd
請勿使用 『grep inetd』 輸出行最後一個直欄的程序 ID。
kill -HUP proc_id
例如,假設步驟 3 中的 ps 指令產生 inetd 程序的下列輸出:
root 144 1 0 17:01:40 ? 0:00 /usr/sbin/inetd -s
因為第二個直欄是程序 ID,所以 kill 指令是:
kill -HUP 144
您也可以重新啟動系統,以便 inetd 常駐程式重新讀取 /etc/inetd.conf 檔。
為多個 InterChange Server 實例配置 WebSphere MQ 接聽器--多個 InterChange Server 實例可以共用相同的「WebSphere MQ 佇列管理程式」。
不過,如果這些實例的其中一個實例需要停止「佇列管理程式」,那麼其他實例就無法存取「佇列管理程式」。例如,如果 InterChange Server 的開發和品質控制實例位於同一部機器,您可能需要配置這些實例使您可以針其中一個實例啟動和停止「佇列管理程式」而不影響其他實例。
「WebSphere MQ 接聽器」可在 TCP/IP 埠接聽「WebSphere MQ 佇列管理程式」。不過,在一個 TCP/IP 埠上無法有多個「佇列管理程式」。因此,若要在一台電腦有多個「佇列管理程式」,您必須配置每個「佇列管理程式」使用不同的埠號。對於各個埠號, 您必須編輯列示在設定埠號的系統檔, 才能配置相關的埠號來啟動「WebSphere MQ 接聽器」。
若要配置多個「WebSphere MQ 接聽器」:
例如,若要分別為兩個「WebSphere MQ 接聽器」配置埠號 1414 和 1415,請將下列指令行新增至 /etc/services:
WebSphereMQ1 1414/tcp # WebSphere MQ listener for q1.queue.manager WebSphereMQ2 1415/tcp # WebSphere MQ listener for q2.queue.manager
使用資訊的直欄之間的定位點,使直欄對齊現存的 /etc/services 項目。
例如,若要啟動兩個「佇列管理程式」(q1.queue.manager 和 q2.queue.manager),請將下列指令行新增至 /etc/inetd.conf:
WebSphereMQ1 stream tcp nowait mqm /MQ_inst_home/mqm/bin/amqcrsta amqcrsta -m q1.queue.manager
WebSphereMQ2 stream tcp nowait mqm /WebSphere_MQ_inst_home/mqm/bin/amqcrsta amqcrsta -m q2.queue.manager
使用欄位之間的定位點使欄位對齊檔案中的前面項目。請按照顯示的內容輸入這一行。檔案內容有區分大小寫。
安裝程式假設「佇列管理程式」包括本端 InterChange Server 名稱。如果您以其它佇列名稱建立「佇列管理程式」, 那麼 WebSphere Business Integration 管理者必須在安裝程序中輸入此名稱。
InterChange Server 假設它在 1414 埠上與「WebSphere MQ 佇列管理程式」通訊。如果 InterChange Server 使用 1414 以外的埠與「佇列管理程式」通訊, 那麼 WebSphere Business Integration 管理者必須在 InterChange Server 安裝程序中,將 PORT 配置參數新增至 InterchangeSystem.cfg 檔的 MESSAGING 區段。 若要設定此 PORT 參數,WebSphere Business Integration 管理者必須知道要指派給它的埠號。
您可以使用下列任何方法,來配置您的配接器所需的 WebSphere MQ 佇列:
WebSphere Business Integration Adapters 提供一組 Script 檔供您執行,以針對部署的配接器配置必要的 WebSphere MQ 佇列。
下列 Script 檔位於 ProductDir/mqseries 中:
crossworlds_mq.tst 檔案的內容如下所示。您必須以手動方式編輯此檔案。 檔案的頂端部份包含原生的 MQ 資訊,底端部份包含特定的 JMS 資訊。 您可以使用此檔案,指定配置每一個配接器所需的佇列。 請依下列方式編輯檔案:
DEFINE QLOCAL(IC/SERVER_NAME/DestinationAdapter) DEFINE QLOCAL(AP/DestinationAdapter/SERVER_NAME)
這些僅適用於使用 WebSphere InterChange Server 的商業整合系統。
*******************************************************************/ * */ * 定義所有伺服器/配接器對組的本端佇列。 */ * 對於 MQ 佇列,必須有下列定義: */ * Application = DEFINE QLOCAL (AP/AdapterName/ServerName) */ * */ * 範例: */ * DEFINE QLOCAL(AP/ClarifyConnector/CrossWorlds) */ * */ * DEFINE QLOCAL(AP/SAPConnector/CrossWorlds) */ * */ * 如果您的伺服器名稱並非 'CrossWorlds', */ * 請務必變更項目以符合實施伺服器名稱。 */ ********************************************************************/ DEFINE QLOCAL(IC/SERVER_NAME/DestinationAdapter) DEFINE QLOCAL(AP/DestinationAdapter/SERVER_NAME) ********************************************************************/ * 對於每一個 JMS 佇列 (遞送傳輸是 JMS), * 預設值遵循下列慣例: * AdapterName/QueueName ********************************************************************/ DEFINE QLOCAL(AdapterName/AdminInQueue) DEFINE QLOCAL(AdapterName/AdminOutQueue) DEFINE QLOCAL(AdapterName/DeliveryQueue) DEFINE QLOCAL(AdapterName/RequestQueue) DEFINE QLOCAL(AdapterName/ResponseQueue) DEFINE QLOCAL(AdapterName/FaultQueue) DEFINE QLOCAL(AdapterName/SynchronousRequestQueue) DEFINE QLOCAL(AdapterName/SynchronousResponseQueue) ********************************************************************/ * 定義預設的 CrossWorlds 通道類型 */ ********************************************************************/ DEFINE CHANNEL(CHANNEL1) CHLTYPE(SVRCONN) TRPTYPE(TCP) ********************************************************************/ * CrossWorlds MQSeries 物件定義結束 */ ********************************************************************/
如需使用 WebSphere MQ 指令來配置佇列的相關資訊,請參閱 WebSphere MQ:System Administration Guide 和 WebSphere MQ:Script (MQSC) Command Reference。
WebSphere MQ 使用信號和共用記憶體。 預設的 Solaris 或 HP-UX 核心配置很可能不足以支援這些功能。因此,您必須編輯核心配置檔/etc/system,使 WebSphere MQ 可以正確執行。
表 17 列出 Solaris 的核心配置參數,而表 18 列出 HP-UX 的核心配置參數。
這些參數會新增至 /etc/system 檔下半部。
表 17. WebSphere MQ 的 Solaris 核心配置設定
set msgsys:msginfo_msgmap=1026 set msgsys:msginfo_msgmax=4096 set msgsys:msginfo_msgmnb=4096 set msgsys:msginfo_msgmni=50 set semsys:seminfo_semaem = 16384 set semsys:seminfo_semmap = 1026 set semsys:seminfo_semmni = 1024 set semsys:seminfo_semmns = 16384 set semsys:seminfo_semmnu=2048 set semsys:seminfo_semmsl = 100 set semsys:seminfo_semopm = 100 set semsys:seminfo_semume = 256 set shmsys:shminfo_shmmax = 209715200 set shmsys:shminfo_shmmin = 1 set shmsys:shminfo_shmmni=1024 set shmsys:shminfo_shmseg = 1024 |
表 18. WebSphere MQ 的 HP-UX 核心配置設定
set Shmmax=0x3908b100 set Shmseg=1024 set Shmmni=1024 set Shmem=1 set Sema=1 set Semaem=16384 set Semvmx=32767 set Semmns=16384 set Semmni=2048 set Semmap=2050 set Semmnu=2048 set Semume=256 set Msgmni=1025 set Msgtql=2048 set Msgmap=2050 set Msgmax=65535 set Msgmnb=65535 set Msgssz=16 set Msgseg=32767 set Maxusers=400 set Max_thread_proc=4096 set maxfiles=2048 set nfile=10000 |
如果您在 /etc/system 檔錯誤地輸入核心配置參數,那麼在系統重新啟動時會出現錯誤訊息。在此情況下,請修正 /etc/system 中的錯誤並重新啟動系統。
對於每一個配置為搭配 WebSphere MQ for JMS 傳輸使用的連接器,請使用「連接器配置程式」工具來編輯本端連接器的配置檔。
指定佇列管理程式並配置表 19 列出的內容值。 在此範例中,JmsConnector
是配置的連接器
內容 | 值 |
---|---|
AdminInQueue | JMSCONNECTOR\ADMININQUEUE |
AdminOutQueue | JMSCONNECTOR\ADMINOUTQUEUE |
DeliveryQueue | JMSCONNECTOR\DELIVERYQUEUE |
FaultQueue | JMSCONNECTOR\FAULTQUEUE |
RequestQueue | JMSCONNECTOR\REQUESTQUEUE |
ResponseQueue | JMSCONNECTOR\RESPONSEQUEUE |
SynchronousRequestQueue | JMSCONNECTOR\SYNCHRONOUSREQUESTQUEUE |
SynchronousResponseQueue | JMSCONNECTOR\SYNCHRONOUSRESPONSEQUEUE |
您可以將 UserName 和 Password 保留空白,除非您使用用戶端模式存取佇列管理程式。
在進行這些變更之後,請重新載入儲存庫並重新啟動 InterChange Server 與連接器。
您可能需要修訂 WebSphere MQ 訊息佇列中的預設配置,以便處理大量的訊息或大型物件。
若要修訂訊息佇列的最大允許深度和訊息的最大允許長度,請按照下列程序的說明,在適當的 .tst 檔設定 MAXDEPTH 和 MAXMSGL 內容的值。
依預設,WebSphere MQ 訊息佇列設為最多保留 5000 則訊息。在高資料流量或在起始轉換成 InterChange Server 期間,可能會超過此預設值, 造成錯誤並使連接器無法將訊息公佈到 ICS。為了幫助避免這種狀況,您可以增加 在佇列中容許的訊息最大數量,以及在所有佇列中容許的未確定訊息最大數量。偏好值可依特定的情況而變更。例如,如果您正在執行起始轉換成 InterChange Server,建議您將最大佇列深度設為至少 20,000 則訊息。
若要變更 MAXDEPTH 設定,請在每一個佇列定義之後,新增下列選項:
ALTER QLOCAL (QUEUENAME) MAXDEPTH (DEPTH DESIRED)
例如:
DEFINE QLOCAL(AP/EMailConnector/Server_Name) ALTER QLOCAL(AP/EMailConnector/Server_Name) MAXDEPTH(20000)
您也可以變更佇列管理程式,使所有的佇列中可容許更多的標準未確定訊息。可容許的未確定訊息數量應是每一個佇列的最大訊息深度 (MAXDEPTH) 的總和。InterChange Server 使用的記憶體應該不會增加,除非未確定訊息的數量增加。
若要變更 MAXUMSGS 設定,請新增下列一行:
ALTER QMGR MAXUMSGS (NUMBER)
例如:
ALTER QMGR MAXUMSGS (400000)
如果您知道您的商業物件大於 MAXMSGL 預設值 4 MB,才需要修改此值。 若要變更 MAXMSGL 值,請在每個佇列定義之後新增下列指令:
ALTER QLOCAL (QUEUENAME) MAXMSGL (一個訊息可容許的最大位元組數)