JMX 1.0 client to JMX 1.2 mbean possilbe?

Hi!
I'm using Weblogic 8.1 which supports JMX 1.0 spec.
I would like to query mbeans in a Weblogic 10.0 server that support JMX 1.2.
Is that possible? and how is it done?
Regards,
Jesper Vrelits

Hi!
I'm using Weblogic 8.1 which supports JMX 1.0 spec.
I would like to query mbeans in a Weblogic 10.0 server that support JMX 1.2.
Is that possible? and how is it done?
Regards,
Jesper Vrelits

Similar Messages

  • Notifications in jmx to multiple clients

    Hi.
    I have created some application, which have jmx embeded in it. The application broadcast notifications by this.sendNotification (my mbean class also extends StandardEmitterMBean mbean). All is going nice.
    Problem is, when I connect to my application by more than one "admin console". Only one console is receiving notifications, and others do not. In admin console I registe mbean to receive notifications imediately after connecting to server. (also mc4j doesnt receive notifictions, if I start one admin console first)
    Where can be problem? (all other things like getting attributes and its values is working, just the notifications hangs up) Or what should I do to solve my problem?

    I found problem. I have not definition of my notification subclass on the other instance of admin console. My fault, sry for spam.

  • JMX newbie question: isn't jmx just a private case of remoting / rmi ?

    I'm new to jmx, so I hope this question doesn't sound too weird....
    I've been looking into JMX, and were wondering:
    It seems like the entire JMX framework is about exposing management methods to remote clients (or local ones)...
    But if so, why not use any other (generic) remoting mechanisms, such as RMI or web services ?
    ( I mean, a management method is just a method - why can't it be exposed using the same mechanism as business methods ?)
    I did notice that JMX offers more flexibility in terms of protocol (adapters / connectors)... but then I thought, well, if they throught it's worth it to have pluggable protocols for remote *management", why didn't they do the same thing for RMI - have pluggable interfaces for it , too ?
    Thanks !

    I'me new to jmx too...
    I think that JMX is a Management framework...
    not such as RMI or web wervices..
    even if you are working in the biggest project...
    when you use JMX framework,it can help to control your project...
    Just I think...

  • Java 1.5 client with WLS 8.1 MBeans...

    Hi,
              I maintain http://www.hermesjms.com and am investigating a problem with Hermes, which uses a 1.5 VM, interrogating WLS MBeans with WLS on 1.4.
              This thread describes what users have seen and what I have also replicated:
              http://www.hermesjms.com/forum/viewtopic.php?t=126
              As you can see, setting -Djmx.serial.form=1.0 fixes the serialisation problem but I now get the InstanceNotFoundException.
              I invoke getMBean() from the getStatistics() method here:
              http://cvs.sourceforge.net/viewcvs.py/hermesjms/Hermes4/src/java/hermes/ext/weblogic/WebLogicJMSAdmin.java?view=markup
              Any kind soul out there know what the problem may be? I'm kinda confused...
              Many thanks,
              Colin.

    Hi Tom,
              When I upgrade to 9.0 client against 8.1 server I get the exceptions at the end of this mail. The server I am talking to is a single server, not in a cluster, and is just the out-of-the-box WLS 8.1 with a JMS server and some queues and topics configured.
              I don't get the ClassNotFoundException for WebLogicObjectName as this exists in weblogic.jar. Is there anything I need to do to WLS 8.1 to allow a 9.0 client to interop?
              Cheers,
              Colin.
              2005-08-04 08:25:41,753 [Timer-7] DEBUG hermes.ext.weblogic.WebLogicJMSAdmin - Constructed JMSDestination MBean name: mydomain:JMSServerRuntime=MyJMS Server,Location=myserver,Name=MyDistributed Queue,ServerRuntime=myserver,Type=JMSDestinationRuntime
              2005-08-04 08:25:41,773 [Timer-7] ERROR hermes.HermesWatchManager - Unexpected Exception
              weblogic.rmi.extensions.RemoteRuntimeException: Unexpected Exception
                   at weblogic.management.internal.MBeanHomeImpl_814_WLStub.getMBean(Unknown Source)
                   at hermes.ext.weblogic.WebLogicJMSAdmin.getMBean(WebLogicJMSAdmin.java:329)
                   at hermes.ext.weblogic.WebLogicJMSAdmin.getStatistics(WebLogicJMSAdmin.java:155)
                   at hermes.ext.weblogic.WebLogicJMSAdmin.getDepth(WebLogicJMSAdmin.java:119)
                   at hermes.impl.HermesAdminAdapter.getDepth(HermesAdminAdapter.java:108)
                   at hermes.impl.DefaultHermesImpl.getDepth(DefaultHermesImpl.java:1187)
                   at hermes.HermesWatchManager.updateWatchStatistics(HermesWatchManager.java:202)
                   at hermes.HermesWatchManager.doUpdate(HermesWatchManager.java:170)
                   at hermes.HermesWatchManager.access$000(HermesWatchManager.java:38)
                   at hermes.HermesWatchManager$2.run(HermesWatchManager.java:84)
                   at java.util.TimerThread.mainLoop(Timer.java:512)
                   at java.util.TimerThread.run(Timer.java:462)
              Caused by: java.rmi.UnmarshalException: error unmarshalling arguments; nested exception is:
                   java.lang.ClassNotFoundException: weblogic.management.interop.WebLogicObjectName: This error could indicate that a component was deployed on a cluster member but not other members of that cluster. Make sure that any component deployed on a server that is part of a cluster is also deployed on all other members of that cluster
                   at weblogic.rjvm.ResponseImpl.unmarshalReturn(ResponseImpl.java:191)
                   at weblogic.rmi.internal.BasicRemoteRef.invoke(BasicRemoteRef.java:155)
                   ... 12 more
              Caused by: java.lang.ClassNotFoundException: weblogic.management.interop.WebLogicObjectName: This error could indicate that a component was deployed on a cluster member but not other members of that cluster. Make sure that any component deployed on a server that is part of a cluster is also deployed on all other members of that cluster
                   at weblogic.j2ee.ApplicationManager.loadClass(ApplicationManager.java:344)
                   at weblogic.j2ee.ApplicationManager.loadClass(ApplicationManager.java:258)
                   at weblogic.j2ee.ApplicationManager.loadClass(ApplicationManager.java:253)
                   at weblogic.rjvm.MsgAbbrevInputStream.resolveClass(MsgAbbrevInputStream.java:327)
                   at weblogic.common.internal.ChunkedObjectInputStream$NestedObjectInputStream.resolveClass(ChunkedObjectInputStream.java:316)
                   at java.io.ObjectInputStream.readNonProxyDesc(Unknown Source)
                   at java.io.ObjectInputStream.readClassDesc(Unknown Source)
                   at java.io.ObjectInputStream.readOrdinaryObject(Unknown Source)
                   at java.io.ObjectInputStream.readObject0(Unknown Source)
                   at java.io.ObjectInputStream.readObject(Unknown Source)
                   at weblogic.common.internal.ChunkedObjectInputStream.readObject(ChunkedObjectInputStream.java:120)
                   at weblogic.rjvm.MsgAbbrevInputStream.readObject(MsgAbbrevInputStream.java:120)
                   at weblogic.management.internal.MBeanHomeImpl_WLSkel.invoke(Unknown Source)
                   at weblogic.rmi.internal.BasicServerRef.invoke(BasicServerRef.java:477)
                   at weblogic.rmi.internal.BasicServerRef$1.run(BasicServerRef.java:420)
                   at weblogic.security.acl.internal.AuthenticatedSubject.doAs(AuthenticatedSubject.java:363)
                   at weblogic.security.service.SecurityManager.runAs(SecurityManager.java:147)
                   at weblogic.rmi.internal.BasicServerRef.handleRequest(BasicServerRef.java:415)
                   at weblogic.rmi.internal.BasicExecuteRequest.execute(BasicExecuteRequest.java:30)
                   at weblogic.kernel.ExecuteThread.execute(ExecuteThread.java:219)
                   at weblogic.kernel.ExecuteThread.run(ExecuteThread.java:178)
                   at java.lang.Thread.startThreadFromVM(Unknown Source)
              2005-08-04 08:25:41,773 [Timer-7] DEBUG hermes.HermesWatchManager - closing Hermes WebLogic
              2005-08-04 08:25:41,783 [Timer-7] DEBUG hermes.impl.jms.ThreadLocalSessionManager - all sessions closed, closing Connection

  • Active Sessions problem for JMX client

    Hello,
    I've written my own JMX client to pull data from MBean Server using instruction from Connecting to an MBeanServer - SAP NetWeaver Composition Environment Library - SAP Library. Client is connecting to server every 5 minutes. After some time I noticed that Active Session Count is rising. Also when checking Login Sessions in VA I see multiple sessions for username provided in JMX client configuration.
    My understanding of this situation is that I initiate new session using RMI-P4 connector, but never terminate it which leaves opened sessions on the server.
    My question is, is ther a way to close connection to MBeanServer?
    Best regards,
    wojtek

    Good morning Jeremy,
    The URL works fine.  The only thing in the NetWeaver log is the NullPointerException. 
    Hmm...  Just brainstorming here.
    The id I am using is the one having the problems with NetWeaver not filling in all the MII session variables.  I suppose there could be a null pointer because of one of those variables being null...  I have an open OSS message about that issue.  Although that would affect the URL too.  
    Would it be a good idea to have the Basis guy check the logging level in NetWeaver?  seems I only see error and fatal.
    Thanks for the suggestion.
    --Amy Smith
    --Haworth

  • JMX version 1.0 & 1.2 conflict.

    I have a JMX client program running in JDK1.5 and the JMX server in 1.4 JDK and weblogic8.1.
    When I am trying to connect it is throwing the exception :
    Exception caught: java.lang.NullPointerException
    at weblogic.rjvm.BasicOutboundRequest.sendReceive(BasicOutboundRequest.java:108)
    at weblogic.rmi.internal.BasicRemoteRef.invoke(BasicRemoteRef.java:164)
    at weblogic.management.internal.RemoteMBeanServerImpl_815_WLStub.queryNames(Unknown Source)
    at JMXTEST.main(JMXTEST.java:41)
    Caused by: java.lang.NullPointerException
    This I understood, because of JMX version conflict 1.0 and 1.2, I tried setting System.setProperty("jmx.serial.form", "1.0") ;, but It didn�t worked.
    Problem here is, the classes are present in rt.jar and weblogic.jar, but having different versions of JMX. The program is getting the classes from rt.jar is creating the issue. Is there any way to specify in the program, get these classes from weblogic.jar and not from rt.jar
    OR is there any solution to this issue.
    Code :
    MBeanServer mbs = (RemoteMBeanServer) home.getMBeanServer();
    Set mbeans = mbs.queryNames(objName, null);
    Your help is greatly appreciated. Thanks in advance.
    Regards,
    Shyam

    Hmm..
    If the two JMX versions are incompatible,. then a SerializationException is thrown. I had faced a similar problem working with Websphere 5.x and JMX 1.2.. The only way you can go around this is to use a client that is built on JMX 1.0, or change your server side JMX version. Personally i think you should just use a JMX 1.0 client.
    The reason why both are incompatible is that the serviceVersionUIDs that are difined in the JMX 1.0 classes do not match the ones in JMX 1.2. There is not way out of this. :( You see, many JMX Classes such as ObjectName, etc are sent to - from the client and the server so they need to be serialized, deserialzed.
    Your NullPointerException may be due to something else. However i suspect that once you resolve NullPointerException, you will eventually bump into serialization / deserialization problems.

  • Possible to connect between JMX 1.0 and JMX 1.2

    Hi,
    We have a module that needs to send notifications. This java module is running in a J2EE Weblogic 8.1 webapp server. Weblogic support JMX 1.0.
    Outside the J2EE server in another JVM we have the JMXAgent and the MBeans running as a regular server ( in J2SE). This server uses JMX 1.2 with the remote API ( not in JMX 1.0).
    Both use the jdk1.4.x version of java.
    The problem we have is to send the notification ( from weblogic) to the MBean since they support different JMX versions.
    Any hints?
    cheers,
    //mike

    Hi,
    You will need to use a proprietary connector to exchange notifications between a JMX 1.0 application and a JMX 1.2 application, because JMX Remote API connector servers will
    not work on top of JMX 1.0.
    If weblogic 8 implements such a proprietary connector, you might be able to use its server part in your weblogic application, and its client part from within a client JVM that contains JMX 1.2.
    http://e-docs.bea.com/wls/docs81/index.html
    You might also try to use other proprietary connectors, such as those offered by the
    Java DMK - for instance you could start a Java DMK 4.2 connector server (JDMK 4.2 is
    based on JMX 1.0) in your weblogic application, and uses Java DMK 5.1/OpenDMK
    in your JMX 1.2 client (Java DMK 4.2 and Java DMK 5.1/OpenDMK are inter-operable).
    http://java.sun.com/products/jdmk/release.html#42
    http://java.sun.com/products/jdmk
    https://opendmk.dev.java.net/
    Hope this helps,
    -- daniel
    http://blogs.sun.com/jmxetc

  • Is this what JMX is for?

    I have been reading a little into JMX but I am not sure if it is what I am looking for. What I am looking to do is have a Server in my network and a set of clients running on different PC's within my network. I want to monitor things the client apps are doing and send the data off the my server which will do something with the collected data (ie write to file or DB).
    is JMX the right type of solution for something like this?

    JConsole is an example (perhaps the best known and most commonly used example) of a JMX Client that is capable of remotely accessing instrumented JMX MBeans hosted on a remote JMX server. You are correct that you'd essentially replace JConsole with your own client code for accessing these JMX MBeans. A thorough introduction to how to do this is available in the [JMX Tutorial|http://java.sun.com/javase/6/docs/technotes/guides/jmx/tutorial/tutorialTOC.html] under the section [JMX Connectors|http://java.sun.com/javase/6/docs/technotes/guides/jmx/tutorial/connectors.html#wp5529]. Wherever you see reference to an "RMI Client" or "JMX Client," you can think of it as being the same role JConsole plays but with your own code. A resource that I found particularly useful when learning about developing my own JMX Client is the [Java Tutorial - JMX: Remote Management|http://java.sun.com/docs/books/tutorial/jmx/remote/index.html] lesson. While the section [Creating a Custom JMX Client|http://java.sun.com/docs/books/tutorial/jmx/remote/custom.html] is what you're specifically looking for, I recommend reading the entire "Remote Management" lesson because it is fairly small, very straight-forward, and gives a complete picture. You'll likely want to download the associated code to get an overall picture of how it all goes together.

  • Read the version of deployed EAR modules via JMX (WLS 10.0)

    Hello
    We are deploying some EAR components into a WLS 10.0. Now we want to monitor the version number of the deployed EARs via a JMX client. The version number is provided in the manifest of the EAR (Implementation-Version).
    I read through some JMX related documents by BEA and searched the web, but I could not find any information on how to read the version.
    Does anybody know how to do that or where to look in order to get the version numbers of the deployed components via JMX? Do I have to write my own MBean offering this version attribute?
    Every hint is welcomed!
    Thanks
    Toni
    Edited by: user10451156 on Oct 21, 2008 10:53 AM

    Hi, Toni.
    The input must be a externally provided version number, if you have no access to write manifest entries, or to the deployment process.
    If this version number is already set in the ear file, you can use this process inside your custom mbean (an elaboration of Benoit's suggestion)
    1 look up the application component from JMX
    * http://edocs.bea.com/wls/docs100/wlsmbeanref/mbeans/AppDeploymentMBean.html
    2 obtain the path of the ear file
    3 open a JarURLConnection to this ear
    * http://java.sun.com/javase/6/docs/api/java/net/JarURLConnection.html
    4 read the implementation version, which was already provided.
    * http://java.sun.com/javase/6/docs/api/java/util/jar/Attributes.Name.html#IMPLEMENTATION_VERSION
    Sadly, this won't pop-up on the WLS console, you'd have to write or use a custom extension to do that.
    * https://wls-console-extensions.projects.dev2dev.bea.com/
    I hope this helps.
    -Adrian

  • Getting jndi name for jms queue via jmx?

    All,
    I'm trying to write a utility that will do a 9.2-style message export against 8.1 I think I have it all figured out except that I don't know how to get the jndi name of a queue or topic via jmx. I'm using jmx to find queues and subscriptions that have messages waiting, then trying to connect to them to siphon off the messages. I can't just browse jndi for any queue I find because I also want to access the durable subscriptions, for which I need the client and subscriptions ids. Is there a way to map from the jms destination runtime mbean to the jndi name? The getDestination() method isn't supported (throws an exception.)
    thanks

    Hi John,
    You can get destination JNDI names by looking up their value in the JMX configuration mbeans rather than the runtime mbeans. The client-id and subscription-name are available on the JMSDurableSubscriberRuntime mbean.
    Regards,
    Tom

  • Memory leak with t3 jmx connection

    Hello all,
    I've created a monitoring plugin for WebLogic 9.x / 10.x servers which polls a target server at regular interval. Each time the plugin needs the performance data, it creates a new JMXConnector and get the associated MBeanServerConnection. Everything works fine, but after a significant number of requests, the client process runs out of memory. When analayzing the client heapdump, I can see there is a lot of instances of the following classes:
    weblogic.corba.client.security.ClientSecurityContext
    javax.security.auth.Subject
    All these instances are retained in a unique HashMap. It doesn't look like there is a problem in my code as all the objects I'm creating are well garbage collected (no JMXConnector or MBeanServerConnection instances).
    I've tried almost everything to get rid off this issue (using t3, using iiop, changing the parameters used to create the connector), I tried to set the jmx.remote.x.client.connection.check.period to 0 but nothing changes. The current workaround is to cache the JMXConnector instances for each server, but this is not fully satisfying (connection loss if target server restarts, etc...).
    Did someone experiment the same kind of issue ? I provide below a code snippet of the connection factory I'm using (I put both wljmxclient.jar and wlclient.jar in the client classpath):
    private static final String JNDI_NAME = "/jndi/weblogic.management.mbeanservers.runtime";
    public static MBeanServerConnection getInstance(Map<String,String> params) {
         Map<String,String> map = new HashMap<String,String>();
         JMXServiceURL url = null;
         JMXConnector connector = null;
         MBeanServerConnection connection = null;       
         map.put(JMXConnectorFactory.PROTOCOL_PROVIDER_PACKAGES, "weblogic.management.remote");
         map.put("java.naming.security.principal", params.get("username"));
         map.put("java.naming.security.credentials", params.get("password"));
         try {
              url = new JMXServiceURL("service:jmx:t3://" + params.get("hostname") + ":" + params.get("port") + JNDI_NAME);
              connector = JMXConnectorFactory.connect(url, map);
              connection = connector.getMBeanServerConnection();
         } catch (Exception e) {
              throw new RuntimeException("Unable to get MBeanServerConnection for JMXServiceURL " + url.toString());
         return connection;
    }Thanks for helping.
    Yann

    Hello KK, thanks for your answer.
    I also thought to the cache possibility, but it's not as straightforward to manage (target server restart, keepalive, etc...). A call to connector.close() does not change anything, the objects I'm creating are well garbage collected. The only solution I've found to get rid of this memory leak is to perform an anonymous iiop lookup, i.e. creating first a iiop user (group Monitors), set default iiop user and password for each target server, and changing the factory code to:
    private static final String JNDI_NAME = "/weblogic.management.mbeanservers.runtime";
    public static MBeanServerConnection getInstance(Map<String,String> params) {
         Map<String,String> map = new HashMap<String,String>();
         JMXServiceURL url = null;
         JMXConnector connector = null;
         MBeanServerConnection connection = null;
         map.put("jmx.remote.x.client.connection.check.period", "0");
         try {
              url = new JMXServiceURL("service:jmx:rmi:///jndi/iiop://" + params.get("hostname") + ":" + params.get("port") + JNDI_NAME);
              connector = JMXConnectorFactory.connect(url, map);
              connection = connector.getMBeanServerConnection();
         } catch (Exception e) {
              throw new RuntimeException("Unable to get MBeanServerConnection for JMXServiceURL " + url.toString());
         return connection;
    }I don't like this solution as this implies to change the target server configuration plus it has an impact on security.

  • What JMX is in reality ?

    Hi,
    I'm working on a very complex software project design. For my project, a monitoring tool will be crucial ; that's why I'm trying to understand what JMX is. But, I did not find any document explaining what JMX is in reality.
    I have three crucial questions :
    1) What JMX is in reality ? Do someone know concrete and real situations where JMX has been used and How ?
    2) What really is the difference between MBeans and EJBs ?
    3) Could I use JMX wnhen in my architecture when there is 50% J2EE and 50% .NET ?
    Thanks in advance for any helpful feedback.

    1) What JMX is in reality ? JMX is a technology that lets you implement management interfaces for
    Java application.
    The Management Interface is composed of named objects - called MBeans
    (Management Beans). MBeans are registered with a name in an MBeanServer.
    The content of the MBeanServer can then be exposed through various
    protocols, implemented by protocol connectors, or protocol adaptors.
    A protocol connector (e.g. the JMX RMI Connector) exposes the MBeans
    as they are - so a remote client sees the same model than a local client.
    A protocol adaptor (e.g. an SNMP adaptor) performs (or provides hooks to
    let you perform) a model mediation - to adapt the model to what a client
    of that protocol (e.g. SNMP Manager) would expect to see.
    Today there is one standard connector defined for JMX - which is the
    RMI Connector, and comes in two flavors: RMI/JRMP and RMI/IIOP.
    There's also a JMX WebServices Connector in the making - which is being
    defined by JSR 262.
    http://www.jcp.org/en/jsr/detail?id=262
    https://ws-jmx-connector.dev.java.net
    There are also a number of non-standard connectors, either free or commercial
    that have been implemented by the community.
    More on JMX:
    http://blogs.sun.com/jmxetc/entry/looking_for_jmx_overview_examples
    Do someone know concrete
    and real situations where JMX has been used and How
    ?You will find more on tools/products using JMX on the JMX Home Page:
    http://java.sun.com/products/JavaManagement/index.jsp
    Among other things, JMX is used today to manage the JVM itself. It is also
    widely used in the management of application servers.
    See:
    http://java.sun.com/j2se/1.5.0/docs/tooldocs/index.html#manage
    http://java.sun.com/developer/technicalArticles/J2SE/jconsole.html
    http://weblogs.java.net/blog/mandychung
    Understanding JMX Technology
    http://java.sun.com/developer/EJTechTips/2005/tt0222.html#1
    Getting Started with Java Management Extensions (JMX): Developing Management and Monitoring Solutions
    http://java.sun.com/developer/technicalArticles/J2SE/jmx.html
    Managing and Monitoring Web Services in Project GlassFish
    http://developers.sun.com/prodtech/appserver/reference/techart/ws_mgmt.html
    Using Custom MBeans to Extend the GlassFish Administration System
    http://java.sun.com/developer/EJTechTips/2006/tt0327.html#2
    2) What really is the difference between MBeans and
    EJBs ?An EJB lives in an Application Server container. It usually implement business
    logic. An MBean lives in an MBeanServer, and usually implement management
    logic (configuration, monitoring, etc)...
    3) Could I use JMX wnhen in my architecture when
    there is 50% J2EE and 50% .NET ?I am not a .NET user so I'm afraid I can't provide much advice here.
    It may depends on the means you have to reach out for your .NET resources
    from within your Java/JMX application. If you know how to get at your .NET
    resources from Java, then it should be easy to expose them through JMX.
    hope this helps,
    -- daniel
    JMX, SNMP, Java, etc...
    http://blogs.sun.com/jmxetc
    Thanks in advance for any helpful feedback.Message was edited by:
    dfuchs: see also http://blogs.sun.com/jmxetc/entry/what_is_jmx

  • JMX programmatically control  memory usage

    Hi,
    I would like a server to programmatically receive updates concerning the memory usage of its clients. JMX seems to be able to do this. I have not found an example on how to do this programmatically.
    Is there an easier way to do this other than using JMX? If not where can i start and learn how to do this? I have very little time and there is a sea of JMX tutorials,articles and code sample -unfortunately not relevant to what i need to do.
    Can somebody at least guide me to some resources specific to my purpose?
    Thanks

    String jmxUrl = String.format("service:jmx:rmi:///jndi/rmi://%s:%s/jmxrmi", server, port);
    MBeanServerConnection con = JMXConnectorFactory.connect(new JMXServiceURL(jmxUrl), null).getMBeanServerConnection();
    List<MemoryPoolMXBean> pools = new ArrayList<MemoryPoolMXBean>();
    Set<ObjectInstance> beans = null;
    try {
         beans = con.queryMBeans(new ObjectName("java.lang:type=MemoryPool,name=*"), null);
    } catch (MalformedObjectNameException e) {
         e.printStackTrace();
    for (ObjectInstance bean : beans) {
         pools.add(ManagementFactory.newPlatformMXBeanProxy(con, bean.getObjectName().toString(), MemoryPoolMXBean.class));
    }Message was edited by:
    octoberdaniel
    Message was edited by:
    octoberdaniel

  • JMX/getHostByAddr

    I ran into an issue where I have a Java JMX service running on a Linux
    host that is taking 23 seconds to establish a TCP connection with a
    client. I took a thread dump (see below) and discovered that the time
    is spent by java doing a reverse DNS look-up on the inbound connection
    attempt. We have disabled the NSCD (Name Service Cache Daemon) on our
    host so the DNS delay is understandable.
    Question: Why does java even care about resolving the hostname? JMX
    is built on top of TCP. TCP does not require DNS to establish
    connectivity so why does Java insist on obtaining a hostname for the
    client's IP on an inbound connection?
    at java.net.Inet4AddressImpl.getHostByAddr(Native Method) ????
    "Thread-5" prio=10 tid=0x00002aaacc084800 nid=0x74b5 runnable
    [0x0000000042ed7000]
    java.lang.Thread.State: RUNNABLE
    at java.net.Inet4AddressImpl.getHostByAddr(Native Method)
    at java.net.InetAddress$1.getHostByAddr(Unknown Source)
    at java.net.InetAddress.getHostFromNameService(Unknown Source)
    at java.net.InetAddress.getHostName(Unknown Source)
    at java.net.InetAddress.getHostName(Unknown Source)
    at
    com.sun.jmx.remote.socket.SocketConnection.<init>(SocketConnection.java:
    60)
    at
    com.sun.jmx.remote.socket.SocketConnectionServer.accept(SocketConnectionServer.java:
    173)
    at
    com.sun.jmx.remote.generic.SynchroMessageConnectionServerImpl.accept(SynchroMessageConnectionServerImpl.java:
    47)
    at javax.management.remote.generic.GenericConnectorServer
    $Receiver.run(GenericConnectorServer.java:334)

    JMX RMI SSL server connect back to JMX RMI SSL client. It does? Why?
    What SSL properties(keystore/truststore/other) needed for JMX RMI SSL bi-directional communicationSee the JSSE Reference Guide. But unless you're talking about a JMX callback, there is no need for a reverse connection. TCP/IP is already bidirectional.

  • Creating JMX interface-script

    Hi to all,
    I want to create an interface script/programm, so as to be able to query JMX enabled applications and retrieve the results.
    I know very little about Java (unfortunately), while I am very strong in perl.
    How to do it ?
    Is there something ready?
    What do you suggest ?
    Kind regards,
    alexk

    Hello,
    if you plan to develop an application to interact with a remote application instrumented with JMX you could perhaps have a look to the Web Services Connector for JMX (downloadable from http://ws-jmx-connector.dev.java.net/). It (also) allows non Java application to interact with JMX/Java application. The interaction is done thanks to SOAP messages conveying WS-Management requests.
    Some WS-Management libraries can help you develop such interaction VBScript (Microsoft WinRM) and Perl (VMWare ViPerl).
    This document describes JMX interoperability with non Java application : http://java.sun.com/javase/technologies/core/mntr-mgmt/javamanagement/JSR262_Interop.pdf
    Another alternative could be to use the REST access to JMX (an OpenDMK contribution). It only allows you to retrieve MBean names and attributes. Setting attributes, invoking operations and notification handling have not yet been developed : https://opendmk.dev.java.net/contributions/index.html
    Regards.
    Jean-Francois
    http://blogs.sun.com/jmxnetbeans/

Maybe you are looking for

  • Error while calling a workflow process from a JSP

    Hi, I have a workflow program which is havign a process, which in turn calls 2 other processes. Below given is the procedure which i am using to call the main process. =========================================================== CREATE OR REPLACE PROC

  • BREAK not working in SQL+ for windows. Works in SQL+ in DOS

    I'm writing a simple query in SQL+ SELECT table_name, column_name FROM user_tab_columns WHERE table_name like 'MYTAB%'I first set BREAK ON table_name then I run my query. I expect the table name to be shown once, per table, not once per column. If I

  • Defaults in InDesign 5.5

    When placing an image, how do I set my default so the image will be placed at 100% in InDesign 5.5?

  • X300 w/AT&T wireless--GPS?

    Greetings.  I have an X300 with the AT&T Sierra HSDPA adapter.  I found the Moderator's link to the GPS download file on the FTP site, but it will not install.  The box is billed as GPS-capable with the AT&T card--what am I missing, folks? Thanks, --

  • Change Stock Text from Delete Button

    Does anyone know how to change the text that comes up when a user swipes to delete a row in a tableView? I would like to make it say "Recalculate" not "Delete"