For various purposes, I wish to define various brokers on the same machine.
For example: some queues require ordering of data, and thus use the
replicatedLevelDb as persistence adapter, others don't even need persistence
or ordering and can use only memory in order to provide faster throughput,
etc...

Other than described in the page about jmx, just using the "default"
useJmx="true" parameter in the broker definition, does not change a thing.
("default" is quoted, as according to the docs this parameter is always in
effect)

So, I tried fiddling around, and got thus far:

In ACTIVEMQ_HOME/bin/env  I had to add / uncomment these lines (for now I
won't use authentication; might be added in a later stage, but first want to
see it "just work")

ACTIVEMQ_SUNJMX_START="$ACTIVEMQ_SUNJMX_START
-Dcom.sun.management.jmxremote.port=11099 "
ACTIVEMQ_SUNJMX_START="$ACTIEVMQ_SUNJMX_START
-Dcom.sun.management.jmx.authenticate=false"
ACTIVEMQ_SUNJMX_START="$ACTIVEMQ_SUNJMX_START
-Dcom.sun.management.jmxremote.ssl=false"
ACTIVEMQ_SUNJMX_START="$ACTIVEMQ_SUNJMX_START
-Dcom.sun.management.jmxremote"

in the broker definition (activemq.xml) I had to change this part:
        <managementContext>
            <managementContext createConnector="true"
                useMBeanServer="true"
                jmxDomainName="broker1"
                createMBeanServer="true"
                connectorHost="localhost"
                connectorPort="1099"
                />
        </managementContext>

This seems to work for the first broker. When starting the second broker,
which has a few different options:
ACTIVEMQ_SUNJMX_START="$ACTIVEMQ_SUNJMX_START
-Dcom.sun.management.jmxremote.port=12099 "
ACTIVEMQ_SUNJMX_START="$ACTIEVMQ_SUNJMX_START
-Dcom.sun.management.jmx.authenticate=false"
ACTIVEMQ_SUNJMX_START="$ACTIVEMQ_SUNJMX_START
-Dcom.sun.management.jmxremote.ssl=false"
ACTIVEMQ_SUNJMX_START="$ACTIVEMQ_SUNJMX_START
-Dcom.sun.management.jmxremote"

and a managementContext like this:
        <managementContext>
            <managementContext 
                createConnector="true"
                useMBeanServer="true"
                jmxDomainName="broker2"
                createMBeanServer="true"
                connectorHost="localhost"
                connectorPort="1099"
                />
        </managementContext>

I get the exception that a server is already active (which is true, it's
started by the frist broker)
Failed to start JMX connector Cannot bind to URL
[rmi://localhost:1099/jmxrmi]: javax.naming.NameAlreadyBoundException:
jmxrmi [Root exception is java.rmi.AlreadyBoundException: jmxrmi]. Will
restart man
agement to re-create JMX connector, trying to remedy this issue. |
org.apache.activemq.broker.jmx.ManagementContext | JMX connector

I had hoped that the second broker would try to find an active mbean service
and register at it, or otherwise starts one. (Same for the first broker); 

Is this possible (or are my wishes actually desirable) at all, or not? And
how to get this configured properly?






--
View this message in context: 
http://activemq.2283324.n4.nabble.com/What-is-the-proper-way-to-configure-multiple-brokers-on-the-same-machine-in-regard-to-jmx-tp4715589.html
Sent from the ActiveMQ - User mailing list archive at Nabble.com.

Reply via email to