[
https://issues.apache.org/activemq/browse/AMQ-1241?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel#action_39100
]
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 startups
* 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: https://issues.apache.org/activemq/browse/AMQ-1241
> 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 (IMO):
> * 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.