>I don't know if this is a Linux-only problem or Java-specific since I
>run the servers under Linux.
It's a Java RMI thing. There's an rmi-users mailing list that you
might want to look at.
>whenever events are pushed to this client while in this state, the
>Linux server hangs sending this event for a long time (I've seen it
>hang for one hour!).
This is the expected behaviour for RMI; all remote method calls are
synchronous, so you have to wait until the client returns. If the
client is hung in a bad state you might just delay for a long time.
Worse, you can't tell this condition from a random network slowdown.
RMI should timeout, though, and I believe it tries to sooner than 60
minutes. I thought there was even a Java property you could set to
control the timeout, but I can't find it now. This part might be Linux
specific, since the timeout stuff is a socket option. Can anyone on
the porting team comment?
As for what to do about it, you might need to implement some sort of
server-side asynchronous messaging. For event delivery, I have some
simple code that forks a thread for every single message. That's not
such a good idea. A thread per receiver is a bit better.
This is a fundamental limitation of RMI. Sorry :-(
[EMAIL PROTECTED]
. . . . . . . . http://www.media.mit.edu/~nelson/