La mise en cache des données fréquemment utilisées de votre application est une décision extrêmement compétente. Mais s'assurer que les données mises en cache restent synchronisées avec votre base de données Oracle est le dilemme. L'astuce pour surmonter cela est d'utiliser des expirations de données où vous devinez le TTL (Time To Live) de l'élément, puis de le mettre en cache.

Peu importe la popularité de ce schéma, cela reste une simple supposition éclairée sur la durée pendant laquelle cet élément restera inchangé dans la base de données. Et les suppositions ne sont pas toujours exactes. Si votre application est sensible aux données où la récupération et le traitement de données inexactes réfutent son objectif, l'utilisation de l'expiration vous coûtera très cher.

Ce qui vous sauve de cette situation difficile est d'utiliser un mécanisme de synchronisation de base de données dans votre cache tel que NCache, qui supprime automatiquement les données de cache correspondantes si elles sont mises à jour dans la base de données Oracle.

NCache Détails                 Dépendance du cache sur la base de données               Techniques d'expiration des données

 

En utilisant NCache pour synchroniser avec Oracle Server

Oracle Dependency utilise des notifications d'événements qui notifient tous les clients de base de données lorsqu'un jeu de données change dans la base de données. Informations sur le back-end : NCache utilise cette fonction pour s'enregistrer en tant que client d'Oracle Server. Cela signifie que chaque fois que les données changent dans l'ensemble de données Oracle, NCache est automatiquement notifié. En utilisant ces informations, NCache conserve une carte de tous les éléments mis en cache avec leurs ensembles de données correspondants. Alors, chaque fois que NCache est informé d'un changement, il invalide l'élément de cache correspondant du cache et récupère l'élément mis à jour la prochaine fois que l'application cliente le demande.

synchronisationncache-oracle

Figure : Synchroniser NCache avec Oracle Server

Synchronisons NCache avec Oracle Server

Je vais prendre un exemple simple d'une application e-commerce (.NET Core basé) dont tout le succès réside dans sa précision. Des milliers de clients accèdent à cette application pour faire des achats en ligne chaque minute, de sorte que les données de cette application ont été mises en cache.

Maintenant, prenons un scénario très courant où ClientA acheté la dernière Xbox Series X que le magasin avait. Le serveur d'application supprime la quantité de cet élément de la base de données, mais le cache n'est toujours pas au courant de ce changement. Cette incohérence conduit à la rage des clients lorsque ClientB aime le même produit, le paie et reçoit une notification avec un message de paiement réussi mais ne reçoit pas sa dernière Xbox Series X.

Ici, pour s'assurer que l'application ne rencontre pas de problèmes d'intégrité des données à chaque fois que les données changent dans la base de données principale Oracle, NCache fournit un soutien de Dépendance Oracle.

Pour utiliser cette fonction de dépendance, NCache permet de paramétrer votre requête Oracle avec OracleCacheDependencyOracleCacheDependency méthode qui prend des valeurs de paramètre au moment de l'exécution. Cela réduira le nombre de fois que votre requête doit être compilée sur le serveur Oracle, ce qui décuplera les performances de l'application.

NCache Détails                 Dépendance du cache à Oracle                     Configurer l'environnement Oracle

 

Il y a tellement plus que vous pouvez faire avec OracleCacheDependency. Voici une liste de quelques fonctionnalités très utiles prises en charge avec cette dépendance Oracle.

Rechargement automatique de l'élément de cache via le fournisseur de lecture

OracleCacheDependency est responsable de l'invalidation d'un élément de cache une fois qu'il a changé dans la source de données. NCache fournit Lire via le fournisseur de source de sauvegarde au cas où vous voudriez que le cache non seulement invalide, mais récupère également la dernière version de l'élément modifié à partir du serveur Oracle. Avec Lire à travers option activée, NCache appelle le Lire à travers fournisseur pour récupérer les données mises à jour chaque fois qu'Oracle Server notifie le cache d'une modification.

Le code suivant explique comment vous pouvez obtenir cette fonctionnalité :

NCache Détails                 Dépendance du cache à Oracle                     Fournisseur de lecture

 

Dépendance Oracle basée sur une procédure stockée

NCache supports Dépendance Oracle basée sur une procédure stockée si vous préférez conserver toutes vos requêtes Oracle dans la base de données Oracle. Ces procédures stockées sont précompilées sur le serveur Oracle et s'exécutent beaucoup plus rapidement que les requêtes Oracle dynamiques.

Pour créer une procédure stockée dans Oracle, consultez cet exemple :

L'appel de cette procédure stockée dans votre application .NET est facile. Utilisez l'extrait de code suivant comme exemple.

 

NCache Détails                 Dépendance du cache à Oracle                     Dépendance Oracle à l'aide d'une procédure stockée

Pourquoi synchroniser NCache avec Oracle Server ?

Personne ne veut que son application sur laquelle il a travaillé si dur échoue simplement parce qu'elle traite des données obsolètes. Vous perdez à la fois des affaires et faites face de cette façon. Mais NCache, à votre grande aise, vous fournit Oracle Dependency qui maintient votre cache synchronisé avec votre base de données Oracle pour vous assurer que le cache que vous utilisez pour vous bénéficier ne vous fait pas défaut.

NCache Détails                                Télécharger NCache                          Comparaison Des Éditions