HCL Commerce Version 9.1.13.0 or later

Configuration du serveur de requête prohibitConcurrentCacheMiss

Le nouveau paramètre prohibitConcurrentCacheMiss a la valeur de configuration true et est activé par défaut. Vous pouvez la désactiver en la définissant sur false dans la section CrossTransactionCache du fichier de configuration wc-component.json du serveur de requête. Lorsqu'il est configuré en tant que true, le résultat est une diminution de la charge imposée aux serveurs ElasticSearch en raison de l'exécution répétée de la même requête à partir du même serveur de requête.

Lorsque la valeur de configuration CrossTransactionCache/ avoidConcurrentCacheMiss ou CrossTransactionCache/ prohibitConcurrentCacheMiss est true, un CacheEntryLock (unique pour un ID de cache particulier) est acquis avant qu'une erreur de cache ne soit traitée. Cela entraîne des échecs simultanés du cache pour le même ID de cache dans la même machine virtuelle Java du serveur de requête jusqu'à ce que l'unité d'exécution contenant le verrou ait fini de traiter l'échec du cache. Lorsque l'unité d'exécution en attente reprend, elle recherche dans le cache l'entrée de cache qui vient d'y être placée par l'unité d'exécution qui détenait précédemment le verrou. L'effet est d'éviter d'émettre la même requête à partir du même serveur de requête plus de fois que nécessaire, réduisant ainsi la charge placée sur les serveurs ElasticSearch.

CacheEntryLock peut être configuré avec un nombre maximal d'unités d'exécution qui peuvent attendre le verrou à tout moment, et avec un nombre maximal de secondes qu'une unité d'exécution peut attendre pour acquérir le verrou. Lorsque l'une de ces deux limites est dépassée, une unité d'exécution poursuit et traite l'échec du cache (lorsque prohibitConcurrentCacheMiss est false) ou arrête la demande de serveur de requête en cours (lorsque prohibitConcurrentCacheMiss est true). Un code réponse HTTP 429 sera renvoyé si l'unité d'exécution est arrêtée.

CacheEntryLock est configuré dans la section com.ibm.commerce.datatype.CacheEntryLock du fichier de configuration wc-component.json.

La configuration de seuil spécifie le nombre maximal d'unités d'exécution en attente à tout moment.

La configuration maxWaitSeconds spécifie le nombre maximal de secondes qu'une unité d'exécution peut attendre pour acquérir le verrou.

Pour plus d'informations sur le fichier de configuration wc-component.json pour le serveur de requêtes Elasticsearch, consultez Configuration des services Query dans ZooKeeper.