public MBeanPooledResource(String poolTypeName, ObjectName objectName, String mbeanKeyPropertyName, String mbeanActiveAttribute, String mbeanCountAttribute, String mbeanMaxAttribute, String mbeanQueueAttribute) { this.poolTypeName = poolTypeName; this.name = objectName.getKeyProperty(mbeanKeyPropertyName); this.objectName = objectName; this.mbeanActiveAttribute = mbeanActiveAttribute; this.mbeanCountAttribute = mbeanCountAttribute; this.mbeanMaxAttribute = mbeanMaxAttribute; this.mbeanQueueAttribute = mbeanQueueAttribute; }
private String extractTargetTypeProperty(ObjectName objectName) { String result = null; for (String attr: targetPropertiesCandidates) { try { result = objectName.getKeyProperty(attr); if (result != null) { break; } } catch (NullPointerException ok) {} } return result; }
private static ObjectName getGroupMulticastObjectName(MBeanServer mBeanServer) { for(ObjectName name : mBeanServer.queryNames(null, null)) { if(name.getDomain().equals(JMX_DOMAIN)) { if ("TOA".equals(name.getKeyProperty("protocol"))) { return name; } } } return null; } }
@Override public Set<ObjectName> getAsyncEventQueueMBeanNames(DistributedMember member) { Set<ObjectName> mBeanNames = this.queryMBeanNames(member); return mBeanNames.stream().filter(x -> "AsyncEventQueue".equals(x.getKeyProperty("service"))) .collect(Collectors.toSet()); }
/** * @return set of member ids on which this region is present. */ public String[] getMembers() { Iterator<ObjectName> it = mapOfProxy.keySet().iterator(); if (it != null) { List<String> memberList = new ArrayList<String>(); while (it.hasNext()) { ObjectName tempObjName = it.next(); String formatedMemberId = (String) tempObjName.getKeyProperty("member"); memberList.add(formatedMemberId); } String[] members = new String[memberList.size()]; return memberList.toArray(members); } return ManagementConstants.NO_DATA_STRING; }
private void initTrackers() { try { for(ObjectName name: connection.queryNames(null, null)) { if (name.getDomain().equals("java.lang") && "GarbageCollector".equals(name.getKeyProperty("type"))) { CollectorTracker tracker = new CollectorTracker(connection, name); trackers.put(tracker.name, tracker); } } } catch (Exception e) { throw new RuntimeException(e); } }
public static Set<String> getAsyncEventQueueIds(InternalCache cache, DistributedMember member) { SystemManagementService managementService = (SystemManagementService) ManagementService.getExistingManagementService(cache); return managementService.getAsyncEventQueueMBeanNames(member).stream() .map(x -> x.getKeyProperty("queue")).collect(Collectors.toSet()); }
private void initTrackers() { try { for(ObjectName name: mserver.queryNames(null, null)) { if (name.getDomain().equals("java.lang") && "GarbageCollector".equals(name.getKeyProperty("type"))) { GcTracker tracker = new GcTracker(name, name.getKeyProperty("name")); initTracker(tracker); trackers.add(tracker); tracker.capture(); } } } catch (Exception e) { throw new RuntimeException(e); } }
public ObjectName[] fetchRegionObjectNames(ObjectName memberMBeanName) throws Exception { List<ObjectName> list = new ArrayList<>(); if (mapOfMembers.get(memberMBeanName) != null) { MemberMXBean bean = mapOfMembers.get(memberMBeanName); String member = memberMBeanName.getKeyProperty(ManagementConstants.OBJECTNAME_MEMBER_APPENDER); String[] regions = bean.listRegions(); for (String region : regions) { ObjectName regionMBeanName = MBeanJMXAdapter.getRegionMBeanName(member, region); list.add(regionMBeanName); } ObjectName[] objNames = new ObjectName[list.size()]; return list.toArray(objNames); } else { throw new Exception("Member MBean Not Found In Distributed System"); } }
public static ObjectName getRegionMBeanName(ObjectName memberMBeanName, String regionPath) { return getObjectName( (MessageFormat.format(OBJECTNAME__REGION_MXBEAN, makeCompliantRegionPath(regionPath), memberMBeanName.getKeyProperty(ManagementConstants.OBJECTNAME_MEMBER_APPENDER)))); }
public static ObjectName getObjectName( GraphDatabaseService db, String name ) { if ( !(db instanceof GraphDatabaseAPI) ) { throw new IllegalArgumentException( "Can only resolve object names for embedded Neo4j database " + "instances, eg. instances created by GraphDatabaseFactory or HighlyAvailableGraphDatabaseFactory." ); } ObjectName neoQuery = ((GraphDatabaseAPI)db).getDependencyResolver().resolveDependency( JmxKernelExtension.class ) .getSingleManagementBean( Kernel.class ).getMBeanQuery(); String instance = neoQuery.getKeyProperty( "instance" ); String domain = neoQuery.getDomain(); try { return new ObjectName( format( "%s:instance=%s,name=%s", domain, instance, name ) ); } catch ( MalformedObjectNameException e ) { throw new RuntimeException( e ); } }
/** * Return Map of region full against the ObjectName of existing region MBeans. * * @param memberId string identifier of a member * @return Map of region path vs ObjectName for existing region MBeans * @throws MalformedObjectNameException If the query expression used is not valid */ private Map<String, ObjectName> getExistingRegionMbeansFullPaths(String memberId) throws MalformedObjectNameException { Map<String, ObjectName> pathsToObjName = new HashMap<String, ObjectName>(); if (memberId != null && memberId.trim().length() != 0) { Object[] params = new Object[] {MBeanUtil.makeCompliantMBeanNameProperty(memberId)}; Set<ObjectName> queryNames = queryObjectNames(REGION_QUERY_EXPRESSION, params); for (ObjectName objectName : queryNames) { pathsToObjName.put(objectName.getKeyProperty("path"), objectName); } } return pathsToObjName; }
public void updateRegion(ObjectName proxyName, FederationComponent oldValue, FederationComponent newValue) { String fullPath = proxyName.getKeyProperty("name"); ObjectName distributedRegionObjectName = MBeanJMXAdapter.getDistributedRegionMbeanNameInternal(fullPath); DistributedRegionBridge bridge = distrRegionMap.get(distributedRegionObjectName); if (bridge != null) { FederationComponent newProxy = newValue; FederationComponent oldProxy = null; if (oldValue != null) { oldProxy = oldValue; } bridge.updateRegion(newProxy, oldProxy); } }
private static Metric toMetric(long t, ObjectName name, Attribute attribute, Tag dsType) { Tag id = Tags.newTag("id", name.getKeyProperty("name")); Tag clazz = Tags.newTag("class", name.getKeyProperty("type")); TagList list = BasicTagList.of(id, clazz, dsType); return new Metric(normalizeName(attribute.getName()), list, t, attribute.getValue()); }
public void removeRegion(ObjectName proxyName, RegionMXBean regionProxy, FederationComponent fedComp) { String fullPath = proxyName.getKeyProperty("name"); ObjectName distributedRegionObjectName = MBeanJMXAdapter.getDistributedRegionMbeanNameInternal(fullPath); synchronized (distrRegionMap) { if (distrRegionMap.get(distributedRegionObjectName) != null) { DistributedRegionBridge bridge = distrRegionMap.get(distributedRegionObjectName); if (bridge.removeProxyFromMap(proxyName, regionProxy, fedComp)) { service.unregisterMBean(distributedRegionObjectName); distrRegionMap.remove(distributedRegionObjectName); } } else { return; } } }
public void removeLockService(ObjectName proxyName, LockServiceMXBean lockServiceProxy, FederationComponent fedComp) { String lockServiceName = proxyName.getKeyProperty("name"); ObjectName distributedLockObjectName = MBeanJMXAdapter.getDistributedLockServiceName(lockServiceName); synchronized (distrLockServiceMap) { if (distrLockServiceMap.get(distributedLockObjectName) != null) { DistributedLockServiceBridge bridge = distrLockServiceMap.get(distributedLockObjectName); if (bridge.removeProxyFromMap(proxyName, lockServiceProxy)) { service.unregisterMBean(distributedLockObjectName); distrLockServiceMap.remove(distributedLockObjectName); } } else { return; } } }
/** {@inheritDoc} */ @Override public ObjectInstance registerMBean(Object obj, ObjectName name) throws InstanceAlreadyExistsException, MBeanRegistrationException, NotCompliantMBeanException { String node = name.getKeyProperty("igniteInstanceName"); if (nodes.contains(node) && caches.contains(name.getKeyProperty("group"))) throw new MBeanRegistrationException(new Exception("Simulate exception [node=" + node + ']')); return origin.registerMBean(obj, name); }
@Test public void testAppendIdentityToObjectName() throws MalformedObjectNameException { ObjectName objectName = ObjectNameManager.getInstance("spring:type=Test"); Object managedResource = new Object(); ObjectName uniqueName = JmxUtils.appendIdentityToObjectName(objectName, managedResource); String typeProperty = "type"; assertEquals("Domain of transformed name is incorrect", objectName.getDomain(), uniqueName.getDomain()); assertEquals("Type key is incorrect", objectName.getKeyProperty(typeProperty), uniqueName.getKeyProperty("type")); assertEquals("Identity key is incorrect", ObjectUtils.getIdentityHexString(managedResource), uniqueName.getKeyProperty(JmxUtils.IDENTITY_OBJECT_NAME_KEY)); }
@Test public void naming() throws MalformedObjectNameException { JmxTestBean bean = new JmxTestBean(); IdentityNamingStrategy strategy = new IdentityNamingStrategy(); ObjectName objectName = strategy.getObjectName(bean, "null"); assertEquals("Domain is incorrect", bean.getClass().getPackage().getName(), objectName.getDomain()); assertEquals("Type property is incorrect", ClassUtils.getShortName(bean.getClass()), objectName.getKeyProperty(IdentityNamingStrategy.TYPE_KEY)); assertEquals("HashCode property is incorrect", ObjectUtils.getIdentityHexString(bean), objectName.getKeyProperty(IdentityNamingStrategy.HASH_CODE_KEY)); }
public void addLockService(ObjectName proxyName, LockServiceMXBean lockServiceProxy, FederationComponent fedComp) { String lockServiceName = proxyName.getKeyProperty("name"); ObjectName distributedLockObjectName = MBeanJMXAdapter.getDistributedLockServiceName(lockServiceName); synchronized (distrLockServiceMap) { if (distrLockServiceMap.get(distributedLockObjectName) != null) { DistributedLockServiceBridge bridge = distrLockServiceMap.get(distributedLockObjectName); bridge.addProxyToMap(proxyName, lockServiceProxy); } else { DistributedLockServiceBridge bridge = new DistributedLockServiceBridge(proxyName, lockServiceProxy, fedComp); DistributedLockServiceMXBean mbean = new DistributedLockServiceMBean(bridge); service.registerInternalMBean(mbean, distributedLockObjectName); distrLockServiceMap.put(distributedLockObjectName, bridge); } } }