JDK-8217599 : deprecate RMI Activation and the rmid tool for removal
  • Type: Enhancement
  • Component: core-libs
  • Sub-Component: java.rmi
  • Priority: P4
  • Status: Closed
  • Resolution: Duplicate
  • Submitted: 2019-01-23
  • Updated: 2020-05-28
  • Resolved: 2020-05-28
Related Reports
Duplicate :  
Description
RMI Activation is an add-on to RMI that allows lazy creation of RMI services. Ordinary RMI services require a server to exist in order to handle calls on a stub. An Activatable service need not have an active service at all times. If a service is not active, the Activation daemon (rmid) will lazily fork a subprocess to handle an incoming call.

The Activation system is optional in Java SE. The Activation APIs are part of Java SE, but rmid and the options for configuring it are JDK-specific.

RMI is not used much in general these days. RMI Activation is used for a small subset of RMI use cases, and as such is likely used very rarely. These use cases have been superseded by web services with load management systems that add or remove capacity on demand.

In turn, Activation adds considerable complexity to RMI. There are a variety of special cases embedded in the RMI code to handle Activatable cases. It is also a frequent source of intermittent test failures because of the complexity of setup and teardown of the test fixture, including rmid, the service, and one or more clients. Most of the maintenance work on RMI Activation recently has been fixing up intermittent test failures.

Removal of RMI Activation will reduce the public API surface area and maintenance load of the JDK.
Comments
Superseded by JEP 385 (JDK-8244917).
28-05-2020