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