The Wayback Machine - https://web.archive.org/web/20070323111823/http://www.mc4j.org:80/confluence/display/mc4j/Home

  Dashboard > MC4J Management Console > Home
MC4J Management Console Log In   View a printable version of the current page.
Home
Added by Greg Hinkle, last edited by Greg Hinkle on Jun 20, 2006  (view change)

MC4J is a project to create management software for J2EE application servers and other Java applications. It is designed to utilize the JMX specification to connect to and introspect information within supported servers and applications. It provides the ability to browse existing managed beans (MBeans), update configurations, monitor operation and execute tasks.

Current release

MC4J 2.0 Alpha 1 Released (6/18/06) 

This is a fairly major rewrite to separate the communications and connectivity code from the interface code. I'll be releasing the communications code as another project. This release also includes a rewrite of the dashboard model to make it more flexible and powerful. I've included the latest of my HTML swing layout system and there are a bunch of dashboards that use this functionality. Next steps are to document the new dashboard system and finish testing server compatibility.

The current release, MC4J 2.0 alpha 1 is available for download.

Features
Can connect to ten different server types from a single interface
Multiple live connections to any combination of the supported servers
Full MBean tree to view all the exposed information in a server
View server configurations and statistics remotely
Perform operations on a server
Register and track notifications
Monitor performance information from the JVM itself using JDK 5
Dynamic charting for all numeric information
Custom dashboards for specific features in a server
Query the server to find specific MBeans by name or by their attributes


Future releases

The future of MC4J is now being refactored and developed, see our Road Map for more information.

JMX Wiki

Also visit the JMX Wiki for more general knowledge sharing on the JMX specification and its uses.

MC4J Supported Servers

Let us know if you have more information on compatibility

Server Versions
JBoss 3.2.x, 4.0
JMX Remoting 1.0.1
MX4J 1.1.1, 2.x
OC4J 10.0.3
Tomcat 4.1.29, 5.0.x, 5.5.x
Bea Weblogic 6.1, 7.0, 8.1, 9
IBM WebSphere 5.0, 5.1, 6.0
Apache Geronimo M1, M2, M3
Sun JSAS 8, 8.1
Pramati 3.5.3, 4.0 preview

Hi
I have created a DynmiacMBean and downloaded the attributes,operations from the properties file.
Also i have method which will get the filePath as attribute to load the attributes at runtime.

By using MC4J console after specifying the filePath parameter click on runAction which will load the attributes from the file.

But the MC4J console is not listing the newly added attributes.

It would be great if you could help on this issue.Is ther any option in MC4J to reload the MBeans?

Regards
Subbaraj jeganathan,
Design Analyst,
Wipro Technologies Ltd,
Bangalore.

Posted by Subbaraj Jeganathan at Aug 23, 2005 02:30 | Permalink



There is no way to reload the mbean info on a current connection in mc4j today. You can disconnect and reconnect to the server and that will refresh the attributes, but dynamic metadata support is not yet built. Feel free to post a feature request and I'll look into adding it.

Posted by Greg Hinkle at Aug 23, 2005 07:14 | Permalink

Greg,

 I am having some trouble connecting to Websphere 5.1. I can programatically create my own working client (using the admin.jar and other libs from Websphere), but cannot seem to do the same using either RMI or SOAP adapters with MC4J. The core of the problem might be the fact that I do not have a full-blown Websphere installation on the PC on which I am running MC4J (I have the embedded version for RAD 6, but this does not work). Is this an absolute requirement? There is no way my company will pay for a licensed version of WAS on my PC just to have JMX monitoring...I could write my own Swing client, but would rather save myself the effort

