操作 WebSphere Process Server 環境概述

CloudSpace發表於2010-04-15

轉自:http://www.ibm.com/developerworks/cn/websphere/library/techarticles/0912_herrmann1/0912_herrmann1.html

WebSphere Process Server

IBM® WebSphere Process Server 可以用來在面向服務體系結構 (SOA) 中執行業務整合應用程式。它提供高階的業務過程管理系統,可以執行業務過程,能夠與訊息傳遞設施、Web 服務和各種後端系統整合。

體系結構概述

圖 1 顯示 WebSphere Process Server 的主要元件。


圖 1. WebSphere Process Server 元件
WebSphere Process Server 元件

圖 1 的底部顯示 WebSphere Process Server 的基礎設施 —— WebSphere Application Server。位於基礎設施層之上的是 SOA 核心層,其中包含 Service Component Architecture (SCA)、業務物件 (BO) 和通用基礎事件(CEI)。

SOA 核心層的上面是支援服務。這包括來自 Enterprise Service Bus (ESB) 的仲裁流以及各種對映元件、選擇器和業務日曆。最上面一層包含用於編排業務過程的各種元素:業務過程和業務狀態機、人工任務和業務規則。

WebSphere Process Server 使用多個資料庫或資料庫表儲存執行時資料。這些資料庫用來儲存以下方面的資訊:

  • 業務過程、人工任務和業務狀態機:這些資訊儲存在 Business Process Choreographer 資料庫 (BPEDB) 中。每個 Business Process Choreographer 部署目標有一個資料庫。
  • 由 Business Process Choreographer Explorer 報告功能使用的來自業務過程事件的資料:這些資訊儲存在 Observer 資料庫 (OBSRVDB) 中。每個 Business Process Choreographer 報告功能部署目標使用一個資料庫。
  • 關於業務規則、選擇器、仲裁、Business Space 和失敗事件的資訊:這些資訊儲存在公共資料庫 (WPRCSDB) 中。每個單元使用一個資料庫。
  • Enterprise Service Bus 日誌:這些資訊儲存在 ESB Log Mediation 資料庫 (EsbLogMedDB) 中。
  • 訊息傳遞資訊和 Service Integration Bus (SIB) 訊息:它們儲存在由 WebSphere Process Server 使用的匯流排的 SIB 資料庫表 (MEDB) 中。每個訊息傳遞引擎有自己的一組表。
  • 公共事件:這些資料儲存在公共事件資料庫 (EVENT) 中。每個 CEI 部署目標有一個資料庫。

執行時拓撲

根據業務需要或可用的基礎設施,WebSphere Process Server 可以使用多種拓撲。圖 2 給出許多客戶環境中常用的三種主要拓撲。可以使用管理控制檯提供的模式和嚮導安裝和配置這些拓撲。


圖 2. 執行時拓撲
執行時拓撲

除了叢集式拓撲之外,WebSphere Process Server 還可以在單獨的伺服器環境中執行。但是,這種設定更適合開發環境,典型的生產環境最好使用叢集式拓撲。因此,本系列主要關注叢集式環境和其中適用的拓撲。

關於 WebSphere Process Server 拓撲的更多資訊,請參見 IBM Redbook WebSphere Business Process Management V6.2 Production Topologies

WebSphere Process Server 環境通常是叢集或單獨伺服器例項的組合,它們執行伺服器程式碼、資料庫、使用者登錄檔以及後端和前端系統。管理員主要負責維護 WebSphere Process Server 環境。這包括執行時伺服器本身,以及用來儲存 WebSphere Process Server 執行時資料的資料庫。儘管常常由不同的管理員分別負責這些資源,但是我們認為應該對保持 WebSphere Process Server 環境順暢執行所需的整個設定有一個總體瞭解。

對系統健康狀態的監視和恢復

生產環境需要連續地監視。因為 WebSphere Process Server 基於 WebSphere Application Server,所以 Application Server 管理實踐也適用於 WebSphere Process Server。另外,有專門針對 WebSphere Process Server 的系統監視工具和實踐。

