Do you know if there is a way to stop the RMI service on the server side programatically?
I started RMI by creating a Registry with LocateRegistry.createRegistry(). I traced the program with jconsole. It seems like whatever I do (unbinding the service, unexporting the exported service object, even unexporting the registry itself), the RMI Accept-<port> thread(s) don't stop. Do I have to exit the application to stop the RMI threads, or have I just missed something?
You have to unexport your server. I do not know exactly how you can stop the registry if you started it programatically. But if you do not start the registry than it will still be listening.
So which exactly is listening, the registry or your server?
Joined: Nov 08, 2006
Edward Harned: thanks for the answer. Too bad; I think this is a serious feature hole in RMI, then.
Mr. C Lamont Gilbert: As I said in the topic starter, I unexported both. And I think nothing is listening, just the "RMI Accept-Xxxx" threads are running (and who knows what other resources RMI needs). Unfortunately it seems that there is no way to write a flexible RMI server (with reconfigurable ports). Or, rather, not this way.
For reference, here is the code. Never mind the method indices, I had some others as well to test it
[ April 26, 2007: Message edited by: David Nemeskey ]