NCache 4.4 - Documentation en ligne

Configuration du fournisseur de lecture directe

 
Les étapes suivantes doivent être suivies pour configurer et implémenter le fournisseur de lecture avec NCache.
 
Implémentation de l'interface IReadThruProvider
 
Implémenter IReadThruProvider, ajoutez les références suivantes dans l'assembly du fournisseur.
 
Alachisoft.NCache.Runtime.dll
 
Créer une classe qui implémente Alachisoft.NCache.Runtime.DatasourceProviders.IReadThruProvider interface et déployez-la en utilisant NCache Manger. NCache framework utilisera en interne cette classe pour charger les données à partir de la source de données configurée si elle n'est pas disponible dans le cache.
 
Interface IReadThru
 
Vide public Init(System.Collections.IDicionnaire paramètres, ChaînecacheId);
Vide public Disposer();
Vide public ChargerDepuisSource(un magnifique clé, ande FournisseurCacheItemcacheItem);
public Dictionnaire<un magnifique, FournisseurCacheItem> ChargerDepuisSource(un magnifique[] clés);
 
Membre
Description
Init
Cette méthode sera appelée par NCache framework au démarrage du cache. L'utilisateur peut utiliser cette méthode pour effectuer des tâches telles que l'allocation de ressources, l'acquisition de connexions de source de données, etc. Cette méthode prend en entrée l'instance IDictionay d'arguments transmis au fournisseur via NCache Gestionnaire (paramètres de configuration). Il vous permet de transmettre la liste des paramètres au fournisseur. Ces paramètres peuvent être utilisés de plusieurs façons. Par exemple, la chaîne de connexion d'une source de données peut être spécifiée en tant que paramètre. Ainsi, il offre un moyen flexible de modifier les paramètres de la source de données tout en la configurant sans modification du code.
L'autre argumentCacheId spécifie le nom du cache pour lequel la lecture est configurée.
ChargerDepuisSource
Cette méthode sera appelée par NCache framework si l'élément requis n'est pas trouvé dans le magasin de cache et NCache doit le charger via la source de données configurée. Cette méthode doit contenir une logique pour charger un objet à partir de la source de données configurée. Le premier argument "clé" fait référence à la clé de l'élément requis. Le deuxième argument est un paramètre out de type Provider CacheItem qui doit être instancié avec les propriétés requises Ici, vous pouvez associer diverses propriétés à l'élément chargé avant de le renvoyer à NCache cadre. Assurez-vous que le fournisseur CacheItem.Value attribué dans cette méthode est "Serializable" car NCache enregistrera plus tard cet élément dans le cache pour répondre aux demandes futures.
Lors de l'implémentation de cette méthode, vous devez prendre soin de la sécurité des threads de code car plusieurs requêtes Get peuvent accéder à cette méthode pour la lecture. Veillez également à éviter les scénarios qui provoquent des boucles infinies récursives, par exemple dans cette méthode, une requête Get avec lecture sur le même handle de cache entraînera une récursivité infinie.
Remarque: En cas de Obtenez, LoadFromSource (clé de chaîne, out ProviderCacheItemcacheItem) sera appelé du fournisseur tandis que pour Obtenir en masse, LoadFromSource(chaîne[] clés)
sera appelé pour charger des éléments à partir de la source de données.
disposer
Cette méthode sera appelée par NCache framework lorsque le cache s'arrête. Vous pouvez utiliser cette méthode pour effectuer des tâches telles que la libération de ressources, la suppression de connexions, etc. Ici, vous pouvez libérer les ressources liées à la source de données pour une utilisation efficace des ressources.
 
 
In NCache, les fournisseurs de lecture sont configurés au niveau du cache, c'est-à-dire que pour les caches en cluster, tous les nœuds contiendront les configurations de fournisseur et leurs assemblages déployés.
 
 
Exemple de code pour IReadThruProvider
 
