[GLASSFISH-20707] GlassFish V3 Embedded Broker fails to use DAS GF JMX port (RmiRegistry) when its secured Created: 18/Jul/13  Updated: 04/Jun/14

Status: Open
Project: glassfish
Component/s: jms
Affects Version/s: None
Fix Version/s: None

Type: Bug Priority: Major
Reporter: gfuser9999 Assignee: David Zhao
Resolution: Unresolved Votes: 0
Labels: None
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified
Environment:
  • GFv3122
  • OS any
  • JDK any

Issue Links:
Dependency
depends on MQ-326 Embedded broker JMX support using Gla... Open
blocks GLASSFISH-20714 GlassFish Broker's Use Of An RMI Regi... Open
Tags: 4_0_1-reviewed, GF, MQ, RMIRegistry, extra, jms, jmx, port

 Description   

In GFv3, for the Admin-Connector (JMX connector) enable security-enable from false to true. When this is done, the the GlassFish MQ JMX will dynamically create a new RMIRegistry and unable to use GlassFish JMX port (8888)

Testcase:
---------
[Baseline]
1. Use a stock GF with embedded MQ.
2. Enable logger for javax.enterprise.resource.resourceadapter
& javax.enterprise.resource.jms.level to be FINE
3. Access the MQ by say "telneting to the MQ portmapper port 7676)
(since by default MQ is lazy initialized)
4. Now, you can see the MQ JMX port

  1. imq list jmx -b :7676
    should give you something like
    "service:jmx:rmi://<host>/jndi/rmi://<host>:8888/<host>/7676/jmxrmi"
    • Notice that the GF DAS RMI registry 8888 is used.

[JMX Admin-service security enabled] Now, secure the GF JMX connector

1. Restart, and redo step 3 & 4
2. # imq list jmx -b :7676 shows
"service:jmx:rmi://<host>/jndi/rmi://<host>:7776/<host>/7676/jmxrmi"

      • Note port 7776 (which is 7676+100 is created for the MQ rmi registry)

Concerns:
----------
a) More ports are used than needed.
b) The MQ port itself is +100 of the MQ portmapper (not changeable unless
using undocumented option).
Not settable too (always default to +100)

====
Logs:
====
[#|2013-07-17T12:17:55.167+0000|FINE|oracle-glassfish3.1.2|javax.enterprise.resource.jms.com.sun.enterprise.connectors.jms.system|_ThreadID=29;_ThreadName=Grizzly-kernel-thread(1);ClassName=com.sun.enterprise.connectors.jms.system.ActiveJmsResourceAdapter;MethodName=logFine;|isASRmiRegistryPortAvailable - JMSService Type:EMBEDDED|#]

[#|2013-07-17T12:17:55.170+0000|FINE|oracle-glassfish3.1.2|javax.enterprise.resource.jms.com.sun.enterprise.connectors.jms.system|_ThreadID=29;_ThreadName=Grizzly-kernel-thread(1);ClassName=com.sun.enterprise.connectors.jms.system.ActiveJmsResourceAdapter;MethodName=isASRmiRegistryPortAvailable;|Attempting to list rmi://0.0.0.0:8888|#]

[#|2013-07-17T12:17:55.181+0000|FINE|oracle-glassfish3.1.2|javax.enterprise.resource.jms.com.sun.enterprise.connectors.jms.system|_ThreadID=29;_ThreadName=Grizzly-kernel-thread(1);ClassName=com.sun.enterprise.connectors.jms.system.ActiveJmsResourceAdapter;MethodName=isASRmiRegistryPortAvailable;|non-JRMP server at remote endpoint rmi://0.0.0.0:8888|#]

      • Due to securing GFv3.x RMIRegistry, the testing of this fails
        with non-JRMP hence MQ create a new RMIRegistry for the MQ JMX.

Generated at Fri Feb 27 12:56:30 UTC 2015 using JIRA 6.2.3#6260-sha1:63ef1d6dac3f4f4d7db4c1effd405ba38ccdc558.