I removed the following lines in the NotificationThread.java as suggested by the you in the test setup and tried the same (3 clients + 1 server + 500 notifications) what we done before. We are not getting the notifications drop every time. But if you try the same 3 or 4 times, then you will get the notification drops in the client.
Removed lines from the NotificationThread.java --------------------------------------------------------- buffer.release(); buffer = null; FYI: the behavior differs in Windows & Linux. In Linux I am getting the notification drops very often compare than windows. Kindly help me to resolve the issue. Thanks. Trustin Lee wrote: > > It's unlikely that MINA misses any data unless there's disconnection. > > It might be because you are releasing the buffer unnecessarily. > Please remove the two lines (buffer.release() and buffer = null). > Also, make sure no exception is caught in your IoHandler > implementation. > > There's also possibility you are not taking care of TCP/IP packet > fragmentation in NotificationObject.getObject(...) (i.e. two messages > are received in one ByteBuffer.) > > Trustin > > On Dec 11, 2007 11:11 PM, AmalRaj P <[EMAIL PROTECTED]> wrote: >> >> In my project I am using MINA framework for notification, with multiple >> clients in place I faced packet loss issues. >> >> Then I planned to setup a sample environment with a server and three >> clients >> connected to it. >> >> Server: >> >> Will publish numbers generated in loop to all clients >> connected/registered >> >> public void run() >> { >> IoSession session = null; >> int j = 0; >> while (j < 500) >> { >> for (int i = 0; i < sessions.size(); i++) >> { >> String msg = "For client " + i + " value sent is:" + j; >> System.out.println(msg); >> byte data[] = NotificationObject.getBytes(new >> String(msg)); >> ByteBuffer buffer = ByteBuffer.wrap(data); >> session = (IoSession) sessions.get(i); >> session.write(buffer); >> buffer.release(); >> buffer = null; >> >> } >> j++; >> } >> } >> >> >> Client: >> >> Will just receive the message and print it >> >> public void messageReceived(IoSession session, Object message) >> { >> ByteBuffer buffer = (ByteBuffer) message; >> byte[] data = new byte[buffer.remaining()]; >> buffer.get(data); >> Object obj = NotificationObject.getObject(data); >> System.out.println("ClientHandler : data received is : " + obj); >> } >> >> >> Results: >> >> Client1 Missed: 203, 253, 293 >> >> Client2 Missed: 204, 252 >> >> Client3 Missed: 247, 252 >> >> I don't know why I am getting packet loss in the Client side. Need some >> help >> as every single notification in our process cannot be missed. >> >> I have attached the test setup. Just use the batch files inside bin. >> Sample >> logs where you can see the issues are also available. >> http://www.nabble.com/file/p14274506/MinaTestSetup.zip MinaTestSetup.zip >> -- >> View this message in context: >> http://www.nabble.com/Packet-loss-Issue-tp14274506s16868p14274506.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/Packet-loss-Issue-tp14274506s16868p14295021.html Sent from the Apache MINA Support Forum mailing list archive at Nabble.com.