PS. I'm not at all familiar with the Mina code-base and so if anybody has any suggestions on where I should be looking, that'd be really helpful. Thank you all again!

Richard Lowe wrote:
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.
--










Reply via email to