Invalidation des groupes multi-cellules et multi-coeurs du service de cache dynamique

L'invalidation des groupes multi-cellules et multi-coeurs du service de cache dynamique permet aux mémoires cache créées dans des cellules différentes d'être synchronisées sans que les entrées de la mémoire cache soient répliquées au-delà des limites des cellules. Lorsque cette fonction est activée pour les instances de servlet ou de cache d'objets, les données sont mises en cache dans les deux cellules car ces dernières gèrent le même trafic. Lorsqu'une entrée de cache est invalidée à l'aide de JMS (Java Message Service), l'ID de l'entrée de cache invalidée est envoyé à une cellule homologue. La cellule réceptrice utilise un bus d'intégration de services pour traiter l'invalidation. Cette fonction peut également être utilisée pour propager les invalidations vers d'autres groupes centraux dans la même cellule.

L'adaptateur de cache externe du cache dynamique, ExternalCacheAdapter (ECA), est utilisé pour capturer des invalidations à partir d'un serveur. JMS/bus d'intégration de services est utilisé pour envoyer et recevoir des invalidations dans la cellule distante ou le groupe central. Des serveurs d'applications additionnels sont créés pour héberger l'application d'invalidation. Ils deviennent automatiquement membres du bus d'intégration de services. Les serveurs d'applications traitent les invalidations, qui sont composées de messages JMS, depuis la cellule distante et les transmettent aux membres du cluster dans la cellule locale.

Flux des informations d'invalidation dans l'environnement des groupes multi-cellules et multi-coeurs d'un service de cache dynamique

L'adaptateur de cache externe, com.ibm.websphere.servlet.cache.RemoteInvalidator, est utilisé pour envoyer les ID des caches invalidés vers un bus d'intégration de services dans une cellule distante. Plutôt que de spécifier host:port pour l'adresse, ce type d'adaptateur de cache externe utilise le nom JNDI de la fabrique de connexions de file d'attente JMS et le nom de destination de file d'attente du bus d'intégration de services distant comme adresse :

Adapter bean name = com.ibm.websphere.servlet.cache.RemoteInvalidator
Address = JMS_QUEUE_CONNECTION_FACTORY_JNDI_NAME, REMOTE_QUEUE_DESTINATION_NAME
Avant d'utiliser cette fonction, vous devez vous assurer que :
  • Chaque groupe de cellules ou de coeurs contient un cluster hébergeant un application de production. Vous devez utiliser la même application de production dans les deux cellules ou les deux groupes pour que les ID d'invalidation soient traités correctement.
  • Un cluster distinct comportant deux serveurs est créé dans chaque groupe de cellules ou de coeurs pour héberger le bus d'intégration de services. Un groupe de caches externes RemoteJMSInvalidator ne peut pas être défini pour les membres de ce cluster. Si un groupe de caches externes RemoteJMSInvalidator est défini pour ces membres du cluster, une condition de boucle infinie se produit et des invalidations sont envoyées et reçues indéfiniment entre les cellules.
  • Une source de données est définie et accessible depuis les deux membres du cluster du bus d'intégration de services. Si lababase de données est partagée par les deux cellules, utilisez un nom de base de données unique pour définir chaque source de données de chaque cellule.
  • Chaque groupe de cellules ou de coeurs contient un domaine de réplication qui contient le cluster du bus d'intégration de services et tous les autres clusters qui hébergent les applications de production.
Si vous utilisez cette fonction pour les instances de cache d'objet, vous devez également attribuer la valeur true aux propriétés personnalisées suivantes de la machine virtuelle Java. Ces propriétés peuvent être spécifiées dans le fichier cacheinstances.properties ou la mappe de propriétés lorsque vous créez une instance de cache. Vous pouvez également utiliser la console d'administration pour ajouter cette propriété à une machine virtuelle Java :
  • com.ibm.ws.cache.CacheConfig.interCellReplication
  • enableInterCellInvalidation

Remarques relatives à la configuration

Le script dynacacheJMSSIB.py se trouve dans le répertoire WAS_INSTALL_ROOT/util/. Utilisez-le pour configurer l'infrastructure de l'adaptateur de cache externe et du bus d'intégration de services dans les deux cellules. Pour qu'il fonctionne correctement, le script doit être exécuté dans le répertoire WAS_INSTALL_ROOT/profiles/PROFILE_NAME/bin. Par exemple :
WAS_INSTALL_ROOT/profiles/Dmgr01/bin)