WebSphere Application Server 提供大量工具,可以從應用伺服器的角度管理系統。詳細資訊參見 IBM Redbook WebSphere Application Server V6.1: System Management and Configuration

WebSphere Process Server 為 Application Server 管理控制檯提供更多功能,比如管理失敗的事件和瀏覽公共事件。下面幾小節將解釋需要監視的內容。

需要設定監視工具,從而在發生系統事件時通知系統管理員。例如,某個佇列超過了為它定義的閾值。另外,這些工具提供從系統收集的資訊,從而修復或響應這些事件。至少應該通過自動化指令碼收集操作支援所需的所有資料。

WebSphere 的 MBean API 與 Java™ Management Extension 相容,它們提供許多可監視的專案,可以以程式方式管理系統中的更改。可以使用這些 API 方便地編寫定製的監視應用程式。關於這個主題的更多資訊,請參見以下資訊中心主題:關於這個主題的更多資訊,請參見以下資訊中心主題:

除此之外,還可以實現複合應用程式監視工具。可以使用這些工具提供 WebSphere Process Server 環境中部署的複合服務的可用性和響應時間報告。

實現這種工具的方法是,讓定製的服務定期呼叫涉及的子系統上的 “心跳” 應用程式,或者通過現有的監視、警報和報告基礎設施中整合的 Tivoli® ITCAM 等解決方案實現。

檢查日誌檔案

提示:應該定期檢查日誌中的錯誤訊息。

WebSphere Process Server 環境中的 JVM 會在日誌檔案中寫入資訊,如果啟用了跟蹤,還會將資訊寫入跟蹤檔案。這些日誌檔案能夠很好地反映系統的總體健康狀態。另外,如果在執行時處理期間發生意外問題,就會生成 First Failure Data Capture (FFDC) 檔案。

在典型的 WebSphere Process Server 叢集環境中有多個 JVM。每個 JVM 根據自己的需要記錄資訊和錯誤(見表 1)。


表 1. JVM 在 WebSphere Process Server 環境中的典型用途

JVM 用途 要尋找的資訊
Deployment Manager 中心配置點。 Deployment Manager 的日誌檔案對於判斷配置問題很重要。
Node Agent 通訊和配置更新。 Node Agent 的 JVM 日誌對於判斷通訊問題通常很重要。
ME 叢集成員 駐留訊息引擎。 JVM 日誌顯示處於 “Started” 或 “Joined” 狀態的訊息引擎,或者是否有失敗。
應用程式叢集成員 通常駐留 Business Process Choreographer。 JVM 日誌顯示執行業務過程和人工任務的相關資訊。
支援叢集成員 通常駐留 Common Event Infrastructure 和 Business Space。 JVM 日誌顯示執行 Business Space 和處理 CEI 事件的相關資訊。

關於可用的日誌記錄選項和如何指定它們的概述,請參見 IBM Redbook WebSphere Application Server V6.1: System Management and Configuration。它概述可以使用的所有日誌記錄選項。

需要定期檢查日誌檔案以便快速發現問題。另外,應該定期監視 FFDC 目錄。從 WebSphere Process Server 6.1 開始,JVM 的 SystemOut.log 檔案中的條目會表示出 FFDC 的建立以及它們在系統上的位置。

一般情況下,生產環境中的跟蹤應該被設定為最低階別。如果沒有特殊的需要(例如為了判斷問題),不要 啟用詳細級別高於 INFO 的跟蹤。

應該保留那些記錄各個元件在啟動伺服器之後進行初始化的日誌檔案,因為它們包含重要的資訊,比如元件的構建級別可能與 WebSphere Process Server 的總體構建級別不同。例如,如果在安裝一個臨時補丁之後沒有呼叫 bpeupgrade.jacl,BPC Explorer 就會處於與 WebSphere Process Server 系統總體級別不同的級別。

我們還建議啟用詳細的垃圾收集跟蹤。它對效能的影響非常小,可以連續地監視與堆使用情況相關的系統行為。關於如何啟用這個特性及記錄資料的位置的更多資訊,請參見 Enabling verbose garbage collection (verboseGC) in WebSphere Application Server

