CopyOnWriteArrayList утечка объекта в бесконечности
В моем приложении я использую InfinSpan 9.1.5. Окончательная версия.
Я сталкиваюсь с нехваткой памяти на постоянное создание и удаление кешей.
Это дамп кучи при создании 10-12 кешей, удалении и повторении 5-10 раз.
На производстве этот объект имеет размер до 4 ГБ.
Подробности его экземпляра в следующем снимке.
Я искал, если что-то не так с тем, как я использую добавление и удаление кеша infinispan, но не повезло.
вот мой кеш добавление и удаление кода.
BucketAgent agent = this.bucketAgentMap.get(cacheId);
if (null == agent)
{
agent = pooledBucketAgent.poll();
if (agent == null)
{
agent = new BucketAgent(evictionPolicy);
}
synchronized (syncObject)
{
syncObject.notifyAll();
}
agent.setCacheAttributeList(cacheAttributeList);
bucketAgentMap.put(cacheId, agent);
}
Уничтожить кеш:
BucketAgent bucketAgent = this.bucketAgentMap.get(cacheId);
if (null == bucketAgent)
{
/*throw some exception*/
}
try
{
bucketAgent.destroyCache();
}
finally
{
this.bucketAgentMap.remove(cacheId);
}
Может кто-нибудь, пожалуйста, помогите, в чем проблема с моим кодом или есть какие-либо проблемы с Infispan.
Это моя бесконечная конфигурация.
builder.jmxStatistics().enable().memory().storageType(StorageType.OBJECT).size(maxEntriesInCache).evictionType(EvictionType.COUNT).persistence().passivation(true).addSingleFileStore()
.location(infinispanCacheConfiguration.getPersistanceBasePath() + "/data").async().threadPoolSize(15).transaction()
.transactionMode(TransactionMode.TRANSACTIONAL);
globalBuilder.globalJmxStatistics().enable().allowDuplicateDomains(true).jmxDomain(JMXDOMAIN);