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);

0 ответов

Другие вопросы по тегам