2015-01-07 5 views

ответ

0

Я думаю, что вы хотите AbstractCacheStore.eraseAll(Collection colKeys)

From the documentation:

Если вы хотите реализовать кэширование чтения/записи, то необходимо расширить com.tangosol.net.cache.AbstractCacheStore (или реализовать интерфейс com.tangosol.net.cache.CacheStore), который добавляет следующие методы:

public void erase(Object oKey); 
public void eraseAll(Collection colKeys); 
public void store(Object oKey, Object oValue); 
public void storeAll(Map mapEntries); 

Метод erase() должен удалить указанный ключ из внешнего источника данных. Метод store() должен обновить указанный элемент в источнике данных, если он существует, или вставить его, если он в настоящее время не существует.

После того, как реализован CacheLoader/CacheStore, его можно подключить через файл когерентности cache-config.xml.

+0

Это похоже на код Java. –

+0

@YuvalItzchakov Он отредактировал сообщение, начальное сообщение сказало Java. – durron597

0

this Согласно документации, это правильный C интерфейс # для того, что вам нужно:

AbstractCacheStore.EraseAll Метод:

Удалите указанные ключи от базового хранилища, если настоящее время.

пространство имен:

Tangosol.Net.Cache Ассамблея: Согласованность (в Coherence.dll) Версия: 12.1.2.0 (12.1.2.0) Collapse imageSyntax

общественного недействительными EraseAll (ключи ICollection)

Выполнение этого метода вызывает Стереть (объект) для каждой клавиши в поставляемый ICollection. После успешного удаления ключа удаляется с ICollection (если возможно). Примечание. Для многих типов постоянных хранилищ одна операция стирания столь же дорога, как и полная стирание ; поэтому подклассы должны переопределять этот метод, если возможно .

Похоже, что даже базовый API, который стирает всю коллекцию, делает это, вызывая Erase для каждого значения. Хотя, Oracle Coherence является кэшем в памяти, поэтому на самом деле он не идет по кабелю 10 000 раз, чтобы стереть ключи, его доступ к нему в памяти.

+0

Как подключить это в файл cache-config.xml? –

+0

Можете ли вы добавить свой кеш-конфиг в вопрос? –

+0

@HenleyChiu См. Документацию [this] (https://docs.oracle.com/middleware/1212/coherence/COHCG/net_library.htm#COHCG5082). –

0
cache.InvokeAll(filter, new ConditionalRemove(AlwaysFilter.INSTANCE)); 

или

cache.InvokeAll(colKeys, new ConditionalRemove(AlwaysFilter.INSTANCE)); 
Смежные вопросы