Search in sources :

Example 31 with InstanceNotFoundException

use of javax.management.InstanceNotFoundException in project geode by apache.

the class JMXDataUpdater method updateClusterStatement.

private void updateClusterStatement(ObjectName mbeanName) throws IOException {
    try {
        AttributeList attributeList = this.mbs.getAttributes(mbeanName, PulseConstants.STATEMENT_MBEAN_ATTRIBUTES);
        // retrieve the full path of the region
        String statementDefinition = mbeanName.getKeyProperty("name");
        if (isQuoted(statementDefinition)) {
            statementDefinition = ObjectName.unquote(statementDefinition);
        }
        Cluster.Statement statement = cluster.getClusterStatements().get(statementDefinition);
        if (null == statement) {
            statement = new Cluster.Statement();
            statement.setQueryDefinition(statementDefinition);
        }
        for (int i = 0; i < attributeList.size(); i++) {
            Attribute attribute = (Attribute) attributeList.get(i);
            String name = attribute.getName();
            switch(name) {
                case PulseConstants.MBEAN_ATTRIBUTE_NUMTIMESCOMPILED:
                    statement.setNumTimesCompiled(getLongAttribute(attribute.getValue(), attribute.getName()));
                    break;
                case PulseConstants.MBEAN_ATTRIBUTE_NUMEXECUTION:
                    statement.setNumExecution(getLongAttribute(attribute.getValue(), attribute.getName()));
                    break;
                case PulseConstants.MBEAN_ATTRIBUTE_NUMEXECUTIONSINPROGRESS:
                    statement.setNumExecutionsInProgress(getLongAttribute(attribute.getValue(), attribute.getName()));
                    break;
                case PulseConstants.MBEAN_ATTRIBUTE_NUMTIMESGLOBALINDEXLOOKUP:
                    statement.setNumTimesGlobalIndexLookup(getLongAttribute(attribute.getValue(), attribute.getName()));
                    break;
                case PulseConstants.MBEAN_ATTRIBUTE_NUMROWSMODIFIED:
                    statement.setNumRowsModified(getLongAttribute(attribute.getValue(), attribute.getName()));
                    break;
                case PulseConstants.MBEAN_ATTRIBUTE_PARSETIME:
                    statement.setParseTime(getLongAttribute(attribute.getValue(), attribute.getName()));
                    break;
                case PulseConstants.MBEAN_ATTRIBUTE_BINDTIME:
                    statement.setBindTime(getLongAttribute(attribute.getValue(), attribute.getName()));
                    break;
                case PulseConstants.MBEAN_ATTRIBUTE_OPTIMIZETIME:
                    statement.setOptimizeTime(getLongAttribute(attribute.getValue(), attribute.getName()));
                    break;
                case PulseConstants.MBEAN_ATTRIBUTE_ROUTINGINFOTIME:
                    statement.setRoutingInfoTime(getLongAttribute(attribute.getValue(), attribute.getName()));
                    break;
                case PulseConstants.MBEAN_ATTRIBUTE_GENERATETIME:
                    statement.setGenerateTime(getLongAttribute(attribute.getValue(), attribute.getName()));
                    break;
                case PulseConstants.MBEAN_ATTRIBUTE_TOTALCOMPILATIONTIME:
                    statement.setTotalCompilationTime(getLongAttribute(attribute.getValue(), attribute.getName()));
                    break;
                case PulseConstants.MBEAN_ATTRIBUTE_EXECUTIONTIME:
                    statement.setExecutionTime(getLongAttribute(attribute.getValue(), attribute.getName()));
                    break;
                case PulseConstants.MBEAN_ATTRIBUTE_PROJECTIONTIME:
                    statement.setProjectionTime(getLongAttribute(attribute.getValue(), attribute.getName()));
                    break;
                case PulseConstants.MBEAN_ATTRIBUTE_TOTALEXECUTIONTIME:
                    statement.setTotalExecutionTime(getLongAttribute(attribute.getValue(), attribute.getName()));
                    break;
                case PulseConstants.MBEAN_ATTRIBUTE_ROWSMODIFICATIONTIME:
                    statement.setRowsModificationTime(getLongAttribute(attribute.getValue(), attribute.getName()));
                    break;
                case PulseConstants.MBEAN_ATTRIBUTE_QNNUMROWSSEEN:
                    statement.setqNNumRowsSeen(getLongAttribute(attribute.getValue(), attribute.getName()));
                    break;
                case PulseConstants.MBEAN_ATTRIBUTE_QNMSGSENDTIME:
                    statement.setqNMsgSendTime(getLongAttribute(attribute.getValue(), attribute.getName()));
                    break;
                case PulseConstants.MBEAN_ATTRIBUTE_QNMSGSERTIME:
                    statement.setqNMsgSerTime(getLongAttribute(attribute.getValue(), attribute.getName()));
                    break;
                case PulseConstants.MBEAN_ATTRIBUTE_QNRESPDESERTIME:
                    statement.setqNRespDeSerTime(getLongAttribute(attribute.getValue(), attribute.getName()));
                    break;
            }
        }
        cluster.addClusterStatement(statementDefinition, statement);
    // TODO : to store data for sparklines later
    /*
       * region.getPutsPerSecTrend().add(region.getPutsRate());
       * region.getGetsPerSecTrend().add(region.getGetsRate());
       */
    } catch (InstanceNotFoundException | ReflectionException infe) {
        logger.warn(infe);
    }
}
Also used : ReflectionException(javax.management.ReflectionException) Attribute(javax.management.Attribute) AttributeList(javax.management.AttributeList) InstanceNotFoundException(javax.management.InstanceNotFoundException)

