Thanks for reply 


I think I should look into my server code carefully whether there is some
contention in codes.

Could you recommend some useful performance tool for test my Server Codes?
 
Regards,

Park


Emmanuel Lecharny wrote:
> 
> On 4/12/11 12:31 PM, Mavlarn Tuohuti wrote:
>> There are 2 places where Mina uses multi-thread, IoProcessor(to accept
>> new
>> connection) and IoHandler(to handle the event).
> Nope. Once you have created IoProcessor threads ( default to nb CPU +1), 
> you don't have any more thread created.
> 
> It's up to the user to add an Executor in the chain, or to have some 
> executor in the application.
>> By default, Mina will use (cpu count + 1) threads for IoProcessor. you
>> can
>> set the count as below:
>>   NioSocketAcceptor acceptor = new NioSocketAcceptor(10);
>> But, in the normal, the process of creating new connection is quick, so
>> no
>> need to set this count a big number. But you can try.
> As I said, it's not only about creating new connection : once your 
> message is pushed to an IoProcessor, the thread will process the message 
> until it has done its job, and it includes the IoHandler processing. If 
> your application processing is heavy, with some contention (DB access), 
> then adding an executor in the filter chain may be necessary.
>> As I know, IoProcessor and IoHandler are working in separate threads. S
> Wrong. Unless you have added an executor in the chain.
> 
>> o the
>> blocking in messageReceived() should not affect new connection.
>> I think you can check the logic of broadcasting. Maybe it occupied the
>> IoSession of client.
> 
> What I would check is how the outgoing data are processed in the codec. 
> It would be an excellent idea to push the data in small chunks, instead 
> of writing a 100kb block of data, for many reasons. One of them is that 
> your 100kb will stay in memory until all of it has been sent, and this 
> is definitively not good, and another reason is that it might take time 
> to be ready to send the first byte if you have an heavy processing 
> before it hits the socket.
> 
> Now, if you have some time out on the client side, it's very likely that 
> you have some contention on your server, and it would be wise to run 
> some performance tool to know excalty what's going on.
> 
> 
> -- 
> Regards,
> Cordialement,
> Emmanuel Lécharny
> www.iktek.com
> 
> 
> 

-- 
View this message in context: 
http://old.nabble.com/I-Wonder-Why-client-connection-timeout-occurs-while-the-MINA-server-broadcasts-message-to-connected-users.-tp31369411p31386810.html
Sent from the Apache MINA User Forum mailing list archive at Nabble.com.

Reply via email to