com.gemstone.gemfire.cache.query.internal.QueryObserverHolder类的使用及代码示例

x33g5p2x  于2022-01-29 转载在 其他  
字(9.7k)|赞(0)|评价(0)|浏览(85)

本文整理了Java中com.gemstone.gemfire.cache.query.internal.QueryObserverHolder类的一些代码示例,展示了QueryObserverHolder类的具体用法。这些代码示例主要来源于Github/Stackoverflow/Maven等平台,是从一些精选项目中提取出来的代码,具有较强的参考意义,能在一定程度帮忙到你。QueryObserverHolder类的具体详情如下:
包路径:com.gemstone.gemfire.cache.query.internal.QueryObserverHolder
类名称:QueryObserverHolder

QueryObserverHolder介绍

[英]This class is intended to hold a single 'observer' which will receive callbacks from the query subsystem when various events take place. There can be only one such observer at a time. If no observer is needed, this member variable should point to an object with 'do-nothing' methods, such as QueryObserverAdapter. Code which wishes to observe events during a query should do so using the following technique: class MyQueryObserver extends QueryObserverAdapter { // ... override methods of interest ... } QueryObserver old = QueryObserverHolder.setInstance(new MyQueryObserver()); try { //... call query methods here ... } finally { // reset to the original QueryObserver. QueryObserverHolder.setInstance(old); } The query code will call methods on this static member using the following technique: QueryObserver observer = QueryObserverHolder.getInstance(); try { observer.startMethod(arguments); doSomething(); } finally { observer.stopMethod(arguments); }
[中]此类旨在容纳一个“观察者”,当各种事件发生时,该观察者将接收来自查询子系统的回调。一次只能有一个这样的观察者。如果不需要观察者,此成员变量应指向具有“不做任何事情”方法的对象,例如QueryObserverAdapter。希望在查询过程中观察事件的代码应该使用以下技术进行观察:MyQueryObserver类扩展QueryObserverAdapter{/..override methods of interest…}QueryObserver old=QueryObserverHolder。setInstance(新的MyQueryObserver());请尝试{/..call query methods here…}最后{//重置为原始QueryObserver.QueryObserverHolder.setInstance(旧);}查询代码将使用以下技术调用此静态成员上的方法:QueryObserver observer=QueryObserver holder。getInstance();试试{observer.startMethod(arguments);doSomething();}最后{observer.stopMethod(arguments);}

代码示例

代码示例来源:origin: io.snappydata/gemfire-core

public QueryObserver startTrace() {
 QueryObserver queryObserver = null;
 if (this.traceOn && this.cache != null) {
  QueryObserver qo = QueryObserverHolder.getInstance();
  if (qo instanceof IndexTrackingQueryObserver) {
   queryObserver = qo;
  } else if (!QueryObserverHolder.hasObserver()) {
   queryObserver = new IndexTrackingQueryObserver();
   QueryObserverHolder.setInstance(queryObserver);
  } else {
   queryObserver = qo;
  }
 }
 return queryObserver;
}

代码示例来源:origin: io.snappydata/gemfire-hydra-tests

@Override
 public void run2() throws CacheException {
  QueryObserverHolder.reset();
 }
});

代码示例来源:origin: io.snappydata/gemfire-hydra-tests

@Override
 public Object call() throws Exception {
  QueryObserver observer = QueryObserverHolder.getInstance();
  assertTrue(QueryObserverHolder.hasObserver());
  assertTrue(observer instanceof QueryResultTrackingObserver);
  QueryResultTrackingObserver resultObserver = (QueryResultTrackingObserver) observer;
  assertTrue(resultObserver.isObjectSerialized());
  return null;
 }
});

代码示例来源:origin: io.snappydata/gemfire-hydra-tests

@Override
 public void run2() throws CacheException
 {
  class MyQueryObserver extends IndexTrackingQueryObserver {
   @Override
   public void startQuery(Query query) {
    throw new RuntimeException("For testing purpose only from remote node");
   }              
  };
  QueryObserverHolder.setInstance(new MyQueryObserver());
 };
}

代码示例来源:origin: io.snappydata/gemfire-junit

