activemq-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Mario Siegenthaler (JIRA)" <>
Subject [jira] Commented: (AMQ-1241) Make WebConsole run as a standalone WAR
Date Wed, 02 May 2007 22:57:34 GMT


Mario Siegenthaler commented on AMQ-1241:

Since I don't want to be the mean guy I actually did something about it :)

The attached patch allows 3 modes of operation, chosen via a VM-Flag (webconsole.type)
 * jndi (default): Gets a connection factory from "jms/connectionFactory" and the jmx-connection-string
(f.e. service:jmx:rmi:///jndi/rmi://localhost:1099/jmxrmi) from "jmx/url"
 * properties: Uses the system properties webconsole.jms.url and webconsole.jmx.url for the
urls of the JMS resp. JMX connectors of the broker
 * invm: Uses BrokerRegistry.findFirst() for the broker (fixes the current bug with custom
named brokers)

All modes support the following (well, the invm-mode doesn't really^^):
 * jmx-Failover: Syntax: <url1>, <url2>, <url3>, ... (f.e. "service:jmx:rmi:///jndi/rmi://serverA:1099/jmxrmi,
service:jmx:rmi:///jndi/rmi://serverB:1099/jmxrmi") that chooses the first available broker
 * jms-Failover: Standard behaviour of the connectionfactory, no code changed

Other things changed:
 * Fixed the handling of the 'query'-object in the request-context of spring (was bugged before,
they wouldn't get cleaned up at the end of the request, leading to leftover open consumers)
 * removed any direct usage of vm://localhost since that often leaded to not-wanted broker
 * explicit initialization of the WebClient class (so it'd use the right ConnectionFactory)
 * Changed the WebClient to use the JMS-classes instead of the ActiveMQ specific ones (removes
problems with application-server-provided session/connection pooling)

Things that don't work yet or are missing:
 * QueueBrowserServlet: This class does own connection handling and creating. I couldn't find
out why it'd do that, but I didn't dare doing a that deep change. So atm the RSS/Atom feeds
are broken in the web-console
 * running the war inside the broker (former standard-configuration) doesn't work due to classloader
issues (specific: BrokerRegistry is twice in the classpath). I'd suggest to reconfigure the
jetty classloading or to remove the active-mq jars from the 'in-broker-war'.
 * the patch misses the change to the startup-scripts to set the system-property "webconsole-type"
to invm
 * documentation (apart from this here)

I'd be happy to discuss this change with you guys and get some input about the changes I made.
I don't look at them at finished now, but as a step in the direction.
Thanks and greetings Mario

> Make WebConsole run as a standalone WAR
> ---------------------------------------
>                 Key: AMQ-1241
>                 URL:
>             Project: ActiveMQ
>          Issue Type: Improvement
>    Affects Versions: 4.2.0
>            Reporter: Mario Siegenthaler
> The WebConsole is a really nice thing, however you should be able to run it as a standalone
war connecting to a remote broker (another vm or another server). This improves the following
>  * stability of the broker itself as the web-console can f.e. eat up all available memory
(try looking at a large queue) or do other bad things
>  * deployment (many companys have a standard deployment process for war-files as well
as preconfigured application server to put them into)
>  * backward-compatibility (webconsole per se does not depend on a 4.2 broker, it runs
just fine with 4.1 and 4.0)
>  * support for master-slave configurations with auto-failover (f.e. with a failover jmx
syntax as well as the existing failover syntax for the jms connection)
> Related to this bug/improvement is the current mean behaviour of the web-console with
non-default named brokers (sometimes using the web-console will end up in a second broker
beeing started).

This message is automatically generated by JIRA.
You can reply to this email to add a comment to the issue online.

View raw message