Relations entre magasins pour les pages de magasin en cache
Si votre magasin utilise des données définies dans un autre magasin via une relation entre magasins, vous devez utiliser les attributs de requête spécifiés par le filtre de cache pour définir les relations. Le filtre de cache est un filtre de servlet qui définit les attributs de requête à partir des informations de session et des informations de relation entre magasins qui peuvent être utilisées par la mémoire cache dynamique WebSphere Application Server. La mémoire cache dynamique utilise ensuite ces informations pour générer des ID de cache et des ID de dépendance qui seront utilisés pour l'invalidation en mémoire cache.
Le filtre de cache crée les informations de relation entre magasins en appelant les méthodes getStorePath() et getStoresForRelatedStore() à partir de StoreAccessBean. Les informations correspondantes sont indiquées dans le tableau suivant :
| Type de relation entre magasins | Identificateur de relation entre magasins | Nom d'attributs de requête pour getStorePath() | Nom d'attributs de requête pour getStoresForRelatedStore() |
|---|---|---|---|
| Stratégie commerciale d'IBM Commerce | -1 | DC_bus_SP_N | DC_bus_RS_N |
| Campagnes d'IBM Commerce | -3 | DC_camp_SP_N | DC_camp_RS_N |
| Catalogue d'IBM Commerce | -4 | DC_cat_SP_N | DC_cat_RS_N |
| Instruction d'IBM Commerce | -5 | DC_cmd_SP_N |
DC_cmd_RS_N |
| Magasin hébergé d'IBM Commerce | -6 | DC_host_SP_N | DC_host_RS_N |
| Prix d'IBM Commerce | -7 | DC_prc_SP_N |
DC_prc_RS_N |
| Référenceur d'IBM Commerce | -8 | DC_ref_SP_N | DC_ref_RS_N |
| Segmentation d'IBM Commerce | -9 | DC_seg_SP_N |
DC_seg_RS_N |
| URL d'IBM Commerce | -10 | DC_url_SP_N |
DC_url_RS_N |
| Vue d'IBM Commerce | -11 | DC_view_SP_N |
DC_view_RS_N |
| Stock d'IBM Commerce | -13 | DC_inv_SP_N |
DC_inv_RS_N |
| Article de base d'IBM Commerce | -14 | DC_baseItem_SP_N |
DC_baseItem_RS_N |
| Magasin d'IBM Commerce | -15 | DC_chs_SP_N |
DC_chs_RS_N |
| Conversion de devises dans IBM Commerce | -17 | DC_currConv_SP_N |
DC_currConv_RS_N |
| Format de devises dans IBM Commerce | -18 | DC_currFmt_SP_N |
DC_currFmt_RS_N |
| Devises gérées dans IBM Commerce | -19 | DC_supCurr_SP_N |
DC_supCurr_RS_N |
| Devise de contre-valeur dans IBM Commerce | -20 | DC_cterCurr_SP_N |
DC_cterCurr_RS_N |
| Format de mesure dans IBM Commerce | -21 | DC_meaFmt_SP_N |
DC_meaFmt_RS_X |
| Contrat dans IBM Commerce | -22 | DC_contract_SP_N |
DC_contract_RS_N |
Exemple de mise en cache de relations entre magasins
Pour comprendre la façon dont fonctionne la mise en cache de pages utilisant une relation entre magasins, prenez connaissance de l'exemple suivant.
La publication de l'exemple d'archive de magasin composite DemandChain.sar, puis la création d'un magasin (par exemple, ResellerOne) sur ce site permettent de créer les magasins suivants :
| ID d'entrepôt | Répertoire | Type de magasin |
|---|---|---|
| 10001 | CommercePlaza | Hub de canal |
| 10002 | CommercePlazaCatalog | magasin de ressources catalogue |
| 10003 | CommercePlaza | Proxy distributeur |
| 10004 | ConsumerDirectResellerProfile | magasin de ressources de vitrine |
| 10051 | ResellerOne | Magasin de revendeur |
ResellerOne (10051), le magasin de revendeur, utilise les ressources définies dans le magasin de ressources de vitrine (10004) et la magasin de ressources de catalogue (1002).
Pour définir les relations de mise en cache, le filtre de cache extrait les informations suivantes :
| ID d'entrepôt | Type de relation | getStorePath() | getStoresForRelatedStore() |
|---|---|---|---|
| 10001 |
|
10002 | non applicable |
| 10001 |
|
10051 | non applicable |
| 10051 |
|
10051, 10002, 10004 | 10051 |
| 10051 |
|
10051, 10004 | 10051 |
| 10051 |
|
10051, 10002 | 10051 |
Le filtre de cache définit ensuite les attributs de requête suivants :
| Relation entre magasins | ID magasin 10051 | ID magasin 10051 | ID magasin 10001 |
|---|---|---|---|
| -1 (stratégie commerciale) | DC_bus_SP_0=10051 DC_bus_SP_1=10002 DC_bus_SP_2=10004 | DC_bus_RS_0=10051 | DC_bus_SP_0=10002 |
| -2 (taxe) | DC_tax_SP_0=10051 DC_tax_SP_1=10004 | DC_tax_RS_0=10051 | |
| -4 (catalogue) | DC_cat_SP_0=10051 DC_cat_SP_1=10002 | DC_cat_RS_0=10051 | DC_cat_SP_0=10002 |
| -6 (magasin hébergé) | DC_host_SP_0=10051 | DC_host_RS_0=10001 | DC_host_SP_0=10051 |
A chaque modification du catalogue de magasins de ressources de catalogue (10002), les pages du catalogue du magasin ResellerOne (10051) doivent être invalidées pour pouvoir utiliser les informations du magasin de ressources de catalogue (10002). Pour que les pages de 10051 soient invalidées, des ID de dépendance supplémentaires doivent être définis pour cette relation entre magasins. L'exemple suivant illustre la définition d'ID de dépendance supplémentaires pour StoreCatalogDisplay :
<!-- Start Store Relationship Dependency Ids -->
<!-- DC_cat1 is the catalog Profile Store ID -->
<dependency-id>storeId
<component id="DC_cat_SP_" type="attribute">
<required>true</required>
<index>1</index>
</component>
</dependency-id>
<dependency-id>storeId:catalogId
<component id="DC_cat_SP_" type="attribute">
<required>true</required>
<index>1</index>
</component>
<component id="catalogId" type="attribute">
<required>true</required>
</component>
</dependency-id>
<dependency-id>StoreCatalogDisplay:storeId
<component id="DC_cat_SP_" type="attribute">
<required>true</required>
<index>1</index>
</component>
</dependency-id>
<!-- Ends Store Relationship Dependency Ids -->
Les ID de dépendance supplémentaires sont créés comme suit :
- storeId:10002
- storeId:catalogId:10002:10051
- StoreCatalogDisplay:storeId:10002
Une fois ces ID de dépendance supplémentaires définis, à chaque modification du magasin de ressources de catalogue 10002 provoquant l'invalidation des pages du magasin de ressources de catalogue, les pages du magasin hébergé (10051) sont également invalidées.