thanks your reply very much; It is strongly improve the throughput of the server,when i reset the SocketAcceptorConfig blacklog parameter . The problem is still exst.when 300 clients connect ,10clients will be refused,can not connect successfuly; how can i do it now??
Qi wrote: > > Hi there, > > Have you tried setting a higher value for backlog yet? > It's a parameter that you can tune around with in SocketAcceptorConfig, > which determines how many incoming TCP connections your underlying system > would try to queue up if no enough resources can be allocated to handle > these connection requests. If such a limit is reached, further requests > could be dropped. Since you mentioned connection requests were arriving in > a small time frame, I have a strong feeling this parameter is the cause. > > Please See > "Note about socket backlogs" section on http://xrl.us/bc52m and > http://xrl.us/bc52o for more details. > > Cheers, > Qi > > > chinadeng wrote: >> >> server can not detect the 60 connections,not session closed(session is >> not opened at all), >> in other word ,when 300 clients connect ,server only can hanlder parts >> of clients(not all clients) >> >> Trustin Lee wrote: >>> >>> What do you mean by 'discarded'? Are the 60 connections get closed? >>> Are you notified with sessionOpened or sessionClosed? >>> >>> Trustin >>> >>> On Dec 20, 2007 11:48 AM, chinadeng <[EMAIL PROTECTED]> wrote: >>>> >>>> Hi: >>>> when 300 client connect to my servers at almost in same time ,but the >>>> server only can handle 240 client ,60 client will be discarded. >>>> my server codes like fellowing : >>>> InetSocketAddress serverAddress1 = new InetSocketAddress(8008); >>>> DemuxingProtocolCodecFactory dpcf = new >>>> DemuxingProtocolCodecFactory(); >>>> >>>> dpcf.register(new CliEntCmdDeconder()); >>>> dpcf.register(new CliEntEncoder()); >>>> >>>> SocketAcceptor acceptor = new >>>> SocketAcceptor(Runtime.getRuntime().availableProcessors() + 1, >>>> Executors.newCachedThreadPool()); >>>> >>>> SocketAcceptorConfig cfg = new SocketAcceptorConfig(); >>>> cfg.setReuseAddress(true); >>>> DefaultIoFilterChainBuilder chain = cfg.getFilterChain(); >>>> chain.addLast("logger", new LoggingFilter()); >>>> chain.addLast("protocol", new ProtocolCodecFilter(dpcf)); >>>> System.out.println("long on ...."); >>>> DemuxingIoHandler iohanlder=new DemuxingIoHandler(); >>>> >>>> iohanlder.addMessageHandler(clicmdbro.class, new >>>> CliEntCmdHandler(testb)); >>>> >>>> try >>>> { >>>> acceptor.bind(serverAddress1,iohanlder, cfg); >>>> } catch (IOException e) >>>> { >>>> // TODO Auto-generated catch block >>>> e.printStackTrace(); >>>> } >>>> how can i ressolve the problem?? >>>> Thanks in Advance >>>> -- >>>> View this message in context: >>>> http://www.nabble.com/How-can-i-improve-the-total-numbers-of-session-which-server-will--handle-connects-from-client-tp14429723s16868p14429723.html >>>> Sent from the Apache MINA Support Forum mailing list archive at >>>> Nabble.com. >>>> >>> >>> >>> >>> -- >>> what we call human nature is actually human habit >>> -- >>> http://gleamynode.net/ >>> -- >>> PGP Key ID: 0x0255ECA6 >>> >>> >> >> > > -- View this message in context: http://www.nabble.com/How-can-i-improve-the-total-numbers-of-session-which-server-will--handle-connects-from-client-tp14429723s16868p14432306.html Sent from the Apache MINA Support Forum mailing list archive at Nabble.com.