// Contient les méthodes utilisées pour lire un objet par sa clé à partir de la source de données principale.
// Contient les méthodes utilisées pour lire un objet par sa clé à partir de la source de données principale.
classe publique SampleReadThruProvider : IReadThruProvider
{
Privé Connexion SQL _lien;
//Effectuer des tâches telles que l'allocation de ressources ou l'acquisition de connexions
 
vide public Init (IDicionnaire paramètres, un magnifique identifiant de cache)
{
objet connStringObject = paramètres["connstring"];
un magnifique connString = connStringObject == nul ? "" : connStringObject.ToString();
if (chaîne de connexion != "")
            _connexion = neufs Connexion SQL(connString);
Essai
{
  _connexion.Open();
}
capture (Exception ex)
{
// gérer les exceptions
}
}
 
//Responsable du chargement d'un élément à partir de la source de données externe.
vide public ChargerDepuisSource(un magnifique clé, ande FournisseurCacheItem élément de cache)
{
//où LoadFromDataSource est la méthode factice pour charger les données à partir de la source de données.
objet valeur = LoadFromDataSource(clé);
        cacheItem = neufs FournisseurCacheItem(évaluer);
        cacheItem.ResyncItemOnExpiration = oui;
}
 
//Effectuer les tâches associées à la libération, à la libération ou à la réinitialisation des ressources.
vide public Disposer()
{
if (_connexion != nul)
            _connexion.Close();
}
 
//Responsable du chargement en masse des éléments à partir de la source de données externe.
public Dictionnaire<un magnifique, FournisseurCacheItem>ChargerDepuisSource(un magnifique[] clés)
{
  Essai
  {
Dictionnaire<un magnifique, FournisseurCacheItem> dictionnaire = neufs Dictionnaire<un magnifique, FournisseurCacheItem>();
un magnifique clé = nul;
en (int indice = 0 ; indice
      {
          clé = clés[index] ;
//où LoadFromDataSource est la méthode factice pour charger les données à partir de la source de données.
          dictionnaire.Ajouter(clé, neufs FournisseurCacheItem(LoadFromDataSource(clé)));
      }
retourner dictionnaire;
  }
        capture (Exception exp)
  {
Jeter;
  }
}
objet privé LoadFromDataSource(un magnifique clé)
{
objet objet récupéré = nul;
// charge l'élément de votre source de données et remplit l'objet récupéré
retourner objet récupéré ;
}
}
 
Après la mise en œuvre et le déploiement de ce fournisseur, des appels directs peuvent être passés à NCache pour obtenir les éléments requis. Si l'élément n'est pas disponible localement dans le magasin de cache, NCache utilisera la méthode "LoadFromSource" dans la classe d'accès aux données spécifiée pour charger les éléments à partir de la source de données.
 
Utilisation de la lecture immédiate avec les opérations de base
 
Cette section explique l'utilisation du fournisseur de lecture après l'avoir configuré et déployé. NCache prend en charge plusieurs fournisseurs de lecture avec une application.
 
Ajoutez les espaces de noms suivants dans l'application :
 
en utilisant Alachisoft.NCache.Web.Caching ;
en utilisant Alachisoft.NCache.Runtime.DatasourceProviders ;
en utilisant Alachisoft.NCache.Durée;
 
NCache fournit Alachisoft.NCache.Web.Caching.DSReadOption enum pour spécifier l'option de lecture dans les API.
Plusieurs fournisseurs de lecture peuvent être configurés via NCache. Le fournisseur de lecture par défaut sera appelé si le nom du fournisseur spécifique n'est pas mentionné via l'API. Vous pouvez également utiliser des fournisseurs autres que ceux par défaut en utilisant des surcharges d'API spécifiques au fournisseur.
 
  • Obtenir la méthode
 
Membre
Description
Obtenir(un magnifique clé, DSReadOption dsReadOption)
Obtenir l'élément du cache et utiliser le fournisseur par défaut
Obtenir(un magnifique  clé, un magnifique nom du fournisseur, DSReadOption dsReadOption)
Obtenir l'élément du cache et utiliser le fournisseur spécifié
 
Produit produit =nul;
Essai
{
un magnifique clé = "Produit : 1001";
objet data = cache.Get(clé, DSReadOption.ReadThru);
if (données != nul)
    {
        produit = (Produit)Les données;
    }
}
capture (OperationFailedExceptionOperationFailedException exp)
{
// gérer les exceptions }
 
  • Méthode en masse
 
Pour une meilleure compréhension de l'examen de ces opérations  Opérations en vrac. Dans ce scénario, utilisez l'API suivante
Membre
Description
IDicionnaire ObtenirBulk(un magnifique[] clés, DSReadOption dsReadOption)
Obtenir des éléments en vrac à partir du cache et utiliser le fournisseur par défaut
IDicionnaire ObtenirBulk(un magnifique[] clés, un magnifique nom du fournisseur, DSReadOption dsReadOption)
Obtenir des éléments en vrac à partir du cache et utiliser le fournisseur spécifié
 
Essai
{
Chaîne[] touches = { "Produit : 1001", "Produit : 1002", "Produit : 1003", "Produit : 1004" };
IDicionnaire resultSet = cache.GetBulk(clés, DSReadOption.ReadThru);
// IDictionary contient des clés et des valeurs mises en cache
}
capture (OperationFailedExceptionOperationFailedException exp)
{
// gérer les exceptions
}
 
  • Utilisation du fournisseur de lecture avec CacheItem
 
Pour ce scénario, utilisez l'API suivante.
Membre
Description
CacheItem GetCacheItem(un magnifique key DSReadOption dsReadOption)
Obtenir CacheItem à partir du cache et utiliser le fournisseur par défaut
GetCacheItem(un magnifique clé, un magnifique nom du fournisseur, DSReadOption dsReadOption)
Obtenir CacheItem à partir du cache et utiliser le fournisseur spécifié
 
un magnifique clé = "Produit : 1001";
Produit produit=null ;
 
Essai
{
CacheItem données = cache.GetCacheItem(clé, DSReadOption.ReadThru);
if (données != nul)
    {
        produit = (Produit)Valeur des données;
    }
}
capture (Exception exp)
{
// gérer les exceptions
}
 
Veuillez noter que vous pouvez spécifier le fournisseur par défaut via NCManager ou via client.ncconf placé dans le dossier config de NCache répertoire d'installation. Si le nom du fournisseur n'est pas fourni à la fois dans l'API et dans client.ncconf, le fournisseur par défaut sera automatiquement utilisé.
 
<cachette id="ma cache" fournisseur de lecture par défaut="Nom du fournisseur par défaut" identifiant-cache-client="" mode de synchronisation du cache client="optimiste" fournisseur d'écriture par défaut="" équilibre de charge="Vrai" contexte d'exécution du serveur="NCACHE">
 
</cachette>
 
CacheInitParam peut également être utilisé pour spécifier des fournisseurs.
NCache consigne les avertissements dans le journal des événements de l'application en cas d'exception lors du chargement des assemblys.
 
 
 
Voir aussi