Uploaded image for project: 'ActiveMQ Classic'
  1. ActiveMQ Classic
  2. AMQ-4033

AMQ Broker - Uses custom RMIServerSocketFactory class which cannot be unloaded due socket reuse

    XMLWordPrintableJSON

Details

    • Bug
    • Status: Closed
    • Minor
    • Resolution: Abandoned
    • 5.6.0
    • NEEDS_REVIEW
    • Broker, JMX
    • None
    • Regression

    Description

      When embedding ActiveMQ Broker in a container, such as Tomcat or others. And if you have JMX enabled on the broker, then a RMI registry is created to allow JMX/RMI over TCP.

      This uses a custom RMIServerSocketFactory that gets enlisted into the JDK RMI registry. But when you undeploy the AMQ broker, there is no API in the JDK to unregister your custom RMIServerSocketFactory class.

      And therefore the JDK (system class) has a strong reference to the custom RMIServerSocketFactory, which prevents the container classloader to fully unload all classes.

      Disabling JMX on the broker, allows to unload all the classes.

      Attachments

        1. MMC.png
          106 kB
          Claus Ibsen

        Issue Links

          Activity

            People

              Unassigned Unassigned
              davsclaus Claus Ibsen
              Votes:
              0 Vote for this issue
              Watchers:
              6 Start watching this issue

              Dates

                Created:
                Updated:
                Resolved: