javalinuxrmirmiregistry

How to close rmiregistry running on particular port?


I am working on Java RMI. I am having little issue with running my rmiregistry on port 2028 as I already used that one to run my test program. I can run my program using other port but I would like to know, How we can close rmiregistry running on particular port ?


Solution

  • If you want to do this in programming, we do something like:

    // create the registry
    Registry rmiRegistry = LocateRegistry.createRegistry(port);
    ...
    // connect to it
    JMXConnectorServer connector =
        JMXConnectorServerFactory.newJMXConnectorServer(url,
            new HashMap<String, Object>(),
            ManagementFactory.getPlatformMBeanServer());
    // do stuff with it ...
    
    // close the connection
    if (connector != null) {
        connector.stop();
    }
    // deregister the registry
    if (rmiRegistry != null) {
        UnicastRemoteObject.unexportObject(rmiRegistry, true);
    }
    

    Here's the full code for our JMXServer class. We have problems creating 2 of these and completely unregistering them so we make sure to run our unit tests on different ports.

    I use this code in my SimpleJmx JMX client/service package.