2011-12-04 15 views
4

Spymemcachedを使用してサーバー上のMemcachedにアクセスしています。私は、次のコマンド操作完了後Spymemcached Hanging

memcached -m 4096 -p 11211 -u memcache -l 127.0.0.1 -d -vvv 

を使用してmemcachedを開始し、私がするMemcacheにいくつかのキー/値のペアを置くために、次のドライバを使用しています。何らかの理由で、最後のget操作の後に、main関数がハングするだけです。決して終わらない。

import java.net.InetSocketAddress; 
import net.spy.memcached.MemcachedClient; 

public class memcache { 
     public static void main(String args[]) { 
       //Connect to Memcache. 
       MemcachedClient c=null; 
       try{ 
         c = new MemcachedClient(
           new InetSocketAddress("127.0.0.1", 11211)); 
       } catch (Exception e) { 
         System.err.println("Could not connect to Memcached."); 
         System.exit(-1); 
       } 
       System.out.println("Connected to Memcached."); 
       Object myObject = null; 
       for (int i = 0; i < 10; i++) 
       { 
         c.set(new String("HELLO"), 3600, i+1); 
         myObject=c.get("HELLO"); 
         String value = myObject.toString(); 
         System.out.println("***" + value); 
       } 
       System.out.println("Done."); 
       return; 
     } 
} 

次の出力が表示されますが、アプリケーションは終了しません。

2011-12-04 14:18:31.839 INFO net.spy.memcached.MemcachedConnection: Added {QA sa=/127.0.0.1:11211, #Rops=0, #Wops=0, #iq=0, topRop=null, topWop=null, toWrite=0, interested=0} to connect queue 
Connected to Memcached. 
2011-12-04 14:18:31.844 INFO net.spy.memcached.MemcachedConnection: Connection state changed for [email protected] 
***1 
Done. 

サーバーは、次のステータス報告している:終了しないようにmain機能を引き起こしている可能性がありますどのような問題

<32 server listening (udp) 
<33 new auto-negotiating client connection 
33: going from conn_new_cmd to conn_waiting 
33: going from conn_waiting to conn_read 
33: going from conn_read to conn_parse_cmd 
33: Client using the ascii protocol 
<33 set HELLO 512 3600 1 
33: going from conn_parse_cmd to conn_nread 
> NOT FOUND HELLO 
>33 STORED 
33: going from conn_nread to conn_write 
33: going from conn_write to conn_new_cmd 
33: going from conn_new_cmd to conn_waiting 
33: going from conn_waiting to conn_read 
33: going from conn_read to conn_parse_cmd 
<33 get HELLO 
> FOUND KEY HELLO 
>33 sending key HELLO 
>33 END 
33: going from conn_parse_cmd to conn_mwrite 
33: going from conn_mwrite to conn_new_cmd 
33: going from conn_new_cmd to conn_waiting 
33: going from conn_waiting to conn_read 

を?誰にも何か提案はありますか?

答えて

8

解決策は簡単でした。それが行われたときにクライアントが切断しなければなりません:例の

c.shutdown(...)

どれもこの重要なステップを含んでいません。

関連する問題