java类javax.management.MBeanServerConnection的实例源码

JMXAccessorQueryTask.java 文件源码 项目:apache-tomcat-7.0.73-with-comment 阅读 15 收藏 0 点赞 0 评论 0
/**
 * Call Mbean server for some mbeans with same domain, attributes.
 *  with <em>attributebinding=true</em> you can save all attributes from all found objects
 * as your ant properties
 * @param jmxServerConnection
 * @param qry
 * @return The query result
 */
protected String jmxQuery(MBeanServerConnection jmxServerConnection,
        String qry) {
    String isError = null;
    Set<ObjectName> names = null;
    String resultproperty = getResultproperty();
    try {
        names = jmxServerConnection.queryNames(new ObjectName(qry), null);
        if (resultproperty != null) {
            setProperty(resultproperty + ".Length",Integer.toString(names.size()));
        }
    } catch (Exception e) {
        if (isEcho())
            handleErrorOutput(e.getMessage());
        return "Can't query mbeans " + qry;
    }

    if (resultproperty != null) {
        Iterator<ObjectName> it = names.iterator();
        int oindex = 0;
        String pname = null;
        while (it.hasNext()) {
            ObjectName oname = it.next();
            pname = resultproperty + "." + Integer.toString(oindex) + ".";
            oindex++;
                setProperty(pname + "Name", oname.toString());
                if (isAttributebinding()) {
                    bindAttributes(jmxServerConnection, resultproperty, pname, oname);

                }
            }
    }
    return isError;
}
JMXAccessorTask.java 文件源码 项目:lazycat 阅读 26 收藏 0 点赞 0 评论 0
/**
 * Execute the specified command. This logic only performs the common
 * attribute validation required by all subclasses; it does not perform any
 * functional logic directly.
 * 
 * @exception BuildException
 *                if a validation error occurs
 */
@Override
public void execute() throws BuildException {
    if (testIfCondition() && testUnlessCondition()) {
        try {
            String error = null;

            MBeanServerConnection jmxServerConnection = getJMXConnection();
            error = jmxExecute(jmxServerConnection);
            if (error != null && isFailOnError()) {
                // exception should be thrown only if failOnError == true
                // or error line will be logged twice
                throw new BuildException(error);
            }
        } catch (Exception e) {
            if (isFailOnError()) {
                throw new BuildException(e);
            } else {
                handleErrorOutput(e.getMessage());
            }
        } finally {
            closeRedirector();
        }
    }
}
JmxNetworkManagerTest.java 文件源码 项目:Byter 阅读 26 收藏 0 点赞 0 评论 0
/**
 * Test if there are Controller and NetworkManager registered to MBeanServer
 */
@Test
public void testRegisteredObjects() throws IOException {
    //connect to server
    final JMXConnector connection = JmxConnectionHelper.buildJmxMPConnector(JMXSERVERIP,serverObj.getConnectorSystemPort());
    //get MBeanServerConnection
    MBeanServerConnection mbsConnection = JmxServerHelper.getMBeanServer(connection);
    //do test
    Assert.assertNotSame(0,mbsConnection.getMBeanCount()); //check if there are beans registered
    //look for all standard mbeans
    List<ObjectName> standardMbeans = JmxServerHelper.findObjectNames(mbsConnection,"de.b4sh.byter");
    Assert.assertNotEquals(0,standardMbeans.size());
    //see if there is a network manager registered to
    ObjectName networkManager = null;
    for(ObjectName on: standardMbeans){
        if(on.getCanonicalName().contains("NetworkManager")){
            networkManager = on;
        }
    }
    Assert.assertNotNull(networkManager);
}
RMIConnector.java 文件源码 项目:openjdk-jdk10 阅读 23 收藏 0 点赞 0 评论 0
private void initTransients() {
    rmbscMap = new WeakHashMap<Subject, WeakReference<MBeanServerConnection>>();
    connected = false;
    terminated = false;

    connectionBroadcaster = new NotificationBroadcasterSupport();
}
AMXGlassfish.java 文件源码 项目:openjdk-jdk10 阅读 39 收藏 0 点赞 0 评论 0
/**
    Listen for the registration of the {@link BootAMXMBean}.
    Listening starts automatically.  See {@link AMXBooter#BootAMXCallback}.
 */
