Le moteur du cache dynamique est le fournisseur du cache par défaut des API de cache dynamique et de l'infrastructure. Toutefois, depuis la version 6.1.0.27, le cache dynamique permet à WebSphere eXtreme Scale de faire office de moteur principal de mise en cache. Vous pouvez configurer le cache dynamique pour utiliser WebSphere eXtreme Scale comme fournisseur de cache à la place du moteur de cache dynamique par défaut. La configuration du cache dynamique pour utiliser WebSphere
eXtreme Scale permet de tirer parti du support transactionnel, améliore l'évolutivité, la disponibilité et d'autres fonctions WebSphere eXtreme Scale sans changer le code de mise en cache du cache dynamique existant.
Avant de commencer
- Consultez rubrique Présentation du cache dynamique de la fonctionnalité
WebSphere eXtreme Scale.
- Déterminez si l'utilisation de WebSphere eXtreme Scale offre un avantage pour les applications exécutées sur les serveurs d'applications.
Les fonctions WebSphere eXtreme Scale améliorent sensiblement les fonctions réparties du cache dynamique par rapport au moteur de cache dynamique par défaut et du service de réplication des données. Avec WebSphere
eXtreme Scale, vous pouvez créer des caches réellement répartis entre plusieurs serveurs au lieu de simplement répliquer et synchroniser les caches entre les serveurs. Les caches WebSphere eXtreme Scale sont transactionnels et hautement disponibles, ce qui permet à chaque serveur de voir le même contenu de cache dynamique. WebSphere eXtreme Scale offre également une meilleure qualité de service pour la réplication de cache que celle fournie par le service DRS (Data Replication Service).
Toutefois, ces avantages n'impliquent pas que le fournisseur de cache dynamique eXtreme Scale est adapté à chaque application. Utilisez les arbres de décision et le tableau de comparaison des fonctions dans la rubrique relative à la configuration du fournisseur de cache dynamique pour WebSphere eXtreme Scale dans le centre de documentation WebSphere eXtreme Scale Version 7.0 qui présente ce fournisseur de cache.
Si vous déterminez qu'il offre des avantages pour vos applications, utilisez les informations de la section relative à la "configuration du fournisseur de cache dynamique pour WebSphere eXtreme Scale" dans le présentation du produit WebSphere eXtreme Scale Version 7.0 pour déterminer la topologie
WebSphere eXtreme Scale adaptée au déploiement de la mise en cache
Si vous utilisez WebSphere eXtreme Scale à la place du moteur de cache dynamique par défaut, le cache dynamique à les limitations suivantes :
- Pas de prise en charge du cache-disque. Les propriétés personnalisées suivantes ne fonctionnent pas :
- com.ibm.ws.cache.CacheConfig.enableDiskOffload
- com.ibm.ws.cache.CacheConfig.diskOffloadLocation
- com.ibm.ws.cache.CacheConfig.flushToDiskOnStop
- com.ibm.ws.cache.CacheConfig.htodCleanupFrequency
- com.ibm.ws.cache.CacheConfig.htodDelayOffload
- com.ibm.ws.cache.CacheConfig.htodDelayOffloadEntriesLimit
- com.ibm.ws.cache.CacheConfig.htodDelayOffloadDepIdBuckets
- com.ibm.ws.cache.CacheConfig.htodDelayOffloadTemplateBuckets
- com.ibm.ws.cache.CacheConfig.diskCachePerformanceLevel
- com.ibm.ws.cache.CacheConfig.diskCacheEvictionPolicy
- com.ibm.ws.cache.CacheConfig.diskCacheHighThreshold
- com.ibm.ws.cache.CacheConfig.diskCacheLowThreshold
- com.ibm.ws.cache.CacheConfig.diskCacheSize
- com.ibm.ws.cache.CacheConfig.diskCacheSizeInGB
- com.ibm.ws.cache.CacheConfig.diskCacheEntrySizeInMB
- com.ibm.ws.cache.CacheConfig.explicitBufferLimitOnStop
- com.ibm.ws.cache.CacheConfig.lruToDiskTriggerTime
- com.ibm.ws.cache.CacheConfig.lruToDiskTriggerPercent
Eviter les incidents: La fonction de déchargement de disque doit être désactivée
avant la configuration d'extremeScale. Pour cela, procédez comme suit :
- Dans la console d'administration, cliquez sur Serveurs > Types de serveurs
> Serveurs d'applications WebSphere > nom_serveur > Services du conteneur > Service
de cache dynamique.
- Recherchez la propriété Activer le déchargement sur le disque et désélectionnez cette option si elle
est sélectionnée.
Si vous oubliez de désactiver le déchargement sur disque avant de configurer
extremeScale en tant que fournisseur de cache, utilisez les commandes wsadmin suivantes :
- Emettez la commande suivante pour rechercher l'objet config pour le serveur.
wsadmin>$AdminConfig list DynamicCache
(cells/optimusprimeCell01/nodes/optimusprimeNode01/servers/server1|serve
r.xml#dynamic_cache_name)
- Emettez la commande AdminConfig suivante pour attribuer la valeur false à diskoffload :
wsadmin>$AdminConfig modify
(cells/optimusprimeCell01/nodes/optimusprimeNode01/servers/server1|serve
r.xml#dynamic_cache_name) {{enableDiskOffload false}}
- Emettez la commande suivante pour enregistrer cette modification de configuration :
wsadmin>$AdminConfig save
gotcha
- Pas de réplication DRS (prise en charge de l'envoi ou de l'envoi-réception). Les propriétés personnalisées suivantes ne fonctionneront pas :
- com.ibm.ws.cache.CacheConfig.enableReplicationAcks
- com.ibm.ws.cache.CacheConfig.enableCacheReplication
- com.ibm.ws.cache.CacheConfig.replicationDomain
- com.ibm.ws.cache.CacheConfig.cacheEntryWindow
- com.ibm.ws.cache.CacheConfig.cachePercentageWindow
- com.ibm.ws.cache.CacheConfig.cacheInvalidateEntryWindow
- com.ibm.ws.cache.CacheConfig.cacheInvalidatePercentWindow
- com.ibm.ws.cache.CacheConfig.filterTimeOutInvalidation
- com.ibm.ws.cache.CacheConfig.filterLRUInvalidation
- La fonction d'API alias n'est pas prise en charge pour la mémoire cache des objets.
- Le programme d'écoute est pris en charge. Lorsqu'il déclenche un événement, WebSphere eXtreme Scale affecte toujours à sourceOfInvalidation la valeur REMOTE.
- Désactivez l'ID dépendance, com.ibm.ws.cache.CacheConfig.disableDependencyId,
et les modèles, com.ibm.ws.cache.CacheConfig.disableTemplatesSupport,
ne sont pas pris en charge.
- PMI n'est pas pris en charge.
- Les compteurs CacheStatistic suivants sont pris en charge :
- CacheHits
- CacheLruRemoves
- CacheMisses
- CacheRemoves
- ExplictInvalidationsFromMemory
- MemoryCacheEntries
- TimeoutInvalidationsFromMemory
- NioMap - skipMemoryAndWriteToDisk ne fonctionnera pas car la mémoire cache
du disque n'est pas prise en charge. En outre, DistributedNioMapObject.release()
n'est pas appelé pour libérer byteBuffer dans la gestion de la mémoire tampon NIO.
Exécutez les opérations suivantes pour activer le fournisseur de cache dynamique WebSphere
eXtreme Scale.
Procédure
- Installez le client WebSphere eXtreme Scale ou les modules client et serveur WebSphere
eXtreme Scale sur le serveur d'applications du serveur distant et les autres topologies, respectivement.
Eviter les incidents: Seule l'installation client WebSphere
eXtreme Scale et la topologie distante sont pris en charge.
gotcha
- Définissez le fournisseur de cache dynamique WebSphere eXtreme Scale comme fournisseur de cache.
Chaque instance de cache peut être configurée individuellement pour utiliser WebSphere eXtreme Scale. Le moteur de cache dynamique est le fournisseur de cache dynamique d'une instance de cache. Les instances de cache configurées avec WebSphere eXtreme Scale peuvent coexister avec des instances de cache configurées avec DRS.
Exécutez les opérations suivantes pour définir le fournisseur de cache dynamique WebSphere
eXtreme Scale comme fournisseur de cache :
- Utilisez la console d'administration pour définir le fournisseur de cache dynamique WebSphere
eXtreme Scale comme fournisseur de cache.
- Dans la console d'administration, cliquez sur nom_serveur.
- Sous Services de conteneur, cliquez sur nom_serveur, puis dans la zone Fournisseur de cache, sélectionnez Fournisseur de cache dynamique WebSphere
eXtreme Scale.
- Cliquez sur OK.
- Ajoutez la propriété cacheProviderName au fichier cacheinstances.properties
regroupé dans une application d'entreprise et affectez à la propriété la valeur
com.ibm.ws.objectgrid.dynacache.CacheProviderImpl.
Par exemple, pour cache.instance.26, ajoutez la ligne suivante au fichier cacheinstances.properties :
cache.instance.26.cacheProviderName = com.ibm.ws.objectgrid.dynacache.CacheProviderImpl
- Ajoutez les API de fabrique suivantes au code d'une application d'entreprise :
Properties p = new Properties();
==>p.put(CacheConfig.CACHE_PROVIDER_NAME, CacheConfig.CACHE_PROVIDER_OBJECT_GRID);
DistributedMap map1 = DistributedMapFactory.getMap("myMap", p);
DistributedMap map2 = DistributedObjectCacheFactory.getMap("myMap2", p);
- Définissez le paramètre de réplication de l'instance de cache.
Avec le fournisseur de cache dynamique WebSphere eXtreme Scale vous pouvez utiliser des instances de cache local et des instances de cache répliqué.
Si vous allez utiliser uniquement des instances de cache local, passez à la dernière étape et enregitrez les modifications de configuration. Dans un cache local, le conteneur WebSphere
eXtreme Scale cohabite avec la machine virtuelle Java, à savoir que le conteneur WebSphere
eXtreme Scale container et WebSphere
Application Server partagent le même segment de mémoire de machine virtuelle Java.
Si vous allez utiliser des caches répliqués, exécutez les opérations suivantes en fonction de la manière dont vous avez créé l'instance de cache :
- Dans la page Machine virtuelle Java > Propriétés personnalisées de la console d'administration, cliquez sur Nouveau. Entrez com.ibm.ws.cache.CacheConfig.enableCacheReplication dans la zone
Nom et true dans la zone
Valeur et cliquez sur OK.
- Ajoutez la propriété enableCacheReplication au fichier cacheinstances.properties
regroupé dans une application d'entreprise et affectez à la propriété la valeur true.
Par exemple, pour cache.instance.26, ajoutez la ligne suivante au fichier cacheinstances.properties :
cache.instance.26.enableCacheReplication = true
- Ajoutez les API de fabrique suivantes au code d'une application d'entreprise :
Properties p = new Properties();
p.put(CacheConfig.CACHE_PROVIDER_NAME, CacheConfig.CACHE_PROVIDER_OBJECT_GRID);
==>p.put(CacheConfig.ENABLE_CACHE_REPLICATION, "true");
DistributedMap map1 = DistributedMapFactory.getMap("myMap", p);
DistributedMap map2 = DistributedObjectCacheFactory.getMap("myMap2", p);
- Configurez la topologie de réplication WebSphere eXtreme Scale.
Le seul paramètre de configuration nécessaire pour le fournisseur de cache dynamique WebSphere
eXtreme Scale est le paramètres de topologie de cache.
- Dans la page Machine virtuelle Java > Propriétés personnalisées de la console d'administration, cliquez sur Nouveau. Entrez com.ibm.websphere.xs.dynacache.topology dans la zone
Nom et l'une des valeur suivantes dans la zone Valeur :
- embedded
- embedded_partitioned
- éloigné
Eviter les incidents: Si vous définissez
embedded_partitioned,
vous devez ajouter également la propriété personnalisée com.ibm.websphere.xs.dynacache.num_initial_containers
aux paramètres JVM et affecter à la propriété un entier égal ou légèrement inférieur au nombre total d'instances de serveur qui accèdent à l'instance de cache réparti.
gotcha
- Ajoutez la propriété com.ibm.websphere.xs.dynacache.topology au fichier cacheinstances.properties regroupé dans une application d'entreprise et affectez à la propriété la valeur embedded, embedded_partitioned ou remote.
Par exemple, pour cache.instance.26, ajoutez la ligne suivante au fichier cacheinstances.properties :
cache.instance.26.com.ibm.websphere.xs.dynacache.topology = embedded
Eviter les incidents: Si vous définissez
embedded_partitioned,
vous devez ajouter également la propriété personnalisée com.ibm.websphere.xs.dynacache.num_initial_containers
à cacheinstances.propertiesfile et affectez à la propriété un entier égal ou légèrement inférieur au nombre total d'instances de serveur qui accèdent à l'instance de cache réparti.
gotcha
Par exemple, si un service de cache dynamique est partagé entre les membres d'une grille, la variable doit être affectée du nombre de membres de la grille.
- Ajoutez les API de fabrique suivantes au code d'une application d'entreprise :
Properties p = new Properties();
p.put(CacheConfig.CACHE_PROVIDER_NAME, CacheConfig.CACHE_PROVIDER_OBJECT_GRID);
p.put(CacheConfig.ENABLE_CACHE_REPLICATION, "true");
==>p.put("com.ibm.websphere.xs.dynacache.topology", "embedded");
==>p.put("com.ibm.websphere.xs.dynacache.num_initial_containers", "3");
DistributedMap map1 = DistributedMapFactory.getMap("myMap", p);
DistributedMap map2 = DistributedObjectCacheFactory.getMap("myMap2", p);
Voir la rubrique Configuring the dynamic cache provider for WebSphere
eXtreme Scale dans le centre de documentation WebSphere eXtreme Scale Version 7 pour plus d'information sur les paramètres embedded, embedded_partitioned et remote.
- Configurez la grille de service de catalogue eXtreme Scale.
Lorsque vous exécutez une grille de service de catalogue, vous devez définir la propriété personnalisée catalog.services.cluster des noeuds finaux du service de catalogue.
Voir la rubrique Starting the catalog service process in a WebSphere
Application Server environment dans le centre de documentation WebSphere eXtreme Scale
Version 7 Information Center qui explique comment démarrer le processus du service de catalogue dans un environnement WebSphere
Application Server.
- Dans la console d'administration, sélectionnez .
- Entrez catalog.services.cluster dans la zone Nom et la valeur appropriée nom_serveur:nom_hôte:port_client:port_homologue:port_écoute dans la zone Valeur.
- nom_serveur est le nom qualifié complet du processus WebSphere, tel que nom de cellule, nom de noeud ou nom du serveur qui héberge le service de catalogue. Exemple : cellA\node1\nodeagent
- nom_hôte est le nom du serveur hôte.
- port_client est le port utilisé pour les communications de grille de catalogue homologues.
- port_homologue est le port utilisé pour les communications de grille de catalogue homologues.
- port_écoute est le port d'écoute. Ce port doit correspondre à la valeur BOOTSTRAP_ADDRESS définie dans la configuration du serveur.
Voici un exemple de valeur valide :
cellA\node1\nodeagent:host.local.domain:6600:6601:2809,cellA\node2\
nodeagent:host.foreign.domain:6600:6601:2809
- Cliquez sur OK.
- Cliquez sur Enregistrer pour enregistrer vos modifications de configuration.
- Redémarrez les serveurs d'applications que vous avez configurés pour utiliser WebSphere eXtreme Scale.
- Configurez les objets clé personnalisés.
Lorsque vous utiliser des objets personnalisés comme clés, les objets doivent implémenter l'interface Serializable
ou Externalizable. Si vous utilisez des objets personnalisés avec les topologies intégrées ou partitionnées intégrées, vous devez placer les objets dans le chemin de bibliothèque comme vous le faire lorsque vous utilisez le fournisseur de cache dynamique par défaut. Pour plus d'informations, voir la rubrique relative à l'utilisation des interfaces DistributedMap et DistributedObjectCache pour le cache dynamique.
Si vous utilisez la topologie distante, vous devez placer les objets clé personnalisés dans la variable CLASSPATH des conteneurs WebSphere eXtreme Scale autonomes. Voir les étapes de démarrage d'un processus de conteneur dans le document WebSphere eXtreme Scale
Version 7.0 Administration Guide pour plus d'informations. Cette publication est disponible dans la page de la bibliothèque WebSphere eXtreme Scale.
- Configurez les serveurs de conteneurs eXtreme Scale.
Les données en cache sont stockées dans des conteneurs WebSphere eXtreme Scale. Ces conteneurs peuvent s'exécuter dans ou en dehors d'un processus WebSphere
Application Server. Le fournisseur eXtreme Scale crée automatiquement des conteneurs dans un processus WebSphere
Application Server lorsque vous utilisez des topologies intégrées ou partitionnées intégrées pour une instance de cache. Aucune autre configuration n'est nécessaire pour ces topologies.
Lorsque vous utilisez la topologie distante, vous devez démarrer les conteneurs eXtreme Scale autonomes avant de démarrer les instances WebSphere
Application Server qui accèdent à l'instance de cache. Le document WebSphere eXtreme Scale Version 7.0
Administration Guide explique les étapes à exécuter pour démarrer les conteneurs autonomes.
Eviter les incidents: Veillez à faire pointer tous les conteneurs d'un point de cache dynamique vers les mêmes noeuds finaux du service de catalogue.
gotcha
Les fichiers de configuration dynacache-remoteobjectgrid.
xml et dynacache-remote-definition.xml des conteneurs du fournisseur de cache dynamique eXtreme Scale autonome se trouvent dans le répertoire racine_installation/customLibraries/
ObjectGrid/dynacache/etc si WebSphere eXtreme
Scale est installé sur le produit WebSphere
Application Server
ou dans le répertoire racine_installation/ObjectGrid/dynacache/etc si vous utilisez une version autonome de WebSphere eXtreme Scale.
Créez une copie de ces fichiers pour les modifier et les utiliser lors du lancement des conteneurs autonome du fournisseur de cache dynamique eXtreme Scale. La valeur définie pour le paramètre numIntitialContainers dans le fichier dynacache-remote-deployment.xml doit reposer sur le nombre de processus de conteneur à exécuter.
L'exemple suivant montre une entrée de ligne de commande UNIX qui lance un conteneur autonome pour le fournisseur de cache dynamique WebSphere eXtreme Scale :
startOgServer.sh container1 -objectGridFile ../dynacache/etc/dynacache-remoteobjectgrid.
xml -deploymentPolicyFile ../dynacache/etc/dynacache-remotedeployment.
xml -catalogServiceEndpoints MyServer1.company.com:2809
Eviter les incidents: Le groupe de processus de conteneur doit disposer d'une mémoire suffisante pour fournir toutes les instances de cache dynamique configurées pour utiliser la topologie distante. Les processus
WebSphere
Application Server
qui partagent les mêmes valeurs ou des valeurs équivalentes doivent utiliser le même groupe de conteneurs autonomes. Le nombre de conteneurs et de machines sur lesquelles ils résident doit être défini correctement.
Voir la rubrique relative à la planification de la capacité et à la haute disponibilité dans la
présentation du produiit WebSphere eXtreme Scale Version 7.0 pour plus d'informations.
Cette publication est disponible dans la page de la bibliothèque WebSphere eXtreme Scale.
gotcha
- Vérifiez que le fournisseur de cache dynamique WebSphere eXtreme Scale est correctement configuré.
Si le fournisseur de cache dynamique WebSphere eXtreme Scale est correctement configuré, le journal du système contient des messages similaires aux messages suivants :
DYNA1001I: WebSphere Dynamic cache instance named "{0}" initialized successfully using cache provider "{1}".
DYNA1071I: The cache provider \"{0}\" is being used.
Si la configuration et l'initialisation de l'instance de cache avec WebSphere
eXtreme Scale échoue, le fournisseur de cache dynamique par défaut remplace le cache dynamique et le journal du système doit contenir des messages similaires aux messages suivants.
DYNA1066E: Unable to initialize the cache provider \"{0}\".
The Dynamic cache will be used to create the cache instance \"{1}\"
instead of the configured cache provider.