Ошибка операции кеширования Apache Ignite

Я установил Ignite, используя образ докера из концентратора докеров. Узел сервера Ignite запускается правильно. Но при попытке обновить кеш я получаю следующее исключение:

[SEVERE][rest-#35%null%][GridCacheCommandHandler] Failed to execute cache command: GridRestCacheRequest [cacheName=null, cacheFlags=0, ttl=null, super=GridRestRequest [destId=null, clientId=466b7ff5-c303-452e-8f2d-97d59c753de5, addr=null, cmd=CACHE_PUT]]
class org.apache.ignite.IgniteCheckedException: Failed to find cache for given cache name (null for default cache): null
        at org.apache.ignite.internal.processors.rest.handlers.cache.GridCacheCommandHandler.localCache(GridCacheCommandHandler.java:754)
        at org.apache.ignite.internal.processors.rest.handlers.cache.GridCacheCommandHandler.executeCommand(GridCacheCommandHandler.java:677)
        at org.apache.ignite.internal.processors.rest.handlers.cache.GridCacheCommandHandler.handleAsync(GridCacheCommandHandler.java:468)
        at org.apache.ignite.internal.processors.rest.GridRestProcessor.handleRequest(GridRestProcessor.java:264)
        at org.apache.ignite.internal.processors.rest.GridRestProcessor.access$100(GridRestProcessor.java:87)
        at org.apache.ignite.internal.processors.rest.GridRestProcessor$2.body(GridRestProcessor.java:153)
        at org.apache.ignite.internal.util.worker.GridWorker.run(GridWorker.java:110)
        at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
        at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
        at java.lang.Thread.run(Thread.java:745)
[14:57:18,637][SEVERE][rest-#35%null%][GridRestProcessor] Failed to handle request: CACHE_PUT
class org.apache.ignite.IgniteCheckedException: Failed to find cache for given cache name (null for default cache): null
        at org.apache.ignite.internal.processors.rest.handlers.cache.GridCacheCommandHandler.localCache(GridCacheCommandHandler.java:754)
        at org.apache.ignite.internal.processors.rest.handlers.cache.GridCacheCommandHandler.executeCommand(GridCacheCommandHandler.java:677)
        at org.apache.ignite.internal.processors.rest.handlers.cache.GridCacheCommandHandler.handleAsync(GridCacheCommandHandler.java:468)
        at org.apache.ignite.internal.processors.rest.GridRestProcessor.handleRequest(GridRestProcessor.java:264)
        at org.apache.ignite.internal.processors.rest.GridRestProcessor.access$100(GridRestProcessor.java:87)
        at org.apache.ignite.internal.processors.rest.GridRestProcessor$2.body(GridRestProcessor.java:153)
        at org.apache.ignite.internal.util.worker.GridWorker.run(GridWorker.java:110)
        at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
        at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
        at java.lang.Thread.run(Thread.java:745)

Есть идеи, что не так?


person biskrafte    schedule 03.05.2017    source источник


Ответы (1)


Вам следует создать кеш, прежде чем вы начнете его использовать. Используйте метод getOrCreateCache.

Вы можете прочитать дополнительную информацию в doc и проверить этот пример, который использовать api кеша.

Кроме того, в apache ignite есть множество примеров для различных случаев использования.

person Evgenii Zhuravlev    schedule 03.05.2017
comment
Большое спасибо за ответ, я просто немного запутался, я запускаю сервер ignite из образа докера из Linux. Я пробовал то, что вы предлагали, и это работает, но я не уверен, работает ли сервер ignite в данный момент, это образ докера Apache ignite. не могли бы вы объяснить, как я могу создать кеш-форму Linux для образа докера apache ignite. Заранее спасибо. - person biskrafte; 04.05.2017
comment
Как вы пытались получить доступ к кешу, когда получили это исключение? - person Evgenii Zhuravlev; 04.05.2017
comment
Ignite частично совместим с Redis и позволяет пользователям сохранять и извлекать распределенные данные из кешей Apache Ignite с помощью любого клиента, совместимого с Redis. - person biskrafte; 04.05.2017
comment
я использую jedis (клиент redis) - person biskrafte; 04.05.2017
comment
но у меня есть это исключение, когда я использую redis-cli в Linux, и даже когда я использую jedis (клиент Redis) с программой Java - person biskrafte; 04.05.2017
comment
Вы можете добавить конфигурацию кеша в файл конфигурации ignite, здесь вы можете найти несколько примеров: apacheignite.readme.io / docs / cache-Mode, кеш с этой конфигурацией запустится автоматически. - person Evgenii Zhuravlev; 10.05.2017