La configuration des instances de servlet ou de cache d'objet doit être disponible pour les deux clusters d'un groupe central. Vous pouvez utiliser un fichier de propriétés, une fabrique ou la console d'administration pour configurer une instance de servlet ou de cache d'objet. Cette configuration doit être définie dans la portée de la cellule et être accessible au bus d'intégration de services et aux clusters de production du groupe central. La méthode la plus simple d'assurer cette disponibilité est de créer et définir les instances de cache sur les clusters de bus d'intégration de services et de production Web lorsque vous installez l'application.

Vous trouverez ci-après un exemple des instructions à ajouter à un fichier cacheinstances.properties pour une instance de cache :
cache.instance.0=/services/cache/instance_one
cache.instance.0.cacheSize=1000
cache.instance.0.enableInterCellInvalidation=true
Vous trouverez ci-après un exemple des instructions à spécifier lorsque vous utilisez DistributedMapFactory pour créer DistributedMap pour une instance de cache :
Properties p = new Properties();
==>p.put("com.ibm.ws.cache.CacheConfig.enableInterCellInvalidation", "true");
   DistributedMap map1 = DistributedMapFactory.getMap("myMap", p);

[z/OS]Pour définir ces propriétés dans la console d'administration, cliquez sur Serveurs > Serveurs d'applications >nom_serveur, puis, dans la section Infrastructure du serveur, cliquez sur Gestion des processus et Java > Définition des processus > Contrôle > Machine virtuelle Java > Propriétés personnalisées, ou cliquez sur Ressources > Instances de cache > Instances de cache d'objet > nom_instance_cache.

[AIX Solaris HP-UX Linux Windows][IBM i]Pour définir ces propriétés dans la console d'administration, cliquez sur Serveurs > Serveurs d'applications > nom_serveur, puis, dans la section Infrastructure du serveur, cliquez sur Gestion des processus et Java > Définition des processus > Machine virtuelle Java > Propriétés personnalisées, ou cliquez sur Ressources > Instances de cache > Instances de cache d'objet > nom_instance_cache.

Le script dynacacheJMSSIB.py configure chaque cellule en 3 étapes :
  1. La configuration de Inbound JMS/du bus d'intégration de services, qui est composée des actions suivantes :
    • la création d'un bus d'intégration de services et la spécification de la destination d'un bus d'intégration de services ;
    • la création d'une file d'attente JMS ;
    • l'activation de JMS ;
    • l'installation du fichier WAS_INSTALL_ROOT/installables/DynacacheMessageHandler.ear, qui est un bean géré par message, sur le cluster du bus d'intégration de services.
  2. La configuration de Outbound JMS/du bus d'intégration de services, qui implique la configuration de la fabrique de connexions de la file d'attente JMS.
  3. La configuration du groupe de caches externes qui implique la configuration du groupe de caches externes et de l'adaptateur de cache externe sur chaque membre de cluster qui héberge les applications de production.

Remarques relatives à l'optimisation

Les propriétés JVM (Java virtual machine) personnalisées suivantes peuvent être utilisées pour optimiser l'invalidation des groupes multi-cellules et multi-coeurs du service de cache dynamique :
dynacache.jms.connRetryInterval
Indique le délai d'attente en secondes d'un membre du cluster avant qu'il tente de se reconnecter à un serveur de bus d'intégration de services. La valeur par défaut est 30
dynacache.jms.numStoredInvalidations
Indique le nombre maximal d'ID d'invalidation que peut stocker un membre du cluster en attendant qu'un serveur de bus d'intégration de services devienne disponible. Lorsque le seuil est atteint, les invalidations les plus anciennes sont supprimées. La valeur par défaut est 10000.
dynacache.jms.cacheInstance
Indique l'instance de cache à utiliser pour le traitement des invalidations. Si vous affectez la valeur "*" à la propriété, les ID d'invalidation sont traitées dans toutes les instances de cache. Par défaut, l'instance de cache baseCache est utilisée. Cette propriété ne s'applique qu'aux serveurs de bus d'intégration de services.
dynacache.jms.invProcessingDelay
Indique le délai en secondes de la mise en file d'attente des ID d'invalidation par le serveur de bus d'intégration de services avant de les traiter. La valeur par défaut est 20.

Icône indiquant le type de rubrique Rubrique de concept



Icône d'horodatage Dernière mise à jour: last_date
http://www14.software.ibm.com/webapp/wsbroker/redirect?version=cord&product=was-nd-mp&topic=cdyn_multicell
Nom du fichier : cdyn_multicell.html