Web 傳訊服務的服務整合匯流排配置

Web 傳訊服務利用 WebSphere® Application Server 6.1.x 版及更新的版本其中所提供的服務整合匯流排,來提供必要的基礎發佈和訂閱功能,以便支援 Bayeaux 用戶端。如果要確定 Bayeaux 發佈者和訂閱者如何與服務整合匯流排互動,當部署提供 Bayeaux 功能的應用程式時,必須提供一些配置參數。

Bayeaux 訂閱通道概念相當於服務整合匯流排中的主題,因此,它能夠將事件分類為相關的群組,例如:/sports/football 或 /weather。 在服務整合匯流排中,主題是在生產者和消費者所連接的主題空間目的地內。 各不同主題空間的主題,彼此完全無關,即使可能同名,也是如此。 因此,Web 傳訊服務的部分配置,使應用程式開發人員有能力指定 Bayeaux 應用程式所用的服務整合匯流排主題空間。

另外,發佈到服務整合匯流排主題空間的事件(訊息)還會套用可靠性來決定訊息在匯流排內的處理方式。 其中包括傳訊基礎架構捨棄訊息的條件。 在某些實務中,當伺服器的資源變成受到限制(也許是因為工作量很高)時,會接受捨棄訊息,但在另一些實務中,卻偏好保留訊息,即使會有伺服器超載的風險,也是如此。

當配置含有工作量管理或安全等概念的進階實務時,您也必須考量這些需求在服務整合匯流排上的連帶作用。 以下會進一步詳細說明各個概念。

下列選項可用來配置配置 Bayeaux 應用程式與服務整合匯流排的互動方式。

  busName

Web 傳訊作業需要服務整合匯流排。 用戶端只能透過單一送入 URI 來連接到單一服務整合匯流排。 只有建立個別 Web 傳訊配置定義並指定不同的匯流排名稱,才有可能連接到多個匯流排,但用戶端必須透過個別 URI 來連接,且使用多重連線。 當使用 Ajax 用戶端時,只可能在單一網頁上,建立單一 Bayeux 連線來通往單一伺服器。 不同的頁面可以指定不同的 URI,連接到不同的匯流排。

名稱: busName
必要或選用: 必要
資料類型: 字串
支援的值: 任何服務整合匯流排的名稱
預設值: 無預設值
說明:

送入的 Web 傳訊用戶端用於發佈或訂閱作業的服務整合匯流排。

  destination

在大部分實務中,Bayeaux 應用程式都必須從單一服務整合匯流排主題空間,來使用或產生訊息。 目的地內容可讓應用程式開發人員指定要將哪個主題空間用於與服務整合匯流排的所有互動。

名稱: 目的地
必要或選用: 選用
資料類型: 字串
支援的值: 任何服務整合匯流排主題空間的名稱
預設值: Default.Topic.Space
說明:

這是作為應用程式消費來源或生產目標的服務整合匯流排主題空間。

指定的目的地可能是真實的主題空間,也可能是主題空間的別名(請參閱別名目的地)。使用別名可讓應用程式隔離於主題空間實際名稱之外。

當利用這個內容來指定 Bayeaux 應用程式所用的主題空間時,移除 Bayeaux 訂閱通道名稱前面的斜線,就是主題空間內的主題名稱,例如:通道名稱 "/sports/football" 對映於服務整合匯流排主題 "sports/football"

如果應用程式開發人員不知道使用哪個主題空間,就會忽略這個內容,使用預設主題空間。

請注意,multipleDestinations 內容會依照下一節所說明來置換這個內容。


  multipleDestinations

在進階實務中,Bayeaux 應用程式可能需要生產或消費多個服務整合匯流排主題空間,例如:在一個 Portlet 環境中,顯示某範圍之不同來源的資料。 在這個情況下,應用程式開發人員可以啟用 multipleDestinations 內容,它會置換 destination 內容,可讓開發人員在 Bayeaux 訂閱通道名稱中,指定所需要之主題空間(或別名)目的地的名稱。

名稱: multipleDestinations
必要或選用: 選用
資料類型: 布林
支援的值: true 或 false
預設值: false
說明:

啟用替代的 Bayeaux 訂閱通道語法來支援在通道名稱中指定目標服務整合匯流排主題空間名稱。

當啟用時,這個內容會導致利用第一個通道區段來指定主題空間的名稱。 比方說,如果要發佈到 "OlympicResults" 主題空間中的 "track/relay4x100" 主題,應用程式就指定下列 Bayeaux 訂閱通道;

/OlympicResults/track/relay4x100

