Uploaded image for project: 'JDK'
  1. JDK
  2. JDK-4137232

RMI could reuse remote connections in time for DGC dirty calls

XMLWordPrintable

    • Icon: Enhancement Enhancement
    • Resolution: Fixed
    • Icon: P3 P3
    • 1.1.7
    • 1.2.0
    • core-libs
    • b01
    • generic
    • generic
    • Not verified

        The methods, Object UnicastRef.invoke(...) and void UnicastRef.invoke(...), are responsible for invoking remote methods in RMI. These methods carry out remote calls over channels that maintain lists of "free" connections to a particular RMI server.

        When a remote call is invoked, it is possible that the return value of the call will contain a reference to a remote server. Anytime an RMI client unmarshalls a remote server reference from a connection input stream, the client will invoke a "dirty call" on the DGC object inside the VM that is hosting the server corresponding to unmarshalled remote refs.

        For any given remote call, connections used are not freed until a corresponding dirty call has taken place. This means that the DGC dirty call is forced to use a connection other than the one used by the call that initiated the dirty call. The number of free connections available to a dirty call could be increased simply by freeing the connections used by remote calls before a corresponding dirty call is invoked.

              ldorninsunw Laird Dornin (Inactive)
              ldorninsunw Laird Dornin (Inactive)
              Votes:
              0 Vote for this issue
              Watchers:
              0 Start watching this issue

                Created:
                Updated:
                Resolved:
                Imported:
                Indexed: