組合以便可以共用階段作業資料
依預設,階段作業管理機能會根據 Servlet 2.3 以及更新版本的 API 規格,支援 Web 模組的階段作業範圍設定。 只有相同 Web 模組中的 Servlet 才能存取與特定階段作業相關聯的資料。 不過,您可以使用 IBMApplicationSession 物件或 IBM® 延伸規格 (共用階段作業環境定義) ,在 Web 模組範圍之外共用資料。
關於這項作業
IBMApplicationSession 物件是一個母項階段作業物件,可供 Web 模組的階段作業擷取,且可以在商業層次應用程式中的所有 Web 模組之間共用階段作業屬性。 商業層次應用程式的預設範圍是企業應用程式。 共用階段作業環境定義選項也會延伸階段作業屬性的範圍。 使用共用階段作業環境定義延伸,整個商業層次應用程式或預設企業應用程式只有一個階段作業物件。
如果您將共用階段作業用於商業層次應用程式,則放置在階段作業中之所有物件的類別檔必須存在於隔離的共用程式庫中,且在所有應用程式之間共用。
使用 IBMApplicationSession 方法的好處是每一個 Web 模組都可以維護自己的階段作業,並具有共用階段作業的參照。 換句話說,來自用戶端的多個要求 (每一個都指定唯一的 Web 應用程式) 會產生具有共用階段作業 ID 的多個階段作業。 您可以讓任何共用階段作業 ID 的階段作業失效,而不會影響其他階段作業。 如果另一個 Web 應用程式正在使用該階段作業 ID ,則來自用戶端的新要求會重複使用階段作業 ID。 在階段作業 ID 的所有階段作業都失效之後,如果沒有 Web 應用程式正在使用該階段作業 ID ,則來自用戶端的新要求不會重複使用階段作業 ID。
如果您要從舊版產品移轉應用程式,則 IBMApplicationSession 方法需要變更應用程式的應用程式邏輯。
BLA1
中的一個企業應用程式安裝在一部伺服器上,而 BLA1
中的第二個企業應用程式也安裝在另一部伺服器上時,您無法使用這個選項。 在這種分割安裝中,應用程式可能會使用分散式階段作業在 Web 模組之間共用階段作業屬性,但在不同 Web 模組中進行階段作業的並行存取時,會失去階段作業資料完整性。 它也會嚴格限制使用部分階段作業管理特性,例如 TIME_BASED_WRITES。對於已啟用這個共用階段作業環境定義延伸的企業應用程式,單一企業應用程式內的多個 Web 模組會共用一個階段作業物件。 因此,會在不同的 Web 模組之間使用一個階段作業 ID。 忽略企業應用程式內 Web 模組上的階段作業管理配置。 如果在企業應用程式層次改寫階段作業管理,則會使用在企業應用程式上定義的階段作業管理配置。 否則,會使用 Web 儲存器上的階段作業管理配置。 如果在商業層次應用程式內使用多個企業應用程式,階段作業管理配置必須在商業層次應用程式內的所有應用程式和 Web 模組之間共用。
對於階段作業事件,會呼叫定義在商業層次應用程式或企業應用程式內所有 Web 模組中的 httpSession 接聽器。 不保證接聽器呼叫的順序。請完成下列各項,以便在商業層次應用程式之間共用階段作業資料。