Hi, anderson Thanks. I will try it.
Regards, Li > Subject: RE: About the time limit of connection keeps valid from standby mode > Date: Thu, 11 Sep 2008 17:10:12 +0800 > From: [EMAIL PROTECTED] > To: [email protected] > > Hi, Li > > It doesn't matter, just use the similar code I represented as below. > > It could be applied to MINA 1.x and MINA 2.x. I saw the source code change > between 1.7 and 2.0-M1. :P > > BR > anderson > > -----Original Message----- > From: li [mailto:[EMAIL PROTECTED] > Sent: Thursday, September 11, 2008 5:03 PM > To: [email protected] > Subject: RE: About the time limit of connection keeps valid from standby mode > > > I am sorry, I sent the mina-1.1.7 source just now. > This is the mina-2.0.0-M1 source. > > connector = new NioSocketConnector(); > connector.getFilterChain().addLast(... > connector.setHandler(handler); > InetSocketAddress add = new InetSocketAddress(host, port); future = > connector.connect(add); future.awaitUninterruptibly(); > > Btw, this source is not mine. > I use the open source LTKJava which uses mina library. > > Li > > >> Subject: RE: About the time limit of connection keeps valid from >> standby mode >> Date: Thu, 11 Sep 2008 16:40:04 +0800 >> From: [EMAIL PROTECTED] >> To: [email protected] >> >> Hi, Li >> >> You write a wrong connection recovery handling block. Refer the following >> code snippet if you want to make the application can work well in all cases: >> >> /** >> * connect to specified MC identified by incoming internet address >> * >> * @param addr >> * IP address for MC >> */ >> public void connectToMC(final InetSocketAddress addr) { final >> ExecutorService executor = Executors.newFixedThreadPool(1); >> executor.execute(new Runnable() { public void run() { ConnectFuture >> connectFuture; try { for (;;) { connectFuture = >> connector.connect(addr); System.out.println("tring to connect to MC: " >> + addr); connectFuture.await(connectTimeout, TimeUnit.SECONDS); if >> (connectFuture.isConnected()) { System.out.println("successfully >> connected to MC: " >> + addr); >> // ... >> executor.shutdown(); >> return; >> } >> >> // sleep for 5 seconds and retry >> Thread.sleep(5000); >> } >> } catch (InterruptedException e) { >> e.printStackTrace(); >> } >> } >> }); >> } >> >> Here, because my app works for multiple server cluster, please throw away >> the ExecutorService, just extract source code lines inside run() methods. >> >> BR >> anderson >> -----Original Message----- >> From: li [mailto:[EMAIL PROTECTED] >> Sent: Thursday, September 11, 2008 4:31 PM >> To: [email protected] >> Subject: RE: About the time limit of connection keeps valid from >> standby mode >> >> >> Hi, >> >> Now my program logic likes this: >> 1)the client creates a connection to a server and exchanges data with server >> continuously. >> 2)the computer enters standby mode. >> 3)bring the computer out of standby mode in about 30 minutes. >> 4)the client send data to server as soon as wake up. >> 5)the client receive IOException from IoHandler.exceptionCaught method. >> 6)the client reconnect to server this way: >> connector = new SocketConnector(); >> connector.getFilterChain().addLast(..... >> future = connector.connect(add,handler); >> >> In most cases, step 6 can recover the connection, but occasionally get the >> following exception when trying to execute future.getSession(). >> org.apache.mina.common.RuntimeIoException: Failed to get the session. >> at >> org.apache.mina.common.DefaultConnectFuture.getSession(DefaultConnectF >> uture.java:58) >> >> This problem is difficult to reproduce. >> If anyone has any advice, please tell me. >> Li >> >> _________________________________________________________________ >> 秋本番!連休たくさんのこの秋、みんなのオススメ週末旅行をチェックしよう >> http://clk.atdmt.com/GBL/go/112813570/direct/01/ > > _________________________________________________________________ > 【女性版ビリー?】話題の自宅燃焼系!美しく健康的なくびれをゲット! > http://clk.atdmt.com/GBL/go/112813569/direct/01/ _________________________________________________________________ あなたが困ったことは日本の誰かも困ってる?相談箱で調べてみよう! http://clk.atdmt.com/GBL/go/112817927/direct/01/