請注意,如果啟用 multipleDestinations,就會忽略 'destination' 內容值。


  可靠性

發佈到服務整合匯流排主題空間的事件(訊息)會套用一個決定訊息在匯流排內之處理方式的「可靠性」。 其中包括傳訊基礎架構捨棄訊息的條件。 在某些實務中,當伺服器的資源變成受到限制(也許是因為工作量很高)時,會接受捨棄訊息,但在另一些實務中,卻偏好保留訊息,即使會有伺服器超載的風險,也是如此。

名稱: reliability
必要或選用: 選用
資料類型: 字串
支援的值:
  • BestEffortNonPersistent
  • ExpressNonPersistent
  • ReliableNonPersistent
  • ReliablePersistent
  • AssuredPersistent
預設值: ExpressNonPersistent
說明:

指定 Bayeaux 應用程式發佈的事件(訊息)傳給服務整合匯流排的可靠性層次。

這些選項的行為詳細資料可以在下列訊息可靠性層次區段中找到。

請注意,對於不可延續的訂閱,在伺服器重新啟動之後,由於訂閱已不存在,訊息也無法使用。 這表示選擇兩個持續性可靠性層次之一,好處有限。 在大部分情況下,應該使用非持續性值之一。


  clientCanPublish

Bayeux 通訊協定支援用戶端發佈到服務整合匯流排。 依所開發的應用程式而定,您有可能不限制訊息只能從伺服器流向 Web 傳訊用戶端。 比方說,您可能偏好要求用戶端透過 Web 應用程式 (Servlet) 來發佈,對於訊息發佈到服務整合匯流排之前的訊息內容檢查,有較大的控制能力。 依預設,用戶端無法透過 Bayeux 通訊協定來發佈。

名稱: clientCanPublish
必要或選用: 選用
資料類型: 布林
支援的值: true 或 false
預設值: false
說明:

指出是否允許 Web 傳訊用戶端進行發佈。 依預設,用戶端不能進行發佈。 您必須將 clientCanPublish 明確設為 true,以支援用戶端發佈。


  authType

當啟用匯流排安全時,送入的 Web 傳訊用戶端必須經過鑑別過和授權,才能連接到服務整合匯流排。 請參閱維護啟用 Web 傳訊的應用程式安全,以取得相關資訊。

名稱: authType
必要或選用: 選用
資料類型: 字串
支援的值:
  • none
  • auth_alias
  • basic
  • sso
預設值: none
說明:

當啟用匯流排安全時,送入的 Web 用戶端需要一個身分來取得服務整合匯流排授權。 請指定這個配置參數來決定在哪裡取得登入服務整合匯流排的鑑別資訊。

  • "none" 選項指示不用任何使用者 ID 和密碼來登入服務整合匯流排。
  • "auth_alias" 指出利用取自 authAlias 配置指引的使用者 ID 和密碼來登入服務整合匯流排。
  • 當應用程式啟用 Web 安全時,可以使用 "basic" 選項。 "basic" 選項用基本鑑別標頭中的認證來登入服務整合匯流排。
  • 當應用程式啟用 Web 安全時,可以使用 "sso" 選項。 "sso" 選項利用 LTPA Cookie 的認證來登入服務整合匯流排。

如果任何選項無法擷取認證,就以空白使用者 ID 和密碼來登入服務整合匯流排。 如果啟用服務整合匯流排安全,Web 用戶端無法連接來執行 Web 傳訊作業。


useDurable

當 useDurable 配置內容設為 true 時,Bayeux 訂閱要求會使用服務整合匯流排的可延續訂閱。 可延續的訂閱可在訂閱者不在作用時,用來保留所發佈的某主題的訊息。

名稱: useDurable
必要或選用: 選用
資料類型: 布林
支援的值: true 或 false
預設值: false
說明:

當 Web 傳訊使用可延續訂閱,在 Web 用戶端的服務整合匯流排訂閱進入非作用狀態時,在過了一小段時間之後,Web 用戶端可以回復作業,不會遺漏訊息。 訂閱可能進入非作用狀態的部分原因如下:伺服器失敗、傳訊引擎失敗,或傳訊引擎連線失敗。

當在叢集環境中執行啟用 Web 傳訊的應用程式時,您應該考慮將 useDurable 和 useDistributedSession 配置內容設為 true,以便取得最佳失效接手結果。 當這兩個內容都設為 true 時,Web 傳訊用戶端可以在伺服器之間進行失效接手,以及回復任何可延續訂閱。