應該確保檔案系統中的磁碟空間和訪問許可權支援 WebSphere Process Server 日誌記錄。

除了 WebSphere Application Server 日誌記錄和跟蹤特性之外,WebSphere Process Server 還提供 跨元件跟蹤。這種跟蹤顯示 SCA 元件互動方面的詳細資訊。

監視和管理業務過程和人工任務例項

在 WebSphere Process Server 解決方案中廣泛使用了業務過程例項,包括業務狀態機和人工任務例項。它們儲存在 Business Process Choreographer 資料庫 (BPEDB) 中。為了保證系統的健康狀態,資料庫的規模不應該無限制地增長。

管理已完成的業務過程例項和人工任務

提示:應該儘可能減少例項的總數。

業務過程和人工任務例項完成之後,例項可能留在資料庫中,也可能自動地刪除。對於在完成之後沒有自動刪除的例項,WebSphere Process Server 系統管理員需要特別注意。

您需要與擁有例項的相關人員一起決定已完成的例項必須保留多長時間。需要根據這個決定實現一個管理操作,刪除不再需要的例項。本系列的 第 2 部分 詳細討論從 Business Process Choreographer 資料庫中清除已完成例項的各種方法。

在大多數情況下,把例項保留在資料庫中是為了以後檢查它們的相關資訊。但是,一定要明白一點:執行時資料庫只儲存快照而不是完整的歷史。本系列中後續的一篇文章將討論適當的存檔方法。

修復業務過程例項

提示:檢查和修復正在等待的過程例項。

長時間執行的業務過程的壽命可能長達幾年,但是 WebSphere Process Server 環境中執行的業務過程的業務功能所有者常常會定義最大時間。建議定期檢查那些已經超過最大持續時間的過程例項。另外,需要定期檢查在執行業務過程期間是否發生了錯誤,導致某些活動進入 STOPPED 狀態。這些活動需要人工干預,過程例項才能繼續執行。

在 BPC Explorer 中,可以使用預定義的 “Critical processes” 檢視,還可以定義定製的檢視,根據指定的篩選條件只獲取有問題的例項。我們建議為您的業務過程例項定義這種檢視並定期監視它們。需要結合業務功能分析顯示的所有例項,決定是需要增加持續時間,還是需要人工干預(比如重新啟動活動或終止這個例項)。

本系列中後續的一篇文章將提供詳細資訊。

監視和管理失敗的事件

提示:儘可能消除失敗的事件。

如果在 SCA 元件之間非同步地處理請求時發生技術故障,就會產生失敗的事件。可以在管理控制檯中使用失敗事件管理器使用者介面檢查這些事件,然後重新提交或刪除它們。可以通過管理控制檯或 MBean 介面訪問失敗事件管理器。您需要與應用程式所有者一起制定處理失敗事件的管理戰略。關於失敗事件管理器的更多資訊,請參見 WebSphere Process Server 資訊中心主題 Failed event manager

可以實現自動處理已知的失敗事件的過程,還可以實現自動監視失敗事件管理器中的新事件的過程。我們建議這麼做。可以使用 MBean 介面編寫自己的監視應用程式。關於失敗事件管理器介面的更多資訊,請參見 FailedEventManager interface

本系列中後續的一篇文章將提供關於失敗事件處理的更多資訊。

監視和管理 CEI 事件儲存的大小

提示:如果可能的話,根本不要使用 CEI 事件儲存。

可以把 WebSphere Process Server 中的元件發出的公共事件儲存在公共事件資料儲存(EVENTS 資料庫)中,而不是釋出在 CEI 匯流排中。可以啟用或禁用事件的傳送和儲存。如果您的系統支援將這些事件儲存在事件資料庫中,那麼需要使用管理控制檯中的 CBE Browser 監視並主動地管理它的大小。

資訊中心的以下主題討論如何使用公共事件:

監視和管理服務整合匯流排目的地中的訊息