public <T extends MBeanListener.Callback> MBeanListener<T> listenForBootAMX(
    final MBeanServerConnection server,
    final T callback)
{
    final MBeanListener<T> listener = new MBeanListener<T>( server, getBootAMXMBeanObjectName(), callback);
    listener.startListening();
    return listener;
}
ReaderJmxTest.java 文件源码 项目:Byter 阅读 17 收藏 0 点赞 0 评论 0
@Test
public void t4testStartMultipleReader() throws IOException {
    //create a test case file
    TestCaseHelper.createTestCaseFile(testSpaceDir,"test-multi-file.test",10000,100);
    //connect to client
    final JMXConnector connection = getConnection();
    final MBeanServerConnection mbs = getMbeanServer(connection);
    final ObjectName readerObject = getReaderObjectName(mbs);
    //set params
    JmxClientReaderHelper.setFilePath(mbs,readerObject,testSpaceDir);
    JmxClientReaderHelper.setFileName(mbs,readerObject,"test-multi-file.test");
    JmxClientReaderHelper.setChunkSize(mbs,readerObject,16000);
    JmxClientReaderHelper.setTakeMeasurements(mbs,readerObject,false);
    JmxClientReaderHelper.setMeasurementVolume(mbs,readerObject,-1);
    JmxClientReaderHelper.setReaderType(mbs,readerObject,ReaderType.rafr.getType());
    JmxClientReaderHelper.startMultipleReader(mbs,readerObject,5);
    ThreadManager.nap(2500);//let the reader read a bit :)
    Assert.assertEquals(5,JmxClientReaderHelper.getReaderPoolSize(mbs,readerObject));
    final String response = JmxClientReaderHelper.stopServicePool(mbs,readerObject);
    log.log(Level.INFO, response);
}
OldMBeanServerTest.java 文件源码 项目:jdk8u-jdk 阅读 17 收藏 0 点赞 0 评论 0
private static void printAttrs(
        MBeanServerConnection mbsc1, Class<? extends Exception> expectX)
throws Exception {
    Set<ObjectName> names = mbsc1.queryNames(null, null);
    for (ObjectName name : names) {
        System.out.println(name + ":");
        MBeanInfo mbi = mbsc1.getMBeanInfo(name);
        MBeanAttributeInfo[] mbais = mbi.getAttributes();
        for (MBeanAttributeInfo mbai : mbais) {
            String attr = mbai.getName();
            Object value;
            try {
                value = mbsc1.getAttribute(name, attr);
            } catch (Exception e) {
                if (expectX != null && expectX.isInstance(e))
                    value = "<" + e + ">";
                else
                    throw e;
            }
            String s = "  " + attr + " = " + value;
            if (s.length() > 80)
                s = s.substring(0, 77) + "...";
            System.out.println(s);
        }
    }
}
JMXAccessorGetTask.java 文件源码 项目:lams 阅读 21 收藏 0 点赞 0 评论 0
/**
 * @param jmxServerConnection
 * @param name
 * @return The value of the given named attribute
 * @throws Exception
 */
protected String jmxGet(MBeanServerConnection jmxServerConnection,String name) throws Exception {
    String error = null;
    if(isEcho()) {
        handleOutput("MBean " + name + " get attribute " + attribute );
    }
    Object result = jmxServerConnection.getAttribute(
            new ObjectName(name), attribute);
    if (result != null) {
        echoResult(attribute,result);
        createProperty(result);
    } else
        error = "Attribute " + attribute + " is empty";
    return error;
}
MXBeanInteropTest1.java 文件源码 项目:jdk8u-jdk 阅读 34 收藏 0 点赞 0 评论 0
private final int doCompilationMXBeanTest(MBeanServerConnection mbsc) {
    int errorCount = 0 ;
    System.out.println("---- CompilationMXBean") ;

    try {
        ObjectName compilationName =
                new ObjectName(ManagementFactory.COMPILATION_MXBEAN_NAME);

        if ( mbsc.isRegistered(compilationName) ) {
            MBeanInfo mbInfo = mbsc.getMBeanInfo(compilationName);
            errorCount += checkNonEmpty(mbInfo);
            System.out.println("getMBeanInfo\t\t" + mbInfo);
            CompilationMXBean compilation = null ;

            compilation =
                    JMX.newMXBeanProxy(mbsc,
                    compilationName,
                    CompilationMXBean.class) ;
            System.out.println("getName\t\t"
                    + compilation.getName());
            boolean supported =
                    compilation.isCompilationTimeMonitoringSupported() ;
            System.out.println("isCompilationTimeMonitoringSupported\t\t"
                    + supported);

            if ( supported ) {
                System.out.println("getTotalCompilationTime\t\t"
                        + compilation.getTotalCompilationTime());
            }
        }

        System.out.println("---- OK\n") ;
    } catch (Exception e) {
        Utils.printThrowable(e, true) ;
        errorCount++ ;
        System.out.println("---- ERROR\n") ;
    }

    return errorCount ;
}
JMXAccessorTask.java 文件源码 项目:lams 阅读 26 收藏 0 点赞 0 评论 0
/**
 * Execute the specified command. This logic only performs the common
 * attribute validation required by all subclasses; it does not perform any
 * functional logic directly.
 * 
 * @exception BuildException
 *                if a validation error occurs
 */
public void execute() throws BuildException {
    if (testIfCondition() && testUnlessCondition()) {
        try {
            String error = null;

            MBeanServerConnection jmxServerConnection = getJMXConnection();
            error = jmxExecute(jmxServerConnection);
            if (error != null && isFailOnError()) {
                // exception should be thrown only if failOnError == true
                // or error line will be logged twice
                throw new BuildException(error);
            }
        } catch (Throwable t) {
            if (isFailOnError()) {
                throw new BuildException(t);
            } else {
                handleErrorOutput(t.getMessage());
            }
        } finally {
            closeRedirector();
        }
    }
}


问题


面经


文章

微信
公众号

扫码关注公众号