每個請求的階段作業大小取決於階段作業中所儲存的階段作業資訊量。
若要改善整體效能,請儘可能降低階段作業中的資訊量。
可透過 持續性範圍設定,微調每個請求的階段作業大小。請從 HTTP 階段作業持續性範圍的下列選項中選擇:
session:每次伺服器將階段作業資訊儲存至 HADB 時,便會序列化並儲存整個階段作業物件。
modified-session:伺服器僅會在階段作業已修改時儲存階段作業。伺服器可截取對 Bean 的 setAttribute() 方法之呼叫,以偵測有無修改。此選項不會偵側對內部物件的直接修改,因此在這類情況下,必須編寫 SFSB 程式碼以明確呼叫 setAttribute()。
modified-attribute:伺服器僅會儲存自上次儲存階段作業以來,已修改 (已插入、已更新或已刪除) 的屬性。這與 modified-session 有相同的缺點,但是若套用適當,則可大幅降低 HADB 的寫入流量需求。
若要使用此選項,應用程式必須:
在每次修改階段作業狀態時,呼叫 setAttribute() 或 removeAttribute()。
確定各屬性之間沒有交叉參照。
在多個屬性之間分布階段作業狀態,或者至少在唯讀屬性和可修改屬性之間分布階段作業狀態。
下表是持續性範圍選項的優缺點摘要。