/** * Adds an off-heap notification listener to the MemberMXBean. */ protected void addOffHeapNotificationListener() { ManagementService service = ManagementService.getExistingManagementService(getCache()); assertNotNull(service); assertTrue(service.isManager()); MemberMXBean memberBean = service.getMemberMXBean(); assertNotNull(memberBean); assertTrue(memberBean instanceof MemberMBean); ((MemberMBean) memberBean).addNotificationListener(notificationListener, null, null); }
/** * Performs some destroys to free off-heap allocations. * @param numAllocations the number of previous off-heap allocations * @param numDestroys the number of destroys to perform */ protected void doFreeOffHeapMemory(int numAllocations,int numDestroys) { assertTrue(numDestroys <= numAllocations); Region region = getCache().getRegion(OFF_HEAP_REGION_NAME); assertNotNull(region); assertTrue(numDestroys <= region.size()); String key = "KEY0"; Object value = key; int destroyed = 0; while(destroyed < numDestroys) { key = "KEY" + ((int) (Math.random() * numAllocations)); value = region.get(key); if(null != value) { region.destroy(key); ++destroyed; } } }
/** * Asserts that the compactionTime stat is available and satisfies an assert operation. * @param compactionTime total off heap compaction time. * @param op an assert operation. */ protected void assertCompactionTimeStat(long compactionTime,ASSERT_OP op) { ManagementService service = ManagementService.getExistingManagementService(getCache()); assertNotNull(service); assertTrue(service.isManager()); MemberMXBean memberBean = service.getMemberMXBean(); assertNotNull(memberBean); switch(op) { case EQUAL: assertEquals(compactionTime,memberBean.getOffHeapCompactionTime()); break; case GREATER_THAN: assertTrue(compactionTime < memberBean.getOffHeapCompactionTime()); break; case GREATER_THAN_OR_EQUAL: assertTrue(compactionTime <= memberBean.getOffHeapCompactionTime()); break; case LESS_THAN: assertTrue(compactionTime > memberBean.getOffHeapCompactionTime()); break; } }
/** * Asserts that the off heap region data is available and enabled. */ protected void assertOffHeapRegionAttributes() { ManagementService service = ManagementService.getExistingManagementService(getCache()); assertNotNull(service); assertTrue(service.isManager()); RegionMXBean regionBean = service.getLocalRegionMBean(OFF_HEAP_REGION_PATH); assertNotNull(regionBean); RegionAttributesData regionData = regionBean.listRegionAttributes(); assertNotNull(regionData); assertTrue(regionData.getEnableOffHeapMemory()); }
/** * Asserts that the fragmentation stat is available and satisfies an assert operation. * @param fragmentation a fragmentation percentage * @param op an assertion operation */ protected void assertFragmentationStat(int fragmentation,ASSERT_OP op) { ManagementService service = ManagementService.getExistingManagementService(getCache()); assertNotNull(service); assertTrue(service.isManager()); MemberMXBean memberBean = service.getMemberMXBean(); assertNotNull(memberBean); switch(op) { case EQUAL: assertEquals(fragmentation,memberBean.getOffHeapFragmentation()); break; case GREATER_THAN: assertTrue(fragmentation < memberBean.getOffHeapFragmentation()); break; case LESS_THAN: assertTrue(fragmentation > memberBean.getOffHeapFragmentation()); break; } }
/** * Asserts that OffHeapMetrics match input parameters. * @param freeMemory total off-heap free memory in bytes. * @param allocatedMemory allocated (or used) off-heap memory in bytes. * @param objects number of objects stored in off-heap memory. * @param fragmentation the fragmentation percentage. */ protected void assertOffHeapMetrics(long freeMemory,long allocatedMemory,long objects, int fragmentation) { ManagementService service = ManagementService.getExistingManagementService(getCache()); assertNotNull(service); assertTrue(service.isManager()); MemberMXBean memberBean = service.getMemberMXBean(); assertNotNull(memberBean); assertEquals(freeMemory,memberBean.getOffHeapFreeMemory()); assertEquals(allocatedMemory,memberBean.getOffHeapUsedMemory()); assertEquals(objects,memberBean.getOffHeapObjects()); assertEquals(fragmentation,memberBean.getOffHeapFragmentation()); }
assertTrue(numAllocations > 0);
assertTrue(numAllocations > 0);