Example 32 with InstanceNotFoundException

use of javax.management.InstanceNotFoundException in project geode by apache.

the class JMXDataUpdater method updateMemberRegion.

/**
   * function used to get attribute values of Member Region and map them to Member vo
   * 
   * @param mbeanName Member Region MBean
   */
private void updateMemberRegion(ObjectName mbeanName) throws IOException {
    try {
        String memberName = mbeanName.getKeyProperty(PulseConstants.MBEAN_KEY_PROPERTY_MEMBER);
        Cluster.Member member = cluster.getMembersHMap().get(memberName);
        // Following attributes are not present in 9.0
        // "Members"
        // "EmptyNodes"
        // "SystemRegionEntryCount"
        // "MemberCount"
        AttributeList attributeList = this.mbs.getAttributes(mbeanName, PulseConstants.REGION_MBEAN_ATTRIBUTES);
        // retrieve the full path of the region
        String regionFullPathKey = null;
        for (int i = 0; i < attributeList.size(); i++) {
            Attribute attribute = (Attribute) attributeList.get(i);
            if (attribute.getName().equals(PulseConstants.MBEAN_ATTRIBUTE_FULLPATH)) {
                regionFullPathKey = getStringAttribute(attribute.getValue(), attribute.getName());
                break;
            }
        }
        // if member does not exists defined for this region then create a member
        if (null == member) {
            member = new Cluster.Member();
            member.setName(memberName);
            cluster.getMembersHMap().put(memberName, member);
        }
        // if region with given path exists then update same else add new region
        Cluster.Region region = member.getMemberRegions().get(regionFullPathKey);
        if (null == region) {
            region = new Cluster.Region();
            member.getMemberRegions().put(regionFullPathKey, region);
            member.setTotalRegionCount(member.getTotalRegionCount() + 1);
        }
        // use already retrieved values
        region.setFullPath(regionFullPathKey);
        // update the existing or new region
        for (int i = 0; i < attributeList.size(); i++) {
            Attribute attribute = (Attribute) attributeList.get(i);
            String name = attribute.getName();
            switch(name) {
                case PulseConstants.MBEAN_ATTRIBUTE_FULLPATH:
                    region.setFullPath(getStringAttribute(attribute.getValue(), attribute.getName()));
                    break;
                case PulseConstants.MBEAN_ATTRIBUTE_DISKREADSRATE:
                    region.setDiskReadsRate(getDoubleAttribute(attribute.getValue(), attribute.getName()));
                    break;
                case PulseConstants.MBEAN_ATTRIBUTE_DISKWRITESRATE:
                    region.setDiskWritesRate(getDoubleAttribute(attribute.getValue(), attribute.getName()));
                    break;
                case PulseConstants.MBEAN_ATTRIBUTE_GETSRATE:
                    region.setGetsRate(getDoubleAttribute(attribute.getValue(), attribute.getName()));
                    break;
                case PulseConstants.MBEAN_ATTRIBUTE_LRUEVICTIONRATE:
                    region.setLruEvictionRate(getDoubleAttribute(attribute.getValue(), attribute.getName()));
                    break;
                case PulseConstants.MBEAN_ATTRIBUTE_PUTSRATE:
                    region.setPutsRate(getDoubleAttribute(attribute.getValue(), attribute.getName()));
                    break;
                case PulseConstants.MBEAN_ATTRIBUTE_REGIONTYPE:
                    region.setRegionType(getStringAttribute(attribute.getValue(), attribute.getName()));
                    break;
                case PulseConstants.MBEAN_ATTRIBUTE_MEMBERCOUNT:
                    region.setMemberCount(getIntegerAttribute(attribute.getValue(), attribute.getName()));
                    break;
                case PulseConstants.MBEAN_ATTRIBUTE_ENTRYSIZE:
                    region.setEntrySize(getLongAttribute(attribute.getValue(), attribute.getName()));
                    break;
                case PulseConstants.MBEAN_ATTRIBUTE_ENTRYCOUNT:
                    region.setSystemRegionEntryCount(getLongAttribute(attribute.getValue(), attribute.getName()));
                    break;
                case PulseConstants.MBEAN_ATTRIBUTE_NAME:
                    region.setName(getStringAttribute(attribute.getValue(), attribute.getName()));
                    break;
                case PulseConstants.MBEAN_ATTRIBUTE_PERSISTENTENABLED:
                    region.setPersistentEnabled(getBooleanAttribute(attribute.getValue(), attribute.getName()));
                    break;
                case PulseConstants.MBEAN_ATTRIBUTE_GATEWAYENABLED:
                    region.setWanEnabled(getBooleanAttribute(attribute.getValue(), attribute.getName()));
                    break;
            }
        }
    /*
       * GemfireXD related code try{// Added for Rolling upgrade changes. Needs to removed once
       * Rolling upgrade handled gracefully CompositeData compositeData = (CompositeData)
       * (this.mbs.invoke(mbeanName, PulseConstants.MBEAN_OPERATION_LISTREGIONATTRIBUTES, null,
       * null));
       * 
       * if (compositeData != null) { if
       * (compositeData.containsKey(PulseConstants.COMPOSITE_DATA_KEY_SCOPE)) {
       * region.setScope((String) compositeData .get(PulseConstants.COMPOSITE_DATA_KEY_SCOPE)); }
       * else if (compositeData .containsKey(PulseConstants.COMPOSITE_DATA_KEY_DISKSTORENAME)) {
       * region.setDiskStoreName((String) compositeData
       * .get(PulseConstants.COMPOSITE_DATA_KEY_DISKSTORENAME)); } else if (compositeData
       * .containsKey(PulseConstants.COMPOSITE_DATA_KEY_DISKSYNCHRONOUS)) {
       * region.setDiskSynchronous((Boolean) compositeData
       * .get(PulseConstants.COMPOSITE_DATA_KEY_DISKSYNCHRONOUS)); } } }catch (MBeanException anfe)
       * { logger.warn(anfe); }catch (javax.management.RuntimeMBeanException anfe) {
       * region.setScope(""); region.setDiskStoreName(""); region.setDiskSynchronous(false);
       * //logger.
       * warning("Some of the Pulse elements are not available currently. There might be a GemFire upgrade going on."
       * ); }
       * 
       * 
       * // Remove deleted regions from member's regions list for (Iterator<String> it =
       * cluster.getDeletedRegions().iterator(); it .hasNext();) { String deletedRegion = it.next();
       * if (member.getMemberRegions().get(deletedRegion) != null) {
       * member.getMemberRegions().remove(deletedRegion); }
       * member.setTotalRegionCount(member.getMemberRegions().size()); }
       */
    } catch (InstanceNotFoundException | ReflectionException infe) {
        logger.warn(infe);
    }
}
Also used : ReflectionException(javax.management.ReflectionException) Attribute(javax.management.Attribute) AttributeList(javax.management.AttributeList) InstanceNotFoundException(javax.management.InstanceNotFoundException)

