Intégration de HCL Commerce version 9 avec WebSphere eXtreme Scale
Intégrez WebSphere eXtreme Scale pour améliorer les performances à volume élevé.
Présentation
Avant de décider d'intégrer HCL Commerce à WebSphere eXtreme Scale, passez en revue les avantages de l'intégration, les conditions préalables et les étapes de configuration nécessaires. Vous pouvez intégrer IBM WebSphere eXtreme Scale à IBM HCL Commerce version 9.0.0.7 et les versions ultérieures pour améliorer les performances de votre implémentation à volume élevé. Le programme sous licence WebSphere eXtreme Scale est une grille de données élastique, évolutive et en mémoire que vous pouvez utiliser comme cache avancé pour WebSphere Commerce. WebSphere eXtreme Scale traite un volume de transactions massif avec une grande efficacité et une évolutivité linéaire. L'intégration de WebSphere eXtreme Scale peut offrir des avantages de performance significatifs aux clients HCL commerce à volume élevé.
WebSphere eXtreme Scale a été utilisé dans HCL Commerce version 7.x et 8.x comme fournisseur de cache externe.
Prérequis
- Le serveur WebSphere eXtreme Scale nécessite la version 8.6.1.2 ou une version ultérieure. À partir de cette version, les clients WebSphere eXtreme Scale qui s'exécutent à la fois dans la version standard WebSphere Application Server et dans WebSphere Application Server Liberty peuvent accéder simultanément au même serveur WebSphere eXtreme Scale.
- HCL Commerce nécessite la version 9.0.0.7 ou une version ultérieure. À partir de cette version, le client WebSphere eXtreme Scale est inclus dans le Docker de serveur d'applications (pour le serveur de trasactions, de magasin et de recherche HCL Commerce).
- Le taux d'échec dans le cache est beaucoup plus élevé que le taux d'accès au cache, ce qui signifie que l'amélioration du taux d'accès au cache peut améliorer considérablement les performances.
- L'objet de cache est de grande taille, ou le nombre total d'entrées de cache est très important (par exemple, des millions d'entrées de cache). Dans ces circonstances, le stockage de l'instance de cache dans la machine virtuelle Java locale du serveur d'applications nécessite une très grande taille de segment de mémoire.
- Lorsque les événements d'invalidation du cache ne se produisent pas fréquemment, ce qui signifie qu'il n'y a pas un grand nombre d'appels d'invalidation délivrés à WebSphere eXtreme Scale.
- Avant de commencer
- Bien que le client WebSphere eXtreme Scale soit inclus dans des conteneurs Docker d'application, la connexion WebSphere eXtreme Scale n'est pas activée par défaut. Pour activer l'intégration WebSphere eXtreme Scale, vous devez effectuer les étapes de configuration de ce tutoriel.
Procédure
1. Configuration du serveur de transactions
La procédure de configuration du serveur de transactions est différente de celle utilisée pour configurer le serveur de recherche et de magasin, car l'environnement du serveur est le serveur d'applications WebSphere traditionnel plutôt que Liberty.
- Exécutez la commande Run Engine create-xs-domain pour créer un domaine WebSphere eXtreme Scale. Le nom d'hôte et le port du catalogue WebSphere eXtreme Scale sont nécessaires pour exécuter la commande Run Engine create-xs-domain. Par exemple :
run create-xs-domain test.cn.ibm.com 2809Dans cet exemple,
test.cn.ibm.comest le nom hôte du serveur de catalogue WebSphere eXtreme Scale, et2809est le port d'écoute.Cette étape crée le fichier de configuration catalogservice.xml dans le référentiel de configuration du serveur d'applications WebSphere.
Remarque : Exécutez l'étape 1 une seule fois. - Connectez l'instance de cache spécifique à WebSphere eXtreme Scale. Vous avez besoin du nom d'instance du cache Java Naming and Directory Interface et de la nouvelle taille du cache pour exécuter la commande Run Engine connect-basecache-wxs.
- Pour le BaseCache, appelez connect-basecache-wxs. Par exemple :
Dans cet exemple, 5000 est la nouvelle taille de cache pour baseCache. Le fichier de configuration baseCache est server.xml, et le fichier de configuration pour d'autres instances de cache est resources-pme502.xml.run connect-basecache-wxs 5000Remarque : La commande de baseCache est différente pour d'autres instances de cache, car le fichier de configuration mis à jour est différent. - Pour d'autres instances de cache, appelez connect-objectcache-wxs. Par exemple :
Dans cet exemple, services/cache/WCLayoutDistributedMapCache est le nom de l'instance de cache cible Java Naming Directory Interface etrun connect-objectcache-wxs services/cache/WCLayoutDistributedMapCache 10001000est la nouvelle taille de cache.Vous devez spécifier la nouvelle taille du cache lorsque vous connectez une instance de cache spécifique à WebSphere eXtreme Scale, car le calcul total du nombre d'entrées du cache est différent lors de l'utilisation du fournisseur de cache par défaut (local) que lors de l'utilisation du fournisseur de cache WebSphere eXtreme Scale. Lorsque le fournisseur de cache par défaut est utilisé, le nombre total d'entrées du cache est déterminé uniquement par le paramètre CacheSize de l'instance de cache.
Lorsque le fournisseur de cache WebSphere eXtreme Scale est utilisé, le nombre total d'entrées du cache est égal à
CacheSize*Partition-number/Replica-number. Dans ce scénario, Patition-number et Replica-number sont déterminés par la configuration parallèle du serveur WebSphere eXtreme Scale.Par conséquent, lorsque vous placez une instance de cache dans WebSphere eXtreme Scale, le paramètre CacheSize doit être ajusté en fonction de la configuration parallèle du serveur WebSphere eXtreme Scale.Important : Ignorer la spécification de taille du cache peut provoquer un comportement inattendu, tel qu'une erreur de dépassement de mémoire sur le serveur WebSphere eXtreme Scale.En outre, dans cette procédure, l'étape 2 ne place qu'une seule instance de cache dans WebSphere eXtreme Scale. Si vous devez placer plusieurs instances de cache dans WebSphere eXtreme Scale, exécutez l'étape 2 une fois pour chaque instance de cache nécessaire.
Il s'agit d'un exemple de fichier Docker pour personnaliser l'image Docker du serveur de transactions en utilisant les commandes Run Engine pour activer l'intégration de WebSphere eXtreme Scale :FROM repname/library/ts-app:tsapp RUN run create-xs-domain test.cn.ibm.com 2809 && \ run connect-basecache-wxs 2000 && \ run connect-objectcache-wxs services/cache/DM_UserCache 10000 && \ run connect-objectcache-wxs services/cache/WCPriceDistributedMapCache 5000 && \ ... - Pour le BaseCache, appelez connect-basecache-wxs. Par exemple :
2. Configuration des serveurs de recherche et de magasin
La procédure de configuration des serveurs de recherche et de magasin est différente de celle utilisée pour configurer le serveur de transactions, car l'environnement du serveur est Liberty, et non le serveur d'applications WebSphere traditionnel.
- Activez la fonction de cache élastique. Le nom d'hôte et le port de catalogue de WebSphere eXtreme Scale sont nécessaires pour exécuter la commande Run Engine enable-xs-feature. Par exemple :
Dans cet exemple,run enable-xs-feature test.cn.ibm.com 2809test.cn.ibm.comest le nom hôte du serveur de catalogue WebSphere eXtreme Scale, et2809est le port d'écoute.Cette étape crée un fichier de configuration (elasticCache.xml) dans le dossier Liberty configDropins. Le contenu du fichier comprend l'activation de la fonctionnalité elasticCacheClient-1.0 et la définition d'une valeur par défaut elasticCacheClient (avec le nom d'hôte et le port de WebSphere eXtreme Scale spécifiés).
- Connectez l'instance de cache spécifique à WebSphere eXtreme Scale. Le nom d'instance du cache Java Naming Directory Interface et la nouvelle taille du cache sont nécessaires pour exécuter les commandes connect-searchcache-wxs et connect-crscache-wxs.
- Pour le serveur de recherche, appelez connect-searchcache-wxs. Par exemple :
Dans cet exemple, services/cache/SearchFacetDistributedMapCache est le nom de l'instance de cache cible Java Naming Directory Interface etrun connect-searchcache-wxs services/cache/SearchFacetDistributedMapCache 20002000est la nouvelle taille de cache.Remarque : La commande du serveur de recherche est différente de la commande du serveur de magasin, car le modèle de configuration du fichier de configuration est différent. - Pour le serveur de magasin, appelez connect-crscache-wxs. Par exemple :
Dans cet exemple, services/cache/WCLayoutDistributedMapCache est le nom de l'instance de cache cible Java Naming Directory Interface etrun connect-crscache-wxs services/cache/WCLayoutDistributedMapCache 20002000est la nouvelle taille de cache.Remarque : Contrairement au serveur de transactions, il n'y a pas de différenciation entre baseCache et d'autres instances de cache. Par conséquent, vous utilisez la même commande Run Engine pour le serveur de recherche et le serveur de magasin, et le nom Java Naming Directory Interface de baseCache estbaseCache.
Il s'agit d'un exemple de fichier Docker pour personnaliser l'image Docker du serveur de recherche en utilisant les commandes Run Engine pour activer l'intégration de WebSphere eXtreme Scale :FROM repname/library/search-app:searchapp RUN run enable-xs-feature test.cn.ibm.com 2809 && \ run connect-searchcache-wxs services/cache/SearchFacetDistributedMapCache 2000 && \ ...Il s'agit d'un exemple de fichier Docker pour personnaliser l'image Docker du serveur de magasin en utilisant les commandes Run Engine pour activer l'intégration de WebSphere eXtreme Scale :FROM repname/library/crs-app:crsapp RUN run enable-xs-feature test.cn.ibm.com 2809 && \ run connect-crscache-wxs baseCache 2000 && \ run connect-crscache-wxs services/cache/WCLayoutDistributedMapCache 1000 && \ ... - Pour le serveur de recherche, appelez connect-searchcache-wxs. Par exemple :
3. Configuration avancée
Lorsque vous effectuez les étapes de configuration de base (étape 1 et étape 2), toutes les instances de cache sont placées dans la grille WebSphere eXtreme Scale par défaut nommée DYNACACHE_REMOTE. Différentes instances de cache sont placées dans différentes mappes, et le modèle de nom est IBM_DC_PARTITIONED_ plus le nom de l'instance de cache.
En fonction des performances ou d'autres considérations, vous pouvez placer des instances de cache dans une grille et une mappe WebSphere eXtreme Scale. Dans ce scénario, deux autres paramètres sont requis lorsque vous exécutez les commandes Run Engine pour l'étape 2.
run connect-searchcache-wxs services/cache/SearchFacetDistributedMapCache 2000 searchGrid MapADans cet exemple, searchGrid est le GridName cible et MapA est le MapName cible.Limitations
Ces hypothèses ont été faites lors du développement des commandes Run Engine, ce qui peut limiter votre utilisation des commandes. Pour contourner ces limitations, vous devez configurer HCL Commerce différemment (par exemple, en mettant à jour directement le fichier de configuration).
- Invalidation du cache entre le serveur de transactions et le serveur de magasin
- Lorsqu'une instance de cache du serveur de magasin est placée dans WebSphere eXtreme Scale, l'instance de cache correspondante (avec le même nom Java Naming Directory Interface) du serveur de transactions doit également être mise dans WebSphere eXtreme Scale (en utilisant le même serveur de catalogue, la même grille et la même mappe). Sinon, le contenu du cache généré par le serveur de magasin ne peut pas être correctement invalidé par un message d'invalidation du serveur de transactions.
- Limitation du serveur de catalogue WebSphere eXtreme Scale unique
- L'implémentation actuelle de la commande Run Engine ne crée qu'un catalogue WebSphere eXtreme Scale par défaut (nom d'hôte et port) dans le fichier de configuration. Par conséquent, toutes les instances de cache doivent accéder au même serveur de catalogue WebSphere eXtreme Scale. Vous souhaitez peut-être que différentes instances de cache accèdent à différents serveurs de catalogue WebSphere eXtreme Scale pour des raisons de disponibilité. Dans ce scénario, vous pouvez effectuer l'implémentation à l'aide d'une adresse IP virtuelle ou d'un DNS dynamique. Toutefois, si vous souhaitez spécifier un autre nom d'hôte du serveur WebSphere eXtreme Scale pour différentes instances de cache, vous ne pouvez le faire que dans l'environnement Liberty pour les serveurs de magasin et de recherche. En outre, vous devez modifier le fichier de configuration directement pour créer plusieurs entrées elasticCacheClient.
- Limites concernant l'utilisation de gridName et de mapName dans l'environnement Liberty
- Pour la configuration avancée dans l'environnement Liberty, les paramètres gridName et mapName doivent être uniques. Cela signifie que vous ne pouvez pas placer deux instances de cache différentes du serveur de recherche ou de magasin dans la même grille non par défaut. Remarque : Il n'y a pas de limites similaires sur le serveur de transactions dans l'environnement du serveur d'applications WebSphere traditionnel.
Problèmes connus
- Exception d'outil de diagnostic de premier niveau dans le serveur de transactions
- Pour la configuration avancée, lorsque le paramètre gridName est spécifié dans le serveur de transactions dans un environnement de serveur d'applications WebSphere, une exception d'outil de diagnostic de premier niveau concernant le paramètre gridName se produit dans le journal. Voici un exemple du message d'exception est :
Cette exception peut être ignorée car la fonctionnalité fonctionne toujours et l'exception ne se produit que lors du démarrage du serveur.FFDC Exception:java.lang.NoSuchFieldException SourceId:com.ibm.ws.util.FieldInitializer ProbeId:133 Reporter:java.lang.Class@fdc0cd34 java.lang.NoSuchFieldException: grid_name ... - Problème de moniteur de cache dans le serveur de transactions
- Le moniteur de cache étendu est utilisé pour analyser le comportement du cache dans un environnement de serveur d'applicatinos WebSphere traditionnel. Toutefois, lorsqu'une instance de cache utilise WebSphere eXtreme Scale comme fournisseur de cache, vous ne pouvez pas afficher le contenu du cache (une page vide s'affiche) même s'il n'y a pas de problème dans le moniteur de cache Liberty.
- Avertissement sur la configuration des conflits dans les serveurs de recherche et de magasin
- La configuration WebSphere eXtreme Scale est placée dans le fichier elasticCache.xml sous le dossier configDropins Liberty. En outre, la même valeur de configuration (par exemple, cacheSize) réside dans le fichier de configuration par défaut (server.xml). Voici un exemple du message d'avertissement de conflit de configuration dans le journal Liberty :
Cet avertissement est attendu et peut être ignoré.com.ibm.ws.config.xml.internal.ConfigValidator A CWWKG0102I: Found conflicting settings for baseCache instance of distributedMap configuration. Property memorySizeInEntries has conflicting values: Value 1000 is set in file:/opt/WebSphere/Liberty/usr/servers/default/server.xml. Value 2000 is set in file:/opt/WebSphere/Liberty/usr/servers/default/configDropins/overrides/elasticCache.xml. Property memorySizeInEntries will be set to 2000.
Résultat
Vous avez intégré HCL Commerce à WebSphere eXtreme Scale afin d'améliorer les performances de votre implémentation à volume élevé.