當 Web 傳訊使用可延續訂閱時,每個 Web 傳訊用戶端都會與它最初連接的傳訊引擎保持連結狀態。 當 Web 傳訊用戶端取消訂閱某個主題時,不論是由於特定 Bayeux 取消訂閱作業、Bayeux 切斷連線作業,或 Bayeux 階段作業到期,傳訊引擎都必須在執行中,取消訂閱作業才能完成。 Web 傳訊服務會追蹤可延續訂閱資訊,可能的話,會將它設為到期,不過,有時不可能這麼做。 在這些狀況中,必須透過管理程序來手動刪除可延續訂閱。

在 Web 傳訊用戶端的可延續訂閱能夠回復之前,往往會有一小段延遲。 Bayeux 重新連線重試建議機制用來引導 Web 傳訊用戶端在一小段時間之後重新連線,以便還原這些可延續訂閱。 重新連線間隔由 reinitInterval 配置內容來控制。 重試連線的時間量上限由 MaxReinitDuration 配置內容來控制。

當使用可延續訂閱時,還有一些額外負擔,應該先設想規劃,再設定這個內容。 請參閱服務整合匯流排文件,以取得相關資訊。

autoReinit

如果 autoReinit 配置內容設為 true,當與服務整合匯流排通訊發生問題時,Web 傳訊用戶端會重新連接服務整合匯流排,重新訂閱任何主題。

名稱: autoReinit
必要或選用: 選用
資料類型: 布林
支援的值: true 或 false
預設值: false
說明:

當 Web 傳訊用戶端與服務整合匯流排通訊發生錯誤時,autoReinit 內容應該設為自動重新起始設定服務整合匯流排連線,以及重新訂閱先前所訂閱的任何主題。 在失去訂閱與重新起始設定之間的間隔期間,任何發佈到某一主題的訊息都不會抵達 Web 傳訊用戶端。

如果 useDurable 和 autoReinit 這兩個內容都設為 true,useDurable 內容就會生效。

當在叢集中執行啟用 Web 傳訊的應用程式時,您可以考慮將 autoReinit 和 useDistributedSession 配置內容設為 true。 當這兩個內容都設為 true 時,Web 傳訊用戶端可以在伺服器失敗之時回復作業,Web 傳訊作業會回復在另一部伺服器上。 如果 autoReinit 和 useDurable 內容都設為 false,就會將 Bayeux 重新交換信號建議傳給用戶端,指示用戶端應該重新交換信號,起始設定一段新的 Bayeux 階段作業。

在 Web 傳訊用戶端的連線和訂閱能夠重新起始設定之前,往往會有一小段延遲。 Bayeux 重新連線重試建議機制用來引導 Web 傳訊用戶端在一小段時間之後重新連線,以便重新起始設定用戶端的訂閱。 這個重新連線間隔由 reinitInterval 配置內容來控制。 重試連線的時間量上限由 MaxReinitDuration 配置內容來控制。

reinitInterval

當 autoReinit 或 useDurable 配置內容是 true,與服務整合匯流排通訊發生錯誤時,會依照 reinitInterval 配置內容所指定來引導 Web 傳訊用戶端定期重新連線,以便回復作業。

名稱: reinitInterval
必要或選用: 選用
資料類型: 整數
支援的值: 以秒為單位來指定的值,在 1 和 300 之間。
預設值: 10
說明:

在 Web 傳訊用戶端與服務整合匯流排通訊發生錯誤之後,可能要經過一小段時間,Web 傳訊用戶端才能回復與服務整合匯流排的通訊。 當出現這個情況時,會向用戶端傳送 Bayeux 重新連線重試間隔建議,引導用戶端根據 reinitInterval 配置內容所指定的間隔來重新連線。 . Web 傳訊用戶端會嘗試重新連線,最多可達 maxReinitDuration 配置內容所指定的時間上限。

maxReinitDuration

maxReinitDuration 配置內容指定 Web 傳訊用戶端會嘗試以服務整合匯流排來回復作業的時間量上限。

名稱: maxReinitDuration
必要或選用: 選用
資料類型: 整數
支援的值: 以秒為單位來指定的值,在 10-600 之間
預設值: 60
說明:

當 autoReinit 或 useDurable 配置內容設為 true 時,Web 傳訊用戶端會嘗試以服務整合匯流排來回復作業。 在部分狀況中,有可能無法適時回復作業。 過了 maxReinitDuration 時間之後,Web 傳訊用戶端就不再試圖以服務整合匯流排來回復作業,Bayeux 階段作業將會過期。



使用條款 | 意見