бесконечность 9 ' 'не разрешен элемент - PullRequest
3 голосов
/ 28 февраля 2020

Тег выселения Wildfly 18 не анализируется, что приводит к ошибке разбора конфигурации. это происходит, когда я обновляю Wildfly 11 до 18. В wildfly 11 (infinispan 4) он работает нормально

    <subsystem xmlns="urn:jboss:domain:infinispan:4.0">
        <cache-container name="security" default-cache="auth-cache">
            <local-cache name="auth-cache">
                <locking acquire-timeout="${infinispan.cache-container.security.auth-cache.locking.acquire-timeout}"/>
                <eviction strategy="LRU" max-entries="${infinispan.cache-container.security.auth-cache.eviction.max-entries}"/>
                <expiration max-idle="-1"/>
            </local-cache>
        </cache-container>
    </subsystem>

В Wildfly 18 с разделом ниже (НЕ РАБОТАЕТ)

    <subsystem xmlns="urn:jboss:domain:infinispan:9.0">
        <cache-container name="security" default-cache="auth-cache">
            <local-cache name="auth-cache">
                <locking acquire-timeout="${infinispan.cache-container.security.auth-cache.locking.acquire-timeout}"/>
                <eviction strategy="LRU" max-entries="${infinispan.cache-container.security.auth-cache.eviction.max-entries}"/>
                <expiration max-idle="-1"/>
            </local-cache>
        </cache-container>
    </subsystem>

Его предоставление ^^^^ 'eviction' здесь недопустимый элемент. infinispan: 9.4 говорит, что Eviction настраивается путем добавления, но даже это дает нераспознанную память тегов.

как добавить стратегия выселения = LRU или замена стратегии: "LRU" =?

Ответы [ 2 ]

1 голос
/ 03 марта 2020

В соответствии с документами в infinispan 9.0 выселение настраивается путем добавления элемента в разделы конфигурации <* - cache />. Выселение производится кофеином с использованием алгоритма TinyLFU с дополнительным окном приема. Это было выбрано, поскольку обеспечивает высокую частоту обращений, а также требует небольшого объема памяти. Это обеспечивает лучший коэффициент попадания, чем LRU, и при этом требует меньше памяти, чем LIRS. В общем случае существует два типа:

  • COUNT (Этот тип выселения удаляет записи в зависимости от их количества в кэше. Как только количество записей увеличится по сравнению с размером, запись будет быть удален, чтобы освободить место.
  • ПАМЯТЬ - Этот тип выселения будет оценивать, сколько каждая запись займет в памяти, и удалит запись, когда общий размер всех записей больше, чем настроенный размер. Этот тип работает только с примитивными типами обертки, String и byte [], поэтому, если требуются пользовательские типы, вы должны включить storeAsBinary. Кроме того, исключение на основе MEMORY работает только с политикой LRU.

Так что я думаю, что вы определите это вот так:

<cache-container name="security" default-cache="auth-cache">
    <local-cache name="auth-cache">
        <...your other options...>
        <object-memory/>
    </local-cache>
</cache-container>

ИЛИ

<binary-memory eviction-type="MEMORY/COUNT"/>

ИЛИ

off-heap-memory eviction-type="MEMORY/COUNT"/>

И вы всегда можете указать размер:

size="${infinispan.cache-container.security.auth-cache.eviction.max-entries}"

Хранилище типы:

  • object-memory (Хранит записи как объекты в куче Java. Это тип хранения по умолчанию. Тип хранения поддерживает только COUNT , поэтому вы не должны Ed, чтобы явно установить тип выселения. Policy = TinyLFU)
  • binary-memory (Хранит записи в виде байтов [] в куче Java. Тип выселения: COUNT OR MEMORY. Policy = TinyLFU)
  • off-heap-memory (Хранит записи как байты [] в собственной памяти вне Java. Тип вытеснения: COUNT ИЛИ MEMORY. Policy = LRU)
0 голосов
/ 04 марта 2020

Ответ Лонзака правильный. Кроме того, вы можете просто использовать свою конфигурацию «urn: jboss: domain: infinispan: 4.0» из WildFly 9 в WildFly 19. WildFly автоматически обновит конфигурацию до ее эквивалентной в текущей версии схемы.

...