Interface PartitionListener

All Known Implementing Classes:
PartitionListenerAdapter

public interface PartitionListener
A callback for partitioned regions, invoked when a partition region is created or any bucket is created/deleted or any bucket in a partitioned region becomes primary.

It is highly recommended that implementations of this listener should be quick and not try to manipulate regions and data because the the callbacks are invoked while holding locks that may block region operations.
 package com.myCompany.MyPartitionListener;

 public class MyPartitionListener extends PartitionListenerAdapter implements Declarable {
   private String regionName;

   public MyPartitionListener() {}

   public void afterPrimary(int bucketId) {
     System.out.println("bucket:" + bucketId + " has become primary on " + this.regionName);
   }

   public void afterRegionCreate(Region<?, ?> region) {
     this.regionName = region.getName();
   }
 }
 
A sample declaration of the MyPartitionListener in cache.xml as follows :
 <partition-attributes redundant-copies="1">
     <partition-listener>
         <class-name>com.myCompany.MyPartitionListener</class-name>
     </partition-listener>
 </partition-attributes>
 
Since:
GemFire 6.5
See Also:
  • Method Summary

    Modifier and Type
    Method
    Description
    void
    afterBucketCreated(int bucketId, Iterable<?> keys)
    Callback invoked after a bucket has been created in a member (e.g.
    void
    afterBucketRemoved(int bucketId, Iterable<?> keys)
    Callback invoked after a bucket has been removed from a member (e.g.
    void
    afterPrimary(int bucketId)
    Callback invoked when any bucket in a partitioned region becomes primary
    void
    Callback invoked when a partition region is created
    default void
    afterSecondary(int bucketId)
    Callback invoked when any bucket in a partitioned region stops being primary
  • Method Details

    • afterPrimary

      void afterPrimary(int bucketId)
      Callback invoked when any bucket in a partitioned region becomes primary
      Parameters:
      bucketId - id of the bucket which became primary
      Since:
      GemFire 6.5
    • afterSecondary

      default void afterSecondary(int bucketId)
      Callback invoked when any bucket in a partitioned region stops being primary
      Parameters:
      bucketId - id of the bucket which stopped being primary
      Since:
      Geode 1.1
    • afterRegionCreate

      void afterRegionCreate(Region<?,?> region)
      Callback invoked when a partition region is created
      Parameters:
      region - handle of the region which is created
      Since:
      GemFire 6.5
    • afterBucketRemoved

      void afterBucketRemoved(int bucketId, Iterable<?> keys)
      Callback invoked after a bucket has been removed from a member (e.g. during rebalancing). This API is useful for maintaining external data structures by bucket id or key.
      Parameters:
      bucketId - id of the bucket removed
      keys - keys in the bucket removed
      Since:
      GemFire 6.6.1
    • afterBucketCreated

      void afterBucketCreated(int bucketId, Iterable<?> keys)
      Callback invoked after a bucket has been created in a member (e.g. during rebalancing). This API is useful for maintaining external data structures by bucket id or key. Note that this API is invoked after the initial image has been completed so creates and destroys may occur in the keys. It is best to use this API during periods of no cache activity.
      Parameters:
      bucketId - id of the bucket created
      keys - keys in the bucket created
      Since:
      GemFire 6.6.1