I don't know if this is a Linux-only problem or
Java-specific since I run the servers under Linux.
I have a publish-subscribe system that use RMI to
"push" events to subscribers by invoking
an operation on the subscriber's remote object that they
provide when they subscribe for events.
I have one client in particular, Win98 also running JDK 1.1.7a
from Sun, that seems to hang itself
up sometimes when the screen saver kicks in. Win98 will
report a GPF and perhaps the "illegal
operation" dialog is system modal, but 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!).
Fortunately, the publisher uses multiple threads, so many
subscribers still get the events, but all
of the subscribers that are serviced by the hung thread all
get blocked until the Win98 client
fixes itself.
Is there a reason why an RMI operation call blocks
"forever" like this? It would be nicer if there
was an exception thrown, like a timeout.
Does anybody have a nice work-around or fix? Is this
Linux-specific or Java-specific?
I'm running JDK 1.1.7 on Intel from Blackdown,
green threads
I'm running RedHat 5.1.
Thanks,
David
David