[18.0.0.1 以及更新版本]

在 Liberty 中使用訊息端點來管理訊息

管理部署成訊息端點之訊息驅動 Bean (MDB) 的訊息遞送。

關於這項作業

您可以使用伺服器指令或 MBean,來管理送往您訊息驅動 Bean 之訊息的遞送,且這些訊息驅動 Bean 是在特定的端點(即為目的地)上擔任接聽器。利用伺服器指令或 MBean,您可以管理您訊息驅動 Bean 所使用的企業資訊系統 (EIS) 資源。

利用伺服器指令和 MBean,您可以啟動和關閉您應用程式內的特定端點,以確保訊息只會遞送至正在與健全 EIS 資源互動的接聽端訊息驅動 Bean。當 EIS 資源的行為不符合預期時,此功能可讓您將 JMS 應用程式的效能最佳化。當正在接聽的訊息驅動 Bean 針對不健全的資源呼叫作業,訊息通常無法順利遞送至端點。例如,當傳訊提供者(亦即,入埠資源配接器)的基礎訊息驅動 Bean 嘗試對沒有回應的資料庫伺服器確定交易時,該傳訊提供者可能無法將訊息遞送至端點。
提示: 請將您的訊息驅動 Bean 設計成會將商業處理程序委派給其他 Enterprise Bean。 請勿直接在訊息驅動 Bean 中直接存取 EIS 資源,改成透過委派 Bean 來間接執行這個動作。
對於提供訊息端點來存取資源的應用程式,能夠啟動和關閉訊息端點,可舒緩這類應用程式的兩個問題:
  • 失敗的訊息需要其他處理程序,例如,將這些訊息重新遞送給接聽端點,或將它們重新導向處理失敗訊息的替代目的地。 另外,資源配接器也可能無限次地將訊息重新遞送到某一個端點。
  • 訊息重新導向需要能夠處理失敗訊息的特殊目的地實作(佇列和接聽器),以及偵測訊息失敗的邏輯。 訊息重新導向很複雜,很可能發生錯誤,計算成本很高。

如果能夠關閉(暫停)和重新啟動(回復)特定的訊息端點,就可舒緩這些問題,因為這可讓管理者關閉端點而不處理注定失敗的訊息。關閉訊息端點之後,您可以修復造成問題的資源,然後重新啟動端點來回復處理訊息要求。 您的疑難排解不會影響資源配接器或管理端點的應用程式。

您也可以使用啟動規格中的 autoStart 屬性,讓訊息端點開始處於關閉狀態。當您將這個內容設為 false 時,當啟動應用程式時,訊息驅動 Bean 不會開始接收訊息。當您知道必須完成某些作業、必須啟動服務或必須執行檢查時,請在訊息處理開始之前,使用此設定來自動取消啟動訊息端點。啟動訊息端點的方式,應與重新啟動您在其作業期間暫停之訊息端點的方式相同。autoStart 屬性的預設值是 true

程序

結果

在您關閉(暫停)訊息端點時,您觀察到的行為,會因若干因素而不同,其中包括管理訊息端點的資源配接器、訊息端點的配置,以及應用程式伺服器的拓蹼。相關的部分特定範例如下:

接聽不可延續主題的 MDB
關閉(暫停)訊息端點所隱含的行為,通常會因所履行的功能而不同。例如,如果您已配置訊息驅動 Bean,讓它接聽不可延續的主題,則關閉訊息端點,會導致訂閱關閉。 訊息驅動 Bean 不會收到在訊息端點暫停期間所發佈的任何訊息。
接聽可延續主題的 MDB
如果您已配置訊息驅動 Bean,讓它接聽可延續的主題,則關閉訊息端點,會導致訂閱關閉。 視配置而定,在訊息端點暫停期間所發佈的任何訊息,可能維持不供傳訊引擎使用,一直要到回復訊息端點為止,屆時這些訊息就會被取用。
使用叢集的 MDB
如果您的傳訊引擎支援叢集,視配置而定,有可能將要送往已暫停之訊息端點的訊息,重新導向至其他的訊息驅動 Bean。

指示主題類型的圖示 作業主題

檔名:twlp_msgendpoint.html