public void testTraceOnLocalRegionWithTracePrefixNoComments() throws Exception{
 
 String prefix = "  <TRACE> ";
 //Create Partition Region
 AttributesFactory af = new AttributesFactory();
 af.setScope(Scope.LOCAL);
 region = CacheUtils.createRegion("portfolio", af.create(), false);
 if (region.size() == 0) {
  for (int i = 1; i <= 100; i++) {
   region.put(Integer.toString(i), new Portfolio(i, i));
  }
 }
 assertEquals(100, region.size());
 qs = CacheUtils.getQueryService();
 
 keyIndex1 = (IndexProtocol) qs.createIndex(INDEX_NAME,
   IndexType.FUNCTIONAL, "ID", "/portfolio ");
 
 assertTrue(keyIndex1 instanceof CompactRangeIndex);
 Query query = qs.newQuery(prefix+queryStr);
 assertTrue(((DefaultQuery)query).isTraced());
 
 SelectResults results = (SelectResults)query.execute();
 assertTrue(QueryObserverHolder.getInstance() instanceof IndexTrackingQueryObserver);
 //The query should return all elements in region.
 assertEquals(region.size(), results.size());
 QueryObserverHolder.reset();
}

代码示例来源:origin: io.snappydata/gemfire-junit

QueryObserver observer = QueryObserverHolder.getInstance();
assertTrue(QueryObserverHolder.hasObserver());
QueryObserverHolder.reset();

代码示例来源:origin: io.snappydata/gemfire-junit

public void hook(int spot) throws RuntimeException {
 QueryObserver observer = QueryObserverHolder.getInstance();
 assertTrue(observer instanceof IndexTrackingQueryObserver);
 IndexTrackingQueryObserver gfObserver = (IndexTrackingQueryObserver)observer;
 
 if (spot == 1) { //before index lookup
 } else if (spot == 2) { //before key range index lookup
 } else if (spot == 3) { //End of afterIndexLookup call
 } else if (spot == 4) { //Before resetting indexInfoMap
  Map map = gfObserver.getUsedIndexes();
  assertEquals(1, map.size());
  
  assertTrue(map.get(INDEX_NAME) instanceof IndexInfo);
  rMap = (IndexInfo)map.get(INDEX_NAME);
  
  if(this.regn instanceof PartitionedRegion){
   assertEquals(1, rMap.getResults().size());
  } else if (this.regn instanceof LocalRegion) {
   assertEquals(1, rMap.getResults().size());
  }
 }
}

代码示例来源:origin: io.snappydata/gemfire-hydra-tests

@Override
 public void run2() throws CacheException
 {
  class MyQueryObserver extends IndexTrackingQueryObserver {
   @Override
   public void startQuery(Query query) {
    throw new RuntimeException("For testing purpose only from remote node");
   }              
  };
  QueryObserverHolder.setInstance(new MyQueryObserver());
 };
}

代码示例来源:origin: io.snappydata/gemfire-hydra-tests

@Override
 public Object call() throws Exception {
  QueryObserver observer = QueryObserverHolder.getInstance();
  assertTrue(QueryObserverHolder.hasObserver());
  assertTrue(observer instanceof QueryResultTrackingObserver);
  QueryResultTrackingObserver resultObserver = (QueryResultTrackingObserver) observer;
  assertTrue(resultObserver.isObjectSerialized());
  return null;
 }
});

代码示例来源:origin: io.snappydata/gemfire-junit

public void testTraceOnLocalRegionWithSmallTracePrefixNoComments() throws Exception{
 
 String prefix = "<trace> ";
 //Create Partition Region
 AttributesFactory af = new AttributesFactory();
 af.setScope(Scope.LOCAL);
 region = CacheUtils.createRegion("portfolio", af.create(), false);
 if (region.size() == 0) {
  for (int i = 1; i <= 100; i++) {
   region.put(Integer.toString(i), new Portfolio(i, i));
  }
 }
 assertEquals(100, region.size());
 qs = CacheUtils.getQueryService();
 
 keyIndex1 = (IndexProtocol) qs.createIndex(INDEX_NAME,
   IndexType.FUNCTIONAL, "ID", "/portfolio ");
 
 assertTrue(keyIndex1 instanceof CompactRangeIndex);
 Query query = qs.newQuery(prefix+queryStr);
 assertTrue(((DefaultQuery)query).isTraced());
 
 SelectResults results = (SelectResults)query.execute();
 assertTrue(QueryObserverHolder.getInstance() instanceof IndexTrackingQueryObserver);
 //The query should return all elements in region.
 assertEquals(region.size(), results.size());
 QueryObserverHolder.reset();    
}

