WebSphere Commerce utilizza i trigger del database per indicare che il contenuto è stato modificato. Questi trigger scrivono informazioni nella tabella CACHLOG per indicare le pagine da rimuovere dalla cache.
Se WebSphere Commerce è stato personalizzato, è possibile decidere di scrivere i propri trigger. In genere, si dovrebbe creare i propri script di trigger e non modificare quelli forniti con WebSphere Commerce.
Considerare lo scenario seguente:
E' stato aggiunto un comando di WebSphere Commerce che visualizza il luogo in cui i clienti possono prelevare la merce dal negozio. L'URL è:
http://mySite/webapp/wcs/stores/servlet/ShowPickupAddress?storeId=1&location=3
E' stata creata la tabella PICKUP_SITES che memorizza le informazioni sul luogo di prelevamento della merce, che contiene:
L'esempio seguente indica un trigger che rimuove queste pagine dalla cache:
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'));
Questo trigger indica quanto segue:
I trigger devono riempire quanti più dati è possibile nella voce di tabella CACHLOG. Una o più colonne vuote indicano che l'utente desidera rimuovere dalle pagine tutti i valori per tale parametro.
Quando la riga viene inoltrata nella tabella CACHLOG, il programma di cleanup della cache rimuove le pagine indicate nell'iterazione successiva purché l'invalidazione automatica della pagina sia stata abilitata.
![]() |