Узел обработки Spymemcached для операции не установлен

У меня есть простой код, который должен работать с memcached. К сожалению, он не работает должным образом.

Вот упрощенный фрагмент кода:

MemcachedClinet memcached = new MemcachedClient(new ConnectionFactoryBuilder()
                    .setDaemon(true)
                    .setFailureMode(FailureMode.Cancel)
                    .build(),
                AddrUtil.getAddresses("192.168.178.27:11211"));

memcached.get(keyName);

Вот ошибка, которую я получаю во время выполнения:

2014-08-28 01:47:46.577 INFO net.spy.memcached.MemcachedConnection:  Added {QA sa=/192.168.178.27:11211, #Rops=0, #Wops=0, #iq=0, topRop=null, topWop=null, toWrite=0, interested=0} to connect queue
2014-08-28 01:47:46.579 WARN net.spy.memcached.MemcachedConnection:  handling node for operation is not set
28-Aug-2014 01:47:46.579 SEVERE [http-nio-8080-exec-9] com.internetlogisticsinc.projects.xenu.core.Rotator.getCounter null
 java.util.concurrent.CancellationException: Cancelled
    at net.spy.memcached.internal.OperationFuture.get(OperationFuture.java:177)
    at net.spy.memcached.internal.GetFuture.get(GetFuture.java:69)
    at net.spy.memcached.MemcachedClient.get(MemcachedClient.java:1230)
    at net.spy.memcached.MemcachedClient.get(MemcachedClient.java:1257)
(...)

Я совершенно не понимаю, что означает handling node for operation is not set, что может вызвать это сообщение об ошибке. Сервер Memcached работает нормально, и я без проблем могу подключиться к нему по телнету. Тест Telnet был выполнен на той же машине, на которой запущено приложение.

Поиск в Google handling node for operation is not set не принес мне никаких полезных результатов.

Код выполняется как сервлет в Apache Tomcat 8.0.3, включенный в NetBeans 8.0. Версия Spymemcached 2.11.4.

У тебя есть идеи?

Спасибо за уделенное время


person kazy    schedule 27.08.2014    source источник


Ответы (1)


Сначала проверьте, можете ли вы подключить свой сервер с помощью простого класса Java, используя базовое соединение. Сначала установите значение, а затем попытайтесь его получить.

MemcachedClient c=new MemcachedClient(new InetSocketAddress("hostname", portNum));

Это исключение может быть вызвано в конфигурации memcache с несколькими узлами, если вы неправильно настроили узлы.

person indika    schedule 28.08.2014
comment
Я обновил свой код вашим кодом, и результаты следующие: - person kazy; 28.08.2014
comment
Вы используете один узел memcached или несколько узлов? Кажется, что он настроен с несколькими узлами, но на самом деле у вас есть один узел. - person indika; 29.08.2014
comment
Я использую только один узел - person kazy; 29.08.2014