Example 33 with InstanceNotFoundException

use of javax.management.InstanceNotFoundException in project geode by apache.

the class JMXDataUpdater method updateClusterSystem.

/**
   * function used to get attribute values of Cluster System and map them to cluster vo
   * 
   * @param mbeanName Cluster System MBean
   */
private void updateClusterSystem(ObjectName mbeanName) throws IOException {
    try {
        if (!this.isAddedNotiListner) {
            this.mbs.addNotificationListener(mbeanName, this, null, new Object());
            this.isAddedNotiListner = true;
        }
        String[] serverCnt = (String[]) (this.mbs.invoke(mbeanName, PulseConstants.MBEAN_OPERATION_LISTSERVERS, null, null));
        cluster.setServerCount(serverCnt.length);
        TabularData table = (TabularData) (this.mbs.invoke(mbeanName, PulseConstants.MBEAN_OPERATION_VIEWREMOTECLUSTERSTATUS, null, null));
        Collection<CompositeData> rows = (Collection<CompositeData>) table.values();
        cluster.getWanInformationObject().clear();
        for (CompositeData row : rows) {
            final Object key = row.get("key");
            final Object value = row.get("value");
            cluster.getWanInformationObject().put((String) key, (Boolean) value);
        }
        AttributeList attributeList = this.mbs.getAttributes(mbeanName, PulseConstants.CLUSTER_MBEAN_ATTRIBUTES);
        for (int i = 0; i < attributeList.size(); i++) {
            Attribute attribute = (Attribute) attributeList.get(i);
            String name = attribute.getName();
            switch(name) {
                case PulseConstants.MBEAN_ATTRIBUTE_MEMBERCOUNT:
                    cluster.setMemberCount(getIntegerAttribute(attribute.getValue(), attribute.getName()));
                    break;
                case PulseConstants.MBEAN_ATTRIBUTE_NUMCLIENTS:
                    cluster.setClientConnectionCount(getIntegerAttribute(attribute.getValue(), attribute.getName()));
                    break;
                case PulseConstants.MBEAN_ATTRIBUTE_DISTRIBUTEDSYSTEMID:
                    cluster.setClusterId(getIntegerAttribute(attribute.getValue(), attribute.getName()));
                    break;
                case PulseConstants.MBEAN_ATTRIBUTE_LOCATORCOUNT:
                    cluster.setLocatorCount(getIntegerAttribute(attribute.getValue(), attribute.getName()));
                    break;
                case PulseConstants.MBEAN_ATTRIBUTE_NUMRUNNIGFUNCTION:
                    try {
                        cluster.setRunningFunctionCount(getIntegerAttribute(attribute.getValue(), attribute.getName()));
                    } catch (Exception e) {
                        cluster.setRunningFunctionCount(0);
                        continue;
                    }
                    break;
                case PulseConstants.MBEAN_ATTRIBUTE_REGISTEREDCQCOUNT:
                    cluster.setRegisteredCQCount(getLongAttribute(attribute.getValue(), attribute.getName()));
                    break;
                case PulseConstants.MBEAN_ATTRIBUTE_NUMSUBSCRIPTIONS:
                    cluster.setSubscriptionCount(getIntegerAttribute(attribute.getValue(), attribute.getName()));
                    break;
                case PulseConstants.MBEAN_ATTRIBUTE_NUMTXNCOMMITTED:
                    cluster.setTxnCommittedCount(getIntegerAttribute(attribute.getValue(), attribute.getName()));
                    break;
                case PulseConstants.MBEAN_ATTRIBUTE_NUMTXNROLLBACK:
                    cluster.setTxnRollbackCount(getIntegerAttribute(attribute.getValue(), attribute.getName()));
                    break;
                case PulseConstants.MBEAN_ATTRIBUTE_TOTALHEAPSIZE:
                    cluster.setTotalHeapSize(getLongAttribute(attribute.getValue(), attribute.getName()));
                    break;
                case PulseConstants.MBEAN_ATTRIBUTE_USEDHEAPSIZE:
                    try {
                        cluster.setUsedHeapSize(getLongAttribute(attribute.getValue(), attribute.getName()));
                    } catch (Exception e) {
                        cluster.setUsedHeapSize((long) 0);
                        continue;
                    }
                    cluster.getMemoryUsageTrend().add(cluster.getUsedHeapSize());
                    break;
                case PulseConstants.MBEAN_ATTRIBUTE_TOTALREGIONENTRYCOUNT:
                    cluster.setTotalRegionEntryCount(getLongAttribute(attribute.getValue(), attribute.getName()));
                    break;
                case PulseConstants.MBEAN_ATTRIBUTE_CURRENTENTRYCOUNT:
                    cluster.setCurrentQueryCount(getIntegerAttribute(attribute.getValue(), attribute.getName()));
                    break;
                case PulseConstants.MBEAN_ATTRIBUTE_TOTALDISKUSAGE:
                    try {
                        cluster.setTotalBytesOnDisk(getLongAttribute(attribute.getValue(), attribute.getName()));
                    } catch (Exception e) {
                        cluster.setTotalBytesOnDisk((long) 0);
                        continue;
                    }
                    cluster.getTotalBytesOnDiskTrend().add(cluster.getTotalBytesOnDisk());
                    break;
                case PulseConstants.MBEAN_ATTRIBUTE_DISKWRITESRATE:
                    cluster.setDiskWritesRate(getDoubleAttribute(attribute.getValue(), attribute.getName()));
                    cluster.getThroughoutWritesTrend().add(cluster.getDiskWritesRate());
                    break;
                case PulseConstants.MBEAN_ATTRIBUTE_AVERAGEWRITES:
                    try {
                        cluster.setWritePerSec(getDoubleAttribute(attribute.getValue(), attribute.getName()));
                    } catch (Exception e) {
                        cluster.setWritePerSec(0);
                        continue;
                    }
                    cluster.getWritePerSecTrend().add(cluster.getWritePerSec());
                    break;
                case PulseConstants.MBEAN_ATTRIBUTE_AVERAGEREADS:
                    try {
                        cluster.setReadPerSec(getDoubleAttribute(attribute.getValue(), attribute.getName()));
                    } catch (Exception e) {
                        cluster.setReadPerSec(0);
                        continue;
                    }
                    cluster.getReadPerSecTrend().add(cluster.getReadPerSec());
                    break;
                case PulseConstants.MBEAN_ATTRIBUTE_QUERYREQUESTRATE:
                    cluster.setQueriesPerSec(getDoubleAttribute(attribute.getValue(), attribute.getName()));
                    cluster.getQueriesPerSecTrend().add(cluster.getQueriesPerSec());
                    break;
                case PulseConstants.MBEAN_ATTRIBUTE_DISKREADSRATE:
                    cluster.setDiskReadsRate(getDoubleAttribute(attribute.getValue(), attribute.getName()));
                    cluster.getThroughoutReadsTrend().add(cluster.getDiskReadsRate());
                    break;
                case PulseConstants.MBEAN_ATTRIBUTE_JVMPAUSES:
                    long trendVal = determineCurrentJVMPauses(PulseConstants.JVM_PAUSES_TYPE_CLUSTER, "", getLongAttribute(attribute.getValue(), attribute.getName()));
                    cluster.setGarbageCollectionCount(trendVal);
                    cluster.getGarbageCollectionTrend().add(cluster.getGarbageCollectionCount());
                    break;
                case PulseConstants.MBEAN_ATTRIBUTE_TOTALREGIONCOUNT:
                    cluster.setTotalRegionCount(getIntegerAttribute(attribute.getValue(), attribute.getName()));
                    break;
            }
        }
    } catch (InstanceNotFoundException | ReflectionException | MBeanException infe) {
        logger.warn(infe);
    }
}
Also used : ReflectionException(javax.management.ReflectionException) Attribute(javax.management.Attribute) AttributeList(javax.management.AttributeList) CompositeData(javax.management.openmbean.CompositeData) InstanceNotFoundException(javax.management.InstanceNotFoundException) AttributeNotFoundException(javax.management.AttributeNotFoundException) IntrospectionException(javax.management.IntrospectionException) InstanceNotFoundException(javax.management.InstanceNotFoundException) ReflectionException(javax.management.ReflectionException) IOException(java.io.IOException) UnknownHostException(java.net.UnknownHostException) MalformedObjectNameException(javax.management.MalformedObjectNameException) MBeanException(javax.management.MBeanException) TabularData(javax.management.openmbean.TabularData) Collection(java.util.Collection) MBeanException(javax.management.MBeanException)

