Hey Gato,
Thank you for the pointers - it's nice to know that I'm not alone with
this problem! :-)
I put a line of code in my IoHandlerAdapter.messageSent method and Mina
is definately holding onto the data and slowing releasing it roughly
every 5 seconds.
It's a mystery to me why Mina would suddenly choose to queue up the
packets like that, but I'll have a sniff around SocketIoProcessor to see
if I can understand what's going on.
Puzzling!!
Many thanks,
Richard.
--
Gaston Dombiak wrote:
Hey Richard,
We observed the exact problem. It seems like SocketIoProcessor is
failing to flush sessions and traffic is kept in
SocketSessionImpl#writeRequestQueue. Moreover, if you leave the server
running for a long time this will end up in an OOM. I'm still trying to
get to the bottom of this problem but I'm trapped in some other tasks as
well so I'm not able to debug this problem further.
Any help is greatly appreciated. :)
Thanks,
-- Gato
-----Original Message-----
From: Richard Lowe [mailto:[EMAIL PROTECTED]
Sent: Thursday, May 24, 2007 12:44 PM
To: [email protected]
Subject: Packets drying up...
Hi,
I'm using Mina 1.1 under Java 5 for both my server and client. I'm
sending roughly 4 packets a second from the client to the server and
from the server back to the client, each one tends to be around 48 bytes
or so.
My TCP send and receive buffers are set to 128 bytes currently.
It works great for a while (maybe five minutes), but then the packets
seem to dry up suddenly.
The stream of packets from the server to the client start dribbling
through and I only get one packet every 5 seconds or so.
At first I thought that they might be getting delayed on the Internet
somewhere, but it appears that isn't the case.
1. I ran TCPDump on the client and it really is only receiving a packet
every 5 seconds (almost exactly 5 seconds - regular as clockwork).
2. I then ran TCPDump on the server and it's only *sending* one packet
every 5 seconds (again, like clockwork).
My application log reveals that everything has been passed to the
IoHandlerAdapter write method - there's nothing left for my application
to send, so the data is getting queued somewhere deeper.
I'm scratching my head here. The server is Windows 2000 and the client
is Mac OS X.
If anybody has any suggestions, they would be most greatly appreciated!
Many thanks,
Richard.
--