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

(perf) rmid groups and ConnectException under load

XMLWordPrintable

    • Icon: Enhancement Enhancement
    • Resolution: Fixed
    • Icon: P4 P4
    • 6
    • 1.4.0
    • core-libs
    • beta
    • generic
    • generic

      By default, the ActivationInstantiator for a group gets exported on an anonymous port, and it's quite likely that the activatable services will also be exported on an anonymous port, so the end result is that they all share the same server socket listening for new connections. If the activatable objects get heavy traffic, such that the accept queue overflows and ConnectExceptions start getting thrown, then ActivatableRef will attempt to (re)activate with force=true, which will cause rmid to attempt to call newInstance on the ActivationInstantiator. But this is also likely to throw ConnectException, since a single server socket is being used. rmid currently considers such a ConnectException as evidence that the group is dead, and it will kill the group. This is not good. One possible remedy is to change the default ActivationGroup[Impl] to somehow export on an anonymous port that won't get shared with anyone else, so that the odds of a ConnectException from it being due to accept queue overflow are very low.

      It would also be useful if rmid logged a message when it decides a group is dead due to an exception thrown from newInstance.

            awollratsunw Ann Wollrath (Inactive)
            bscheiflsunw Bob Scheifler (Inactive)
            Votes:
            0 Vote for this issue
            Watchers:
            0 Start watching this issue

              Created:
              Updated:
              Resolved:
              Imported:
              Indexed: