On Thu, Jul 16, 2009 at 3:18 AM, Michael Wood<[email protected]> wrote:
>
> 2009/7/15 Daniel <[email protected]>:
>>
>> On Wed, Jul 15, 2009 at 3:43 AM, Michael Wood<[email protected]> wrote:
> [...]
>>> I've never tried this sort of thing before, but I'm trying to connect
>>> to a JBoss instance with it and not having much luck.  I think I need
>>> to authenticate somehow, but I have no idea how to do that.  Normally
>>> you look at these settings through a web interface, so I'm not quite
>>> sure what's necessary to bypass the web interface.
>>
>> The usual way you can interact with JMX (if there's not dedicated
>> webconsole running) is either via JConsole (part of the JDK since
>> 1.4.2 IIRC), or VisualVM (part of the Sun and derived (incl. OS X) JDK
>> since 1.6). jconsole is usually on the PATH, so you should be able to
>> launch it with 'jconsole' using whatever JDK is configured on the
>> PATH. I VisualVM is a bit more featureful and flexible and you should
>> be able to invoke it with 'jvisualvm' on the console, or from wherever
>> you downloaded a newer version to [1].
>>
>> If you can connect with either of these tools, then it should be
>> possible to connect programmatically as well. Beware though that both
>> these tools have the possibility to connect to applications running on
>> the same machine through a special domain socket only available in
>> internal Sun classes (to be able to connect via JMX even if the
>> original process didn't enable JMX). To enable JMX the 'official' way,
>> follow the instructions at [2] (or [3] for the JBoss specific
>> incarnation of if).
>>
>> Hope that helps
>
> Yes, thanks.  I am able to connect now.  I was assuming that the
> jmx-console web interface communicated via JMX and therefore that I
> should be able to connect without having to do anything else.
>
> By the way, how does twiddle.sh (which appears to be a command line
> tool for fiddling with JMX stuff in JBoss) work then?  Because it
> works without having to use the
> -Dcom.sun.management.jmxremote.port=12345,
> -Djboss.platform.mbeanserver and
> -Djavax.management.builder.initial=org.jboss.system.server.jmx.MBeanServerBuilderImpl
> options.
>

A remote process (process not running on the same machine as JMX
client) can usually be accessed through an RMI connection. The used
RMI connector and object server to serve the JMX connection can be the
trivial (and problematic) implementation from Sun (enabled with
-Dcom.sun.management.jmxremote) or it can be a better version by the
vendor usually automatically started on port 1099 (I guess that this
is what JBoss does, but check to be sure). Note on why problematic:
Suns implementation only allows you to specify the connector port, but
not the object server port, which is dynamic and therefore doesn't
play nice with firewalls.

If it's on the same machine, then it's the internal domain socket
mentioned above (same mechanism that's used to figure out what 'jps'
returns.

More info on Twiddle at JBoss
http://www.jboss.org/community/wiki/Twiddle (see: Connecting twiddle
to a Remote Server - default behaviour).

Cheers,
Daniel

--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google
Groups "Clojure" group.
To post to this group, send email to [email protected]
Note that posts from new members are moderated - please be patient with your 
first post.
To unsubscribe from this group, send email to
[email protected]
For more options, visit this group at
http://groups.google.com/group/clojure?hl=en
-~----------~----~----~----~------~----~------~--~---

Reply via email to