WebSphere Process Server 允許通過訊息傳遞整合後端系統。它還在服務整合匯流排上使用訊息傳遞進行內部處理。因此,監視和管理系統中的訊息是很重要的。除了關注生成的 SCA 模組佇列和 JMS 匯出和匯入使用的定製佇列之外,還需要特別關注以下佇列。

監視和重放 Business Flow Manager 和 Human Task Manager 持有佇列

提示:保持持有佇列為空。

必須監視 Business Flow Manager (BFM) 持有佇列和 Human Task Manager (HTM) 持有佇列。持有佇列中的訊息常常用於導航長時間執行的業務過程例項。在 BFM 持有佇列中出現訊息的原因可能是系統的臨時負載過高,這種情況可能導致事務超時並回滾。為了在這種情況下不丟失訊息,系統把訊息放在持有佇列中。這些佇列中的訊息數量應該是零,因此如果其中出現訊息,就需要管理員人工干預。

從 WebSphere Process Server V6.2 開始,可以通過失敗事件管理器訪問這些訊息,還可以重放它們。本系列中後續的一篇文章將解釋管理這些訊息的各種方法。

監視系統異常目的地

提示:保持系統異常目的地為空。

WebSphere Process Server 使用幾個服務整合匯流排進行訊息傳遞。每個匯流排有一個系統異常目的地。服務整合匯流排無法處理的訊息儲存在這裡。無法處理訊息的原因可能是:

  • 系統負載過重,這導致事務超時並回滾。
  • 訊息的內容損壞或消費應用程式無法讀取它。
  • 應用程式錯誤。

應該監視系統異常目的地的佇列深度。目標是保持這些佇列為空。可以使用定製的管理指令碼監視佇列,還可以使用 Service Integration Bus ExplorerService Integration Bus Destination Handler 等工具。從 WebSphere Process Server V6.2 開始,還可以在管理控制檯中使用 Service Integration Bus Browser。本系列中後續的一篇文章將詳細解釋如何處理這些佇列中的訊息。

監視 WebSphere MQ 監聽器埠的狀態

提示:確保監聽器埠正常執行。

在從 WebSphere MQ 佇列獲取訊息時,Process Server 要使用監聽器埠。需要不斷監視這些埠,確保它們已經啟動,讓 Process Server 可以從 WebSphere MQ 獲取訊息。

可以使用管理控制檯或 ListenerPort MBean 監視系統中的監聽器埠的狀態。我們建議使用 ListenerPort MBean 實現一個監視應用程式,用它定期檢查埠狀態並根據需要重新啟動埠。

監視事件序列鎖

提示:確保釋放鎖。

事件序列可以確保 WebSphere Process Server 元件按事件的交付次序處理它們。在整個業務整合場景中維護事件次序以保證非同步呼叫正常執行。

事件序列服務通過在 WebSphere Process Server 的後端資料庫上儲存鎖來確保這個功能正常執行。

有時候無法釋放這些鎖,就需要使用 esAdmin 命令人工釋放鎖。更多資訊參見以下 WebSphere Process Server 資訊中心主題:

監視系統中使用的介面卡的事件儲存

提示:確保到達的工作不會堆積起來。

WebSphere 有許多介面卡,可以在模組的輸入端和輸出端使用它們。在輸入端使用介面卡時,建議使用事件儲存儲存從資料庫、檔案系統或 EIS 讀取的事件,從而避免在交付過程中丟失事件。在這種情況下,應該定期監視事件儲存,避免事件堆積起來。

到達的工作(比如平面檔案介面卡的檔案系統中的檔案或 JDBC 介面卡的資料庫表中的資料)不應該以超常的速度增長。

關於介面卡的更多資訊請參見 Configuring and using adapters

不斷監視和維護資料庫

提示:定期更新資料庫統計資料。

要想維護健康的生產環境,必須管理它的後端資料庫。第 3 部分 討論一般的最佳實踐。

不斷監視和維護作業系統和磁碟空間

提示:不斷監視作業系統資源。

