Le 11/28/12 4:21 PM, Dhruv Chopra a écrit :
> Hi,
Hi,
>
> My MINA server has a 2 filter chain (A and B - where output of encoder A is
> further encoded by B and then sent out on the wire). Now everything works
> fine under normal load (20 clients with incoming 20 msgs/sec and outgoing
> 100 msg/sec). But when I increase the load - I randomly start getting
> exceptions with cause *"don't know how **to handle message of type 'X'**.
> Are you missing a protocol encoder?"*. This message of type 'X' is the
> output of my filter A's encoder and input for filter B's encoder. I added
> a bunch of logs and see that in the failure case, my filter B never
> received the output of filter A and this exception followed. I also logged
> the threadids and see that when this occurred, thread 't' had encoded the
> message through filter A and then started encoding another message through
> filter A. Then the exception occurs and same Thread 't' continues encoding
> the other message through filter B. So its like it completely forgot to
> encode the earlier message through filter B. In the good cases, thread 't'
> would after encoding an object through encoder A always encode that through
> encoder B before doing anything else.
>
> Another thing is that when I only have one filter - even under higher
> stress, things work fine.

Do you have an executor filter in your chain ?

Otherwise, it seems you have enqueued a mssage which is not an IoBuffer,
and this can't be sent. Like if encoder A directly pushes the message
instead of going through the second encoder.

It's difficult to tell what's going wrong without more information. Can
you tell us more ?

-- 
Regards,
Cordialement,
Emmanuel Lécharny
www.iktek.com 

Reply via email to