代码示例来源:origin: io.snappydata/gemfire-junit

QueryObserver observer = QueryObserverHolder.getInstance();
assertTrue(QueryObserverHolder.hasObserver());
QueryObserverHolder.reset();

代码示例来源:origin: io.snappydata/gemfire-core

NameResolutionException, QueryInvocationTargetException
QueryObserver observer = QueryObserverHolder.getInstance();
if (entriesMap == null || result == null || verifyLimit(result, limit, context))
 return;

代码示例来源:origin: org.apache.geode/gemfire-core

public QueryObserver startTrace() {
 QueryObserver queryObserver = null;
 if (this.traceOn && this.cache != null) {
  QueryObserver qo = QueryObserverHolder.getInstance();
  if (qo instanceof IndexTrackingQueryObserver) {
   queryObserver = qo;
  } else if (!QueryObserverHolder.hasObserver()) {
   queryObserver = new IndexTrackingQueryObserver();
   QueryObserverHolder.setInstance(queryObserver);
  } else {
   queryObserver = qo;
  }
 }
 return queryObserver;
}

代码示例来源:origin: io.snappydata/gemfire-hydra-tests

/**
 * Set queryobserver which will invoke bucket rebalance upon startQuery() callback
 */
public static void HydraTask_Set_BucketRegion_BucketRebalance_QueryObserver() {
 class MyQueryObserver extends IndexTrackingQueryObserver {
  @Override
  public void startQuery(Query query) {
   new Thread() {
    public void run() {
     ParRegUtil.doRebalance();
    }
   }.start();
  }
 }
 ;
 QueryObserverHolder.setInstance(new MyQueryObserver());
}

代码示例来源:origin: io.snappydata/gemfire-hydra-tests

@Override
 public Object call() throws Exception {
  QueryObserver observer = QueryObserverHolder.getInstance();
  assertTrue(QueryObserverHolder.hasObserver());
  assertTrue(observer instanceof QueryResultTrackingObserver);
  QueryResultTrackingObserver resultObserver = (QueryResultTrackingObserver) observer;
  assertTrue(resultObserver.isObjectSerialized());
  return null;
 }
});

代码示例来源:origin: io.snappydata/gemfire-junit

assertTrue(QueryObserverHolder.getInstance() instanceof IndexTrackingQueryObserver);
QueryObserverHolder.reset();

代码示例来源:origin: io.snappydata/gemfire-core

return;
assert entriesMap instanceof SortedMap;
QueryObserver observer = QueryObserverHolder.getInstance();
if (((SortedMap)entriesMap).isEmpty()){ // bug#40514
 return;

代码示例来源:origin: io.snappydata/gemfire-hydra-tests

@Override
 public void run2() throws CacheException {
  QueryObserverHolder.reset();
 }
});

代码示例来源:origin: io.snappydata/gemfire-hydra-tests

@Override
public Object call() throws Exception {
 QueryObserver observer = QueryObserverHolder
   .setInstance(new QueryResultTrackingObserver());
 QueryService qs = null;
 try {
 observer = QueryObserverHolder.getInstance();
 assertTrue(QueryObserverHolder.hasObserver());
 assertTrue(observer instanceof QueryResultTrackingObserver);
 QueryResultTrackingObserver resultObserver = (QueryResultTrackingObserver) observer;
 assertFalse(resultObserver.isObjectSerialized());
 QueryObserverHolder.setInstance(oldObserver);
 return null;

代码示例来源:origin: io.snappydata/gemfire-hydra-tests

@Override
 public void run2() throws CacheException {
  class MyQueryObserver extends IndexTrackingQueryObserver {
   @Override
   public void startQuery(Query query) {
    Region pr = CacheFactory.getAnyInstance().getRegion(PartitionedRegionName1);
    Region KeyRegion = null;
    for (int i=0; i<7; i++) {
     KeyRegion = ((PartitionedRegion)pr).getBucketRegion(i/*key*/);
     if (KeyRegion != null)
     KeyRegion.destroyRegion();
    }
   }
  };
  QueryObserverHolder.setInstance(new MyQueryObserver());
 }
});

相关文章