為了確保系統健康,不但需要維護 WebSphere Process Server,還需要定期監視作業系統級別的情況。應該監視 CPU 和記憶體使用量、網路和 I/O 利用率以及空閒磁碟空間的數量。

為了給臨時性的高峰負載留出足夠的容量,平均資源使用量不應該接近基礎設施的限制。

維護 wstemp 目錄的大小

提示:在維護時刪除它。

當管理單元中的 JVM 停止並且沒有活躍的配置會話時,需要定期清除這個目錄的內容。這對安裝應用程式等配置操作的效能有積極影響。

應該在部署過程中包含清除 wstemp 目錄內容的步驟。在這個過程中,一定不要 刪除 wstemp\events 子目錄及其內容。關於 wstemp 目錄的詳細資訊參見 Content and maintenance of the wstemp directory for WebSphere Process Server V6

對系統應用修改

需要定期修改 Process Server 系統,包括引入新的應用程式、更新應用程式、更改配置和應用最新的服務包。這些修改都需要仔細地管理。

在對生產環境做任何修改之前,必須在與生產環境相似的測試環境中進行充分的測試。在生產環境中不加控制地引入修改會破壞系統。例如,在現有系統中新增新的應用程式可能會影響現有應用程式的服務水平,因為系統資源現在由更多應用程式分享。應該用更改日誌記錄修改的內容、修改的時間和應用修改的人。

在引入修改(比如產品維護或應用程式更新)之前,還應該建立系統的備份。全面可靠的備份戰略是每個 WebSphere Process Server 環境都必須包含的部分。

應用程式管理

除了 WebSphere Application Server 應用程式管理實踐(比如安裝、解除安裝和更新應用程式)之外,還有 WebSphere Process Server 特有的應用程式管理主題和最佳實踐。

與一般的 Application Server 應用程式不同,WebSphere Process Server 應用程式的元件可能有長時間執行的例項。例如,系統中的業務過程例項可能會執行好幾周。解除安裝相應的應用程式會破壞業務操作。

Process Server 應用程式基於 SCA 模組。可以通過 Process Server 管理控制檯檢查這些模組。在應用程式管理期間,需要特別關注一些 Process Server SCA 元件實現(比如業務過程)。例如,在解除安裝或更新包含業務過程或人工任務的應用程式時,需要額外的操作。另外,還可以停止過程和任務模板,這會禁止建立新的例項,但是仍然允許現有的例項繼續執行。

WebSphere Process Server 應用程式管理的一個重要方面是 SCA 模組、業務過程和人工任務的版本化。Process Server 的版本化概念在引入新的應用程式版本的同時,允許老版本仍然存在並完成正在處理的長時間工作。關於業務過程和人工任務版本化的更多資訊參見 Versioning business processes and human tasks in WebSphere Process Server

本系列中後續的一篇文章將提供關於應用程式管理的詳細資訊。

應用產品維護

有計劃的維護活動有助於避免那些 IBM 已經發現併為其提供瞭解決方案的系統異常行為。應該制定維護計劃,從而及時地應用 Application Server 和 Process Server 補丁,避免不必要的生產系統停機。

可以通過以下任務應用維護:

  • 預訂 My Notifications 支援內容更新,定期檢查可用的補丁,判斷它們對自己的生產環境的影響。
  • 根據生產戰略的需要,在下一個釋出計劃中包含應用相關補丁的步驟。

另外,需要通過有效的通知過程及時瞭解環境中連線的系統的所有計劃內或計劃外維護視窗,從而在 WebSphere Process Server 環境中採取相應的必要措施。

結束語

在本文中,您瞭解了操作 WebSphere Process Server 環境的基本概念。本文只是一個起點,本系列中後續的文章將詳細討論這裡提到的各個主題。

第 2 部分 介紹清理已完成的過程和任務例項以保持最佳 BPEDB 大小的方法。第 3 部分 討論 BPEDB 的資料庫級維護。本系列中的後續文章將討論應用程式管理、監視和修復或存檔方法等主題。

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/14789789/viewspace-659796/,如需轉載,請註明出處,否則將追究法律責任。

相關文章