/** * Changes the timeToLive expiration attributes for the partitioned region as * a whole * * @param timeToLive * the expiration attributes for the region timeToLive * @return the previous value of region timeToLive * @throws IllegalArgumentException * if timeToLive is null or if the ExpirationAction is * LOCAL_INVALIDATE and the region is * {@link DataPolicy#withReplication replicated} * @throws IllegalStateException * if statistics are disabled for this region. */ @Override public ExpirationAttributes setRegionTimeToLive( ExpirationAttributes timeToLive) { ExpirationAttributes attr = super.setRegionTimeToLive(timeToLive); // Set to Bucket regions as well if (this.getDataStore() != null) { // not for accessors Iterator iter = this.getDataStore().getAllLocalBuckets().iterator(); while (iter.hasNext()) { Map.Entry entry = (Map.Entry)iter.next(); Region bucketRegion = (BucketRegion)entry.getValue(); bucketRegion.getAttributesMutator().setRegionTimeToLive(timeToLive); } } return attr; }
/** * Changes the timeToLive expiration attributes for the partitioned region as * a whole * * @param timeToLive * the expiration attributes for the region timeToLive * @return the previous value of region timeToLive * @throws IllegalArgumentException * if timeToLive is null or if the ExpirationAction is * LOCAL_INVALIDATE and the region is * {@link DataPolicy#withReplication replicated} * @throws IllegalStateException * if statistics are disabled for this region. */ @Override public ExpirationAttributes setRegionTimeToLive( ExpirationAttributes timeToLive) { ExpirationAttributes attr = super.setRegionTimeToLive(timeToLive); // Set to Bucket regions as well if (this.getDataStore() != null) { // not for accessors Iterator iter = this.getDataStore().getAllLocalBuckets().iterator(); while (iter.hasNext()) { Map.Entry entry = (Map.Entry)iter.next(); Region bucketRegion = (BucketRegion)entry.getValue(); bucketRegion.getAttributesMutator().setRegionTimeToLive(timeToLive); } } return attr; }
public void testRegionTTLAfterMutating() throws InterruptedException, CacheException { String regionName = getUniqueName(); int firstTimeout = 2; int secondTimeout = 6; createWithExpiration( regionName, new ExpirationAttributes(firstTimeout, ExpirationAction.DESTROY), null); long startTime = System.currentTimeMillis(); final Region region = getOrCreateRootRegion().getSubregion(regionName); region.getAttributesMutator().setRegionTimeToLive( new ExpirationAttributes(secondTimeout, ExpirationAction.DESTROY)); Thread.sleep(firstTimeout * 1000 + 100); if (region.isDestroyed()) { assertTrue(System.currentTimeMillis() >= startTime + secondTimeout * 1000); } Thread.sleep((secondTimeout - firstTimeout) * 1000 + 100); WaitCriterion wc = new WaitCriterion() { public boolean done() { return region.isDestroyed(); } public String description() { return "region never destroyed"; } }; DistributedTestCase.waitForCriterion(wc, 30 * 1000, 1000, true); }
mutator.setRegionTimeToLive(parseExpirationAttributes(newRegionExpirationTTL, region.getRegionTimeToLive())); if (logger.isDebugEnabled()) { logger.debug("Region successfully altered - region TTL");
mutator.setRegionTimeToLive( new ExpirationAttributes(1, ExpirationAction.LOCAL_DESTROY));
mutator.setRegionTimeToLive( new ExpirationAttributes(1, ExpirationAction.LOCAL_DESTROY));
mutator.setRegionTimeToLive( new ExpirationAttributes(1, ExpirationAction.LOCAL_DESTROY));
mutator.setRegionTimeToLive(parseExpirationAttributes(newRegionExpirationTTL, region.getRegionTimeToLive())); if (logger != null) logger.fine("Region successfully altered - region TTL");
mutator.setRegionTimeToLive(null); fail("Should have thrown an IllegalArgumentException"); mutator.setRegionTimeToLive(new ExpirationAttributes(1, ExpirationAction.DESTROY)); fail("Should have thrown an IllegalStateException");
action = exprAtt.getAction(); if (useTTL) { mutator.setRegionTimeToLive(exprAtt); } else { mutator.setRegionIdleTimeout(exprAtt);
switch (expirationKind) { case GfxdAttributesMutator.EXPIRE_REGION_TIMETOLIVE: attrsMutator.setRegionTimeToLive(expirationAttrs); break; case GfxdAttributesMutator.EXPIRE_REGION_IDLETIME:
switch (expirationKind) { case GfxdAttributesMutator.EXPIRE_REGION_TIMETOLIVE: attrsMutator.setRegionTimeToLive(expirationAttrs); break; case GfxdAttributesMutator.EXPIRE_REGION_IDLETIME:
switch (expirationKind) { case GfxdAttributesMutator.EXPIRE_REGION_TIMETOLIVE: attrsMutator.setRegionTimeToLive(expirationAttrs); break; case GfxdAttributesMutator.EXPIRE_REGION_IDLETIME:
mutator.setRegionTimeToLive(attrs.getRegionTimeToLive());
mutator.setRegionTimeToLive(attrs.getRegionTimeToLive());
mutator.setCustomEntryTimeToLive(customTtl); mutator.setRegionIdleTimeout(regionIdle); mutator.setRegionTimeToLive(regionTTL); assertEquals(customTtl, mutator.setCustomEntryTimeToLive(customTtl2)); assertEquals(regionIdle, mutator.setRegionIdleTimeout(regionIdle2)); assertEquals(regionTTL, mutator.setRegionTimeToLive(regionTTL2));