Example 34 with InstanceNotFoundException

use of javax.management.InstanceNotFoundException in project geode by apache.

the class JMXDataUpdater method updateRegionOnMembers.

/**
   * Add member specific region information on the region
   * 
   * @param regionObjectName: used to construct the jmx objectname. For region name that has special
   *        characters in, it will have double quotes around it.
   */
private void updateRegionOnMembers(String regionObjectName, String regionFullPath, Cluster.Region region) throws IOException {
    try {
        List<String> memberNamesTemp = region.getMemberName();
        ArrayList<String> memberNames = new ArrayList<String>(memberNamesTemp);
        List<Cluster.RegionOnMember> regionOnMemberList = new ArrayList<Cluster.RegionOnMember>();
        List<Cluster.RegionOnMember> regionOnMemberListNew = new ArrayList<Cluster.RegionOnMember>();
        Cluster.RegionOnMember[] regionOnMemberNames = region.getRegionOnMembers();
        if ((regionOnMemberNames != null) && (regionOnMemberNames.length > 0)) {
            regionOnMemberList = new ArrayList<Cluster.RegionOnMember>(Arrays.asList(regionOnMemberNames));
        }
        logger.debug("updateRegionOnMembers : # regionOnMembers objects in region = {}", regionOnMemberList.size());
        for (Cluster.RegionOnMember anRom : regionOnMemberList) {
            for (String memberName : memberNames) {
                if (anRom.getMemberName().equals(memberName)) {
                    // Add regionOnMember object in new list
                    regionOnMemberListNew.add(anRom);
                    logger.debug("updateRegionOnMembers : Processing existing Member name = {}", anRom.getMemberName());
                    String objectNameROM = PulseConstants.OBJECT_NAME_REGION_ON_MEMBER_REGION + regionObjectName + PulseConstants.OBJECT_NAME_REGION_ON_MEMBER_MEMBER + anRom.getMemberName();
                    ObjectName regionOnMemberMBean = new ObjectName(objectNameROM);
                    logger.debug("updateRegionOnMembers : Object name = {}", regionOnMemberMBean.getCanonicalName());
                    AttributeList attributeList = this.mbs.getAttributes(regionOnMemberMBean, PulseConstants.REGION_ON_MEMBER_MBEAN_ATTRIBUTES);
                    for (int i = 0; i < attributeList.size(); i++) {
                        Attribute attribute = (Attribute) attributeList.get(i);
                        String name = attribute.getName();
                        switch(name) {
                            case PulseConstants.MBEAN_ATTRIBUTE_ENTRYSIZE:
                                anRom.setEntrySize(getLongAttribute(attribute.getValue(), attribute.getName()));
                                logger.debug("updateRegionOnMembers : anRom.getEntrySize() = {}", anRom.getEntrySize());
                                break;
                            case PulseConstants.MBEAN_ATTRIBUTE_ENTRYCOUNT:
                                anRom.setEntryCount(getLongAttribute(attribute.getValue(), attribute.getName()));
                                logger.debug("updateRegionOnMembers : anRom.getEntryCount() = {}", anRom.getEntryCount());
                                break;
                            case PulseConstants.MBEAN_ATTRIBUTE_PUTSRATE:
                                anRom.setPutsRate(getDoubleAttribute(attribute.getValue(), attribute.getName()));
                                logger.debug("updateRegionOnMembers : anRom.getPutsRate() = {}", anRom.getPutsRate());
                                break;
                            case PulseConstants.MBEAN_ATTRIBUTE_GETSRATE:
                                anRom.setGetsRate(getDoubleAttribute(attribute.getValue(), attribute.getName()));
                                logger.debug("updateRegionOnMembers : anRom.getGetsRate() = {}", anRom.getGetsRate());
                                break;
                            case PulseConstants.MBEAN_ATTRIBUTE_DISKREADSRATE:
                                anRom.setDiskGetsRate(getDoubleAttribute(attribute.getValue(), attribute.getName()));
                                logger.debug("updateRegionOnMembers : anRom.getDiskGetsRate() = {}", anRom.getDiskGetsRate());
                                break;
                            case PulseConstants.MBEAN_ATTRIBUTE_DISKWRITESRATE:
                                anRom.setDiskPutsRate(getDoubleAttribute(attribute.getValue(), attribute.getName()));
                                logger.debug("updateRegionOnMembers : anRom.getDiskPutsRate() = {}", anRom.getDiskPutsRate());
                                break;
                            case PulseConstants.MBEAN_ATTRIBUTE_LOCALMAXMEMORY:
                                anRom.setLocalMaxMemory(getIntegerAttribute(attribute.getValue(), attribute.getName()));
                                logger.debug("updateRegionOnMembers : anRom.getLocalMaxMemory() = {}", anRom.getLocalMaxMemory());
                                break;
                        }
                    }
                    anRom.getGetsPerSecTrend().add(anRom.getGetsRate());
                    anRom.getPutsPerSecTrend().add(anRom.getPutsRate());
                    anRom.getDiskReadsPerSecTrend().add(anRom.getDiskGetsRate());
                    anRom.getDiskWritesPerSecTrend().add(anRom.getDiskPutsRate());
                    logger.debug("updateRegionOnMembers : Existing member on region : getGetsRate() = {}, getPutsRate() = {}, getDiskGetsRate() = {}, getDiskPutsRate() = {}", anRom.getGetsPerSecTrend().size(), anRom.getPutsPerSecTrend().size(), anRom.getDiskReadsPerSecTrend().size(), anRom.getDiskWritesPerSecTrend().size());
                    // remove existing member names from list so only new ones will remain
                    memberNames.remove(anRom.getMemberName());
                    break;
                }
            }
        }
        logger.debug("updateRegionOnMembers : Loop over remaining member names and adding new member in region. Existing count = {}", regionOnMemberList.size());
        logger.debug("updateRegionOnMembers : Remaining new members in this region = {}", memberNames.size());
        // loop over the remaining regions members and add new members for this region
        for (String memberName : memberNames) {
            String objectNameROM = PulseConstants.OBJECT_NAME_REGION_ON_MEMBER_REGION + regionObjectName + PulseConstants.OBJECT_NAME_REGION_ON_MEMBER_MEMBER + memberName;
            ObjectName regionOnMemberMBean = new ObjectName(objectNameROM);
            Cluster.RegionOnMember regionOnMember = new Cluster.RegionOnMember();
            regionOnMember.setMemberName(memberName);
            regionOnMember.setRegionFullPath(regionFullPath);
            AttributeList attributeList = this.mbs.getAttributes(regionOnMemberMBean, PulseConstants.REGION_ON_MEMBER_MBEAN_ATTRIBUTES);
            for (int i = 0; i < attributeList.size(); i++) {
                Attribute attribute = (Attribute) attributeList.get(i);
                String name = attribute.getName();
                switch(name) {
                    case PulseConstants.MBEAN_ATTRIBUTE_ENTRYSIZE:
                        regionOnMember.setEntrySize(getLongAttribute(attribute.getValue(), attribute.getName()));
                        break;
                    case PulseConstants.MBEAN_ATTRIBUTE_ENTRYCOUNT:
                        regionOnMember.setEntryCount(getLongAttribute(attribute.getValue(), attribute.getName()));
                        break;
                    case PulseConstants.MBEAN_ATTRIBUTE_PUTSRATE:
                        regionOnMember.setPutsRate(getDoubleAttribute(attribute.getValue(), attribute.getName()));
                        break;
                    case PulseConstants.MBEAN_ATTRIBUTE_GETSRATE:
                        regionOnMember.setGetsRate(getDoubleAttribute(attribute.getValue(), attribute.getName()));
                        break;
                    case PulseConstants.MBEAN_ATTRIBUTE_DISKREADSRATE:
                        regionOnMember.setDiskGetsRate(getDoubleAttribute(attribute.getValue(), attribute.getName()));
                        break;
                    case PulseConstants.MBEAN_ATTRIBUTE_DISKWRITESRATE:
                        regionOnMember.setDiskPutsRate(getDoubleAttribute(attribute.getValue(), attribute.getName()));
                        break;
                    case PulseConstants.MBEAN_ATTRIBUTE_LOCALMAXMEMORY:
                        regionOnMember.setLocalMaxMemory(getIntegerAttribute(attribute.getValue(), attribute.getName()));
                        break;
                }
            }
            regionOnMember.getGetsPerSecTrend().add(regionOnMember.getGetsRate());
            regionOnMember.getPutsPerSecTrend().add(regionOnMember.getPutsRate());
            regionOnMember.getDiskReadsPerSecTrend().add(regionOnMember.getDiskGetsRate());
            regionOnMember.getDiskWritesPerSecTrend().add(regionOnMember.getDiskPutsRate());
            logger.debug("updateRegionOnMembers : Adding New member on region : getGetsRate() = {}, getPutsRate() = {}, getDiskGetsRate() = {}, getDiskPutsRate() = {}", regionOnMember.getGetsRate(), regionOnMember.getPutsRate(), regionOnMember.getDiskGetsRate(), regionOnMember.getDiskPutsRate());
            regionOnMemberListNew.add(regionOnMember);
        }
        // set region on member
        region.setRegionOnMembers(regionOnMemberListNew);
        logger.debug("updateRegionOnMembers : Total regions on member in region after update = {}", region.getFullPath(), region.getRegionOnMembers().length);
    } catch (MalformedObjectNameException | InstanceNotFoundException | ReflectionException e) {
        logger.warn(e);
    }
}
Also used : ReflectionException(javax.management.ReflectionException) MalformedObjectNameException(javax.management.MalformedObjectNameException) Attribute(javax.management.Attribute) AttributeList(javax.management.AttributeList) InstanceNotFoundException(javax.management.InstanceNotFoundException) ArrayList(java.util.ArrayList) ObjectName(javax.management.ObjectName)

