Přidání zpětného volání oznámení mezipaměti (ukládání do mezipaměti technologie Windows Server AppFabric)
Technologie Windows Server AppFabric umožňuje aplikacím využívajícím mezipaměť přijímat oznámení mezipaměti. Toto téma popisuje způsob přidávání zpětných volání oznámení mezipaměti, která aplikaci umožní příjem oznámení mezipaměti. Další informace o oznámeních mezipaměti naleznete v tématu Oznámení mezipaměti (ukládání do mezipaměti technologie Windows Server AppFabric).
Přidání zpětného volání oznámení mezipaměti vyžaduje dva kroky. Nejdříve vytvořte metodu, která by měla být vyvolána, pokud je oznámení mezipaměti aktivováno jednou nebo více operacemi mezipaměti. Metoda vyvolaná oznámeními mezipaměti musí přijímat stejné parametry, jako delegát DataCacheNotificationCallback. Poté přidejte zpětné volání pomocí jedné ze tří dostupných metod z objektu DataCache:
Pomocí parametru filter
definujte typy operací mezipaměti, které mají aktivovat oznámení mezipaměti. Pro parametr clientDelegate
použijte název metody vytvořené v prvním kroku.
Poznámka
Aby aplikace mohla používat oznámení, je třeba je pro pojmenovanou mezipaměť povolit. Použijte parametr notificationsEnabled
s příkazem New-Cache
nebo Set-CacheConfig
. Další informace naleznete v tématu Správa funkcí technologie Windows Server AppFabric pro ukládání do mezipaměti pomocí prostředí Windows PowerShell.
Přidání zpětného volání pro jednu nebo více operací mezipaměti
Vytvořte metodu, kterou chcete aktivovat oznámením mezipaměti. Zajistěte, aby metoda přijímala stejné parametry jako delegát DataCacheNotificationCallback.
Přidejte zpětné volání. Pomocí jedné ze tří dostupných metod z objektu DataCache definujte obor oznámení: AddCacheLevelCallback, AddRegionLevelCallback nebo AddItemLevelCallback.
Pomocí výčtu DataCacheOperations v parametru
filter
zadejte, který typ operací mezipaměti má aktivovat oznámení. Chcete-li provést bitovou operaci OR, vyberte více výčtů a oddělte je pomocí binárního operátoru OR. V jazyce C# je nutné použít znak |, v jazyce Visual Basic operátor Or.Použijte název metody, kterou chcete vyvolat, pokud se v parametru
clientDelegate
vyskytnou tato oznámení.Metodu přidání zpětného volání nastavte tak, aby byla rovna objektu DataCacheNotificationDescriptor, který můžete použít kdekoli v programu k odebrání zpětného volání oznámení mezipaměti.
Příklad
Prvním krokem při registraci oznámení mezipaměti je vytvoření metody, která má být oznámením vyvolána. Metoda volaná oznámením musí přijímat stejné parametry jako delegát DataCacheNotificationCallback. Tento příklad ukazuje jeden příklad metody, kterou lze vyvolat oznámením mezipaměti.
'method invoked by notification "ndCacheLvlAllOps"
Public Sub myCacheLvlDelegate(ByVal myCacheName As String, _
ByVal myRegion As String, _
ByVal myKey As String, _
ByVal itemVersion As DataCacheItemVersion, _
ByVal OperationId As DataCacheOperations, _
ByVal nd As DataCacheNotificationDescriptor)
'display some of the delegate parameters
Console.WriteLine("A cache-level notification was triggered!")
Console.WriteLine(" Cache: " + myCacheName)
Console.WriteLine(" Region: " + myRegion)
Console.WriteLine(" Key: " + myKey)
Console.WriteLine(" Operation: " + OperationId.ToString())
Console.WriteLine()
End Sub
//method invoked by notification "ndCacheLvlAllOps"
public void myCacheLvlDelegate(string myCacheName,
string myRegion,
string myKey,
DataCacheItemVersion itemVersion,
DataCacheOperations OperationId,
DataCacheNotificationDescriptor nd)
{
//display some of the delegate parameters
Console.WriteLine("A cache-level notification was triggered!");
Console.WriteLine(" Cache: " + myCacheName);
Console.WriteLine(" Region: " + myRegion);
Console.WriteLine(" Key: " + myKey);
Console.WriteLine(" Operation: " + OperationId.ToString());
Console.WriteLine();
}
Druhým krokem je přidání zpětného volání pro jednu nebo více operací mezipaměti. V tomto příkladu je vytvořeno oznámení, které vyvolá metodu z předchozího příkladu. Pro demonstrační účely byly u tohoto oznámení nakonfigurovány všechny možné operace mezipaměti s oborem oznámení na úrovni mezipaměti.
Chcete-li definovat více než jednu operaci mezipaměti, můžete pomocí binárního operátoru OR přiřadit proměnné DataCacheOperations více výčtů DataCacheOperations, které lze použít pro parametr filtru. K přidání zpětného volání pro operace mezipaměti s oborem oznámení na úrovni mezipaměti použijte metodu AddCacheLevelCallback.
Poznámka
Tuto operaci není doporučeno provádět v provozní aplikaci. Tento příklad slouží pouze jako ukázka.
'specify all possible item and region operations
Dim allCacheOperations As DataCacheOperations
allCacheOperations = DataCacheOperations.AddItem Or _
DataCacheOperations.ReplaceItem Or _
DataCacheOperations.RemoveItem Or _
DataCacheOperations.CreateRegion Or _
DataCacheOperations.ClearRegion Or _
DataCacheOperations.RemoveRegion
'add cache-level notification callback
'all cache operations from a notifications-enabled cache
Dim ndCacheLvlAllOps as DataCacheNotificationDescriptor = _
myTestCache.AddCacheLevelCallback(allCacheOperations, AddressOf myCacheLvlDelegate)
//specify all possible item and region operations
DataCacheOperations allCacheOperations = DataCacheOperations.AddItem |
DataCacheOperations.ReplaceItem |
DataCacheOperations.RemoveItem |
DataCacheOperations.CreateRegion |
DataCacheOperations.ClearRegion |
DataCacheOperations.RemoveRegion;
//add cache-level notification callback
//all cache operations from a notifications-enabled cache
DataCacheNotificationDescriptor ndCacheLvlAllOps
= myTestCache.AddCacheLevelCallback(allCacheOperations, myCacheLvlDelegate);
Následující příklad ukazuje, jak vypadá přidání zpětného volání pro operaci mezipaměti s oborem oznámení na úrovni oblasti, které je aktivováno pouze tehdy, když je do mezipaměti přidána oblast s názvem TestRegion.
'add region-level notification callback for region "TestRegion"
'trigger notification with CreateRegion operation
Dim ndRegionCreateRegOp As DataCacheNotificationDescriptor
ndRegionCreateRegOp = _
myTestCache.AddRegionLevelCallback("TestRegion", _
DataCacheOperations.CreateRegion, AddressOf myRegionLvlAddDelegate)
//add region-level notification callback for region "TestRegion"
//trigger notification with CreateRegion operation
DataCacheNotificationDescriptor ndRegionCreateRegOp
= myTestCache.AddRegionLevelCallback("TestRegion",
DataCacheOperations.CreateRegion, myRegionLvlAddDelegate);
Následující příklad ukazuje, jak vypadá přidání zpětného volání pro operace mezipaměti s oborem oznámení na úrovni položky, které je aktivováno pouze tehdy, když je v mezipaměti přidán nebo nahrazen objekt pomocí klíče TestKey.
Poznámka
Oznámení mezipaměti se zpětnými voláními na úrovni položky mohou být aktivována pouze operacemi položek AddItem, ReplaceItem a RemoveItem. Zadání operací oblasti do parametru filtru při přidávání zpětného volání na úrovni položky způsobí výjimku.
'add item-level notification callback for item "TestKey"
'trigger notification with AddItem and ReplaceItem operations
Dim ndItemUpdateOps As DataCacheNotificationDescriptor
ndItemUpdateOps = _
myTestCache.AddItemLevelCallback("TestKey", _
(DataCacheOperations.AddItem Or DataCacheOperations.ReplaceItem), _
AddressOf myItemLvlUpdateDelegate)
//add item-level notification callback for item "TestKey"
//trigger notification with AddItem and ReplaceItem operations
DataCacheNotificationDescriptor ndItemUpdateOps
= myTestCache.AddItemLevelCallback("TestKey",
(DataCacheOperations.AddItem | DataCacheOperations.ReplaceItem),
myItemLvlUpdateDelegate);
Další odkazy
Koncepty
Přidání zpětného volání oznámení selhání (ukládání do mezipaměti technologie Windows Server AppFabric)
Odebrání zpětného volání oznámení mezipaměti (ukládání do mezipaměti technologie Windows Server AppFabric)
Metody oznámení mezipaměti (ukládání do mezipaměti technologie Windows Server AppFabric)
Správa funkcí technologie Windows Server AppFabric pro ukládání do mezipaměti pomocí prostředí Windows PowerShell
2011-12-05