WebSphere Commerce は、データベース・トリガーを使用して、コンテンツがいつ変わったかを示します。 これらのトリガーは CACHLOG テーブルに情報を書き込んで、キャッシュから除去する必要があるページを指示します。
カスタマイズされた WebSphere Commerce の場合、ユーザー独自のトリガーを書き込むことができます。 通常はユーザー独自のトリガー・スクリプトを作成します。 WebSphere Commerce で提供されているスクリプトは変更しないでください。
以下のシナリオについて考えてみましょう。
ユーザーは、顧客がユーザーのストアから商品取引を選ぶ場合に進むロケーションを表示する、
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 テーブル・エントリーに必要なだけのデータを埋め込む必要があります。 1つまたは複数の列をブランクのままとすると、そのパラメーターについて値があるページを除去したいことを表します。
その行が CACHLOG テーブルにコミットされると、キャッシュ・クリーンアップ・ワーカーは、自動ページ無効化が使用可能であった場合に提供されるその次の反復で指示されたページを除去します。
![]() |