Linux ではなく Windows XP を使用して memcache.im にキーを設定しようとすると、Java コードで ioexception が発生し、memcache サーバーが再接続されます。
コード :
public class Memcache implements Serializable {
MemcachedClient client;
public static final int EXP_TIME = 10;
public static final String KEY = "spoon";
public static void main(String[] args)throws IOException{
Memcache temp=new Memcache();
Dummy dummy= new Dummy("Hello World");
try {
temp.client = new MemcachedClient(new InetSocketAddress("localhost", 11211));
} catch (IOException e) {
e.printStackTrace();
System.err.println("connection problem");
}
temp.obj=temp.client.getAvailableServers();
System.out.println(temp.obj);
temp.obj1=temp.client.getUnavailableServers();
System.out.println(temp.obj1);
temp.client.add(KEY, EXP_TIME, dummy);
Object myObject=temp.client.get(KEY);
System.out.println(myObject);
temp.client.delete(KEY);
}
}
コードをデバッグしましたが、設定操作に到達すると、IOException n disconnected が発生しました。
ダミーのコードは次のとおりです。
import java.io.Serializable;
public class Dummy implements Serializable {
String one;
public Dummy(String one){
this.one=one;
}
}
スタックトレースは次のとおりです。
2012-06-15 14:30:19.259 INFO net.spy.memcached.MemcachedConnection: 追加された {QA sa=/10.2.200.104:11211、#Rops=0、#Wops=0、#iq=0、topRop=null、 topWop=null、toWrite=0、興味のある=0} キューに接続する 2012-06-15 14:30:19.274 INFO net.spy.memcached.MemcachedConnection: sun.nio.ch.SelectionKeyImpl@7cbde6 の接続状態が変更されました [/10.2.200.104:11211] [] 2012-06-15 14:30:22.852 INFO net.spy.memcached.MemcachedConnection: {QA sa=/10.2.200.104:11211、#Rops=1、#Wops=0、#iq=0 で例外が発生したため、再接続しています。 topRop=Cmd: セット キー: スプーン フラグ: 1 Exp: 10 データ長: 76、topWop=null、toWrite=0、興味のある=1} java.io.IOException: 予期せず切断されました。再接続します。 net.spy.memcached.MemcachedConnection.handleReads (MemcachedConnection.java:452) で net.spy.memcached.MemcachedConnection.handleIO (MemcachedConnection.java:380) で net.spy.memcached.MemcachedConnection.handleIO (MemcachedConnection.java:242) で net.spy.memcached.MemcachedConnection.run (MemcachedConnection.java:833) で 2012-06-15 14:30:22.852 WARN net.spy.memcached.MemcachedConnection: 閉じて、再開 {QA sa=/10.2.200.104:11211、#Rops=1、#Wops=0、#iq=0、topRop =Cmd: セット キー: スプーン フラグ: 1 Exp: 10 データ長: 76、topWop=null、toWrite=0、興味がある=1}、試行 0。 2012-06-15 14:30:22.852 WARN net.spy.memcached.protocol.ascii.AsciiMemcachedNodeImpl: 部分的に完了した op を破棄: Cmd: セット キー: スプーン フラグ: 1 Exp: 10 データ長: 76 2012-06-15 14:30:24.868 INFO net.spy.memcached.MemcachedConnection: 再接続 {QA sa=/10.2.200.104:11211、#Rops=0、#Wops=0、#iq=0、topRop=null、 topWop=null、toWrite=0、興味あり=0} 2012-06-15 14:30:24.868 INFO net.spy.memcached.MemcachedConnection: sun.nio.ch.SelectionKeyImpl@113beb5 の接続状態が変更されました 2012-06-15 14:30:31.665 INFO net.spy.memcached.MemcachedConnection: {QA sa=/10.2.200.104:11211、#Rops=1、#Wops=0、#iq=0 で例外が発生したため再接続しています。 topRop=Cmd: キーを取得: スプーン Exp: 0、topWop=null、toWrite=0、興味がある=1} java.io.IOException: 予期せず切断されました。再接続します。 net.spy.memcached.MemcachedConnection.handleReads (MemcachedConnection.java:452) で net.spy.memcached.MemcachedConnection.handleIO (MemcachedConnection.java:380) で net.spy.memcached.MemcachedConnection.handleIO (MemcachedConnection.java:242) で net.spy.memcached.MemcachedConnection.run (MemcachedConnection.java:833) で 2012-06-15 14:30:31.665 WARN net.spy.memcached.MemcachedConnection: 閉じて、再度開いています {QA sa=/10.2.200.104:11211、#Rops=1、#Wops=0、#iq=0、topRop =Cmd: キーを取得: スプーン Exp: 0、topWop=null、toWrite=0、興味がある=1}、試行 0。 2012-06-15 14:30:31.665 警告 net.spy.memcached.protocol.ascii.AsciiMemcachedNodeImpl: 部分的に完了した操作を破棄: Cmd: キーを取得: スプーン Exp: 0 2012-06-15 14:30:33.680 INFO net.spy.memcached.MemcachedConnection: 再接続 {QA sa=/10.2.200.104:11211、#Rops=0、#Wops=0、#iq=0、topRop=null、 topWop=null、toWrite=0、興味あり=0} 2012-06-15 14:30:33.680 INFO net.spy.memcached.MemcachedConnection: sun.nio.ch.SelectionKeyImpl@edf389 の接続状態が変更されました スレッド「メイン」での例外 java.lang.RuntimeException: 値を待っている例外 net.spy.memcached.MemcachedClient.get (MemcachedClient.java:1001) で net.spy.memcached.MemcachedClient.get (MemcachedClient.java:1018) で ballydev.Memcache.main (Memcache.java:39) で 原因: java.util.concurrent.ExecutionException: java.lang.RuntimeException: Canceled net.spy.memcached.internal.OperationFuture.get (OperationFuture.java:103) で net.spy.memcached.internal.GetFuture.get (GetFuture.java:62) で net.spy.memcached.MemcachedClient.get (MemcachedClient.java:997) で ... 2以上 原因: java.lang.RuntimeException: Canceled ... 5 つ以上