Example 35 with InstanceNotFoundException

use of javax.management.InstanceNotFoundException in project jackrabbit-oak by apache.

the class StandbyServerSync method close.

@Override
public void close() {
    stop();
    state = STATUS_CLOSING;
    if (server != null) {
        server.close();
    }
    observer.unregister();
    final MBeanServer jmxServer = ManagementFactory.getPlatformMBeanServer();
    try {
        jmxServer.unregisterMBean(new ObjectName(this.getMBeanName()));
    } catch (InstanceNotFoundException e) {
    // ignore
    } catch (Exception e) {
        log.error("can't unregister standby status mbean", e);
    }
    state = STATUS_CLOSED;
}
Also used : InstanceNotFoundException(javax.management.InstanceNotFoundException) InstanceNotFoundException(javax.management.InstanceNotFoundException) MBeanServer(javax.management.MBeanServer) ObjectName(javax.management.ObjectName)

Aggregations

InstanceNotFoundException (javax.management.InstanceNotFoundException)102 ObjectName (javax.management.ObjectName)59 ReflectionException (javax.management.ReflectionException)44 MBeanException (javax.management.MBeanException)32 MalformedObjectNameException (javax.management.MalformedObjectNameException)28 MBeanRegistrationException (javax.management.MBeanRegistrationException)25 InstanceAlreadyExistsException (javax.management.InstanceAlreadyExistsException)19 MBeanServer (javax.management.MBeanServer)17 IOException (java.io.IOException)16 AttributeNotFoundException (javax.management.AttributeNotFoundException)16 Attribute (javax.management.Attribute)15 IntrospectionException (javax.management.IntrospectionException)14 NotCompliantMBeanException (javax.management.NotCompliantMBeanException)14 AttributeList (javax.management.AttributeList)12 ObjectInstance (javax.management.ObjectInstance)12 MBeanInfo (javax.management.MBeanInfo)11 InvalidAttributeValueException (javax.management.InvalidAttributeValueException)10 RuntimeOperationsException (javax.management.RuntimeOperationsException)9 ArrayList (java.util.ArrayList)7 MBeanAttributeInfo (javax.management.MBeanAttributeInfo)7