The exception stack trace I get when I connect is:

 javax.naming.CommunicationException: Cannot connect to ORB [Root exception is org.omg.CORBA.COMM_FAILURE:   vmcid: SUN  minor code: 201  completed: No]

    at com.sun.jndi.cosnaming.CNCtx.setOrbAndRootContext(CNCtx.java:362)
    at com.sun.jndi.cosnaming.CNCtx.initUsingCorbanameUrl(CNCtx.java:321)
    at com.sun.jndi.cosnaming.CNCtx.initUsingUrl(CNCtx.java:247)
    at com.sun.jndi.cosnaming.CNCtx.initOrbAndRootContext(CNCtx.java:209)
    at com.sun.jndi.cosnaming.CNCtx.<init>(CNCtx.java:69)
    at com.sun.jndi.cosnaming.CNCtxFactory.getInitialContext(CNCtxFactory.java:32)
    at javax.naming.spi.NamingManager.getInitialContext(NamingManager.java:667)
    at javax.naming.InitialContext.getDefaultInitCtx(InitialContext.java:247)
    at javax.naming.InitialContext.init(InitialContext.java:223)
    at javax.naming.InitialContext.<init>(InitialContext.java:197)
    at org.mc4j.console.connection.WebsphereConnectionNode.connect(WebsphereConnectionNode.java:93)
    at org.mc4j.console.connection.ReconnectAction.performAction(ReconnectAction.java:47)
    at org.openide.util.actions.NodeAction.performAction(NodeAction.java:193)
    at org.openide.util.actions.CallableSystemAction$1.run(CallableSystemAction.java:78)
    at org.openide.util.actions.CallableSystemAction$ActionRunnable.actionPerformed(CallableSystemAction.java:247)
    at org.netbeans.core.ModuleActions.invokeAction(ModuleActions.java:74)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
    at java.lang.reflect.Method.invoke(Method.java:585)
    at org.openide.util.actions.CallableSystemAction.invokeAction(CallableSystemAction.java:179)
    at org.openide.util.actions.CallableSystemAction.access$000(CallableSystemAction.java:31)
    at org.openide.util.actions.CallableSystemAction$ActionRunnable.doRun(CallableSystemAction.java:241)
    at org.openide.util.actions.CallableSystemAction$2.run(CallableSystemAction.java:111)
    at org.openide.util.Task.run(Task.java:136)
    at org.openide.util.RequestProcessor$Task.run(RequestProcessor.java:330)
    at org.openide.util.RequestProcessor$Processor.run(RequestProcessor.java:686)

...

Caused by: java.net.ConnectException: Connection refused: connect

    at sun.nio.ch.Net.connect(Native Method)
    at sun.nio.ch.SocketChannelImpl.connect(SocketChannelImpl.java:464)
    at java.nio.channels.SocketChannel.open(SocketChannel.java:146)
    at com.sun.corba.se.impl.transport.DefaultSocketFactoryImpl.createSocket(DefaultSocketFactoryImpl.java:60)
    at com.sun.corba.se.impl.transport.SocketOrChannelConnectionImpl.<init>(SocketOrChannelConnectionImpl.java:188)

...

 My credentials are an administrative login for Websphere, and I have added the properties specified in IBM's documentation for the AdminClient and the server jars just for good measure. But I think that MC4J is hard-coded to try and find the jars from the WAS installation specified in the connection setup.

Thanks,

 Brennan

Posted by Brennan Spies at Jun 27, 2006 10:22 | Permalink

Ah, I see the problem in the WebsphereConnectionProvider class. You assume that security is turned off. You should allow the user to specify the AdminClient properties on the MC4J connection properties.

 From the Websphere docs:

An exmample to make a secure SOAP based AdminClient: Properties props = new Properties();
props.setProperty(AdminClient.CONNECTOR_HOST, "localhost");
props.setProperty(AdminClient.CONNECTOR_PORT, "8880");
props.setProperty(AdminClient.CONNECTOR_TYPE, AdminClient.CONNECTOR_TYPE_SOAP);
props.setProperty(AdminClient.CONNECTOR_SECURITY_ENABLED, "true");
props.setProperty(AdminClient.USERNAME, "test2");
props.setProperty(AdminClient.PASSWORD, "user24test");
props.setProperty("javax.net.ssl.trustStore", "C:/WebSphere/AppServer/etc/DummyClientTrustFile.jks");
props.setProperty("javax.net.ssl.keyStore", "C:/WebSphere/AppServer/etc/DummyClientKeyFile.jks");
props.setProperty("javax.net.ssl.trustStorePassword", "WebAS");
props.setProperty("javax.net.ssl.keyStorePassword", "WebAS");
AdminClient client = AdminClientFactory.createAdminClient(props);

 

Posted by Brennan Spies at Jun 28, 2006 11:55 | Permalink
Site powered by a free Open Source Project / Non-profit License (more) of Confluence - the Enterprise wiki.
Learn more or evaluate Confluence for your organisation.
Powered by Atlassian Confluence, the Enterprise Wiki. (Version: 2.2.7 Build:#524 Jul 28, 2006) - Bug/feature request - Contact Administrators