WebSphere Commerce 會利用資料庫觸發指令來指出內容已經改變。 這些觸發指令會將資訊寫入 CACHLOG 表格中,以指出必須從快取中移除哪些頁面。
如果您自訂了 WebSphere Commerce,您可以撰寫自己的觸發指令。 一般而言,您應建立自己的觸發指令 Script,而不要修改 WebSphere Commerce 所提供的 Script。
請瞭解下列實務情況:
您新增了一項 WebSphere Commerce 指令以顯示一個位置,
讓客戶在此從您商店中取得他們的商品。
其 URL 為:
http://mySite/webapp/wcs/stores/servlet/ShowPickupAddress?storeId=1&location=3
您建立了 PICKUP_SITES,用以儲存取貨位置資訊。其中包含:
下列所示的觸發指令會將這些頁面從快取中移除:
CREATE TRIGGER pickup_1
AFTER UPDATE ON PICKUP_SITES
REFERENCING OLD AS N FOR EACH ROW MODE DB2SQL
INSERT INTO cachlog (cacurlname, cachashkey, cacmemberkey, cachashvalue, cacmembervalue,
cacstmp, cactrigid)
VALUES ('ShowPickupAddress', 'location', 'storeId', N.location, 1, CURRENT TIMESTAMP,
INT('1001'));
CREATE TRIGGER pickup_1
AFTER DELETE ON PICKUP_SITES
REFERENCING OLD AS N FOR EACH ROW MODE DB2SQL
INSERT INTO cachlog (cacurlname, cachashkey, cacmemberkey, cachashvalue, cacmembervalue,
cacstmp, cactrigid)
VALUES ('ShowPickupAddress', 'location', 'storeId', N.location, 1, CURRENT TIMESTAMP,
INT('1002'));
此觸發指令指出:
觸發指令應會儘可能在 CACHLOG 表格項目中填入更多的資料。若讓一或多個直欄留白, 表示您想移除內含該參數之任何值的頁面。
一旦將列確定到 CACHLOG 表格中, 只要您有啟用「自動讓頁面無效」,則快取清理工作程式會在所指頁面下次重複時即將之移除。
![]() |