[ 
https://issues.apache.org/jira/browse/GEODE-2676?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Barbara Pruijn updated GEODE-2676:
----------------------------------
    Fix Version/s: 1.4.0

> RegionMBean statistics wrong on partitioned regions
> ---------------------------------------------------
>
>                 Key: GEODE-2676
>                 URL: https://issues.apache.org/jira/browse/GEODE-2676
>             Project: Geode
>          Issue Type: Bug
>          Components: management
>            Reporter: Fred Krone
>            Priority: Minor
>              Labels: jmx
>             Fix For: 1.4.0
>
>
> RegionMBean attributes hitCount, hitRatio, missCount, lastAccessedTime, and 
> lastModifiedTime will always be 0 for an mbean that represents an partitioned 
> region.
> The gettors for these methods may call getStatistics() which on a PR always 
> throws UnsupportedOperationException. So this exception might even get 
> exposed to customers.
> The initialization of RegionMBeanBridge calls getStatisticsEnabled() which 
> returns true on a PartitionedRegion. This does have meaning on a PR but it 
> does not mean that getStatistics() is a supported operation. On a PR setting 
> statistics-enabled causes each region-entry to also keep track of its last 
> access time.
> It is true that if getStatisticsEnabled() is false then you should not call 
> getStatistics. But the opposite is not true. Since we currently have regions 
> that do not support getStatistics(), the code in RegionMBeanBridge should 
> catch UnsupportedOperationException and handle it. I would suggest that the 
> constructor be changed that initializes the "isStatisticsEnabled" field. 
> Instead of only calling getStatisticsEnabled() it should also call 
> getStatistics(). Something like this:
> {noformat}
>     {
>       boolean useGetStatistics = regAttrs.getStatisticsEnabled();
>       if (useGetStatistics) {
>         try {
>           region.getStatistics();
>         } catch (UnsupportedOperationException ex) {
>           useGetStatistics = false;
>         }
>       }
>       this.isStatisticsEnabled = useGetStatistics;
>     }
> {noformat}
> That way in a future release if PRs are changed to support getStatistics this 
> code will start calling it without having a direct dependency on the 
> implementation of PartitionedRegion.
> https://issues.apache.org/jira/browse/GEODE-2685 is a request to support 
> getStatistics on PRs.



--
This message was sent by Atlassian JIRA
(v7.6.3#76005)

Reply via email to