Пример #1
0
/** @exclude */
@decaf.Ignore
class Queries extends NotificationEmitterMBean implements QueriesMBean {

  private final TimedReading _classIndexScans = TimedReading.newPerSecond();
  private final TimedReading _queries = TimedReading.newPerSecond();
  private final AveragingTimedReading _queryExecutionTime = new AveragingTimedReading();

  public Queries(ObjectContainer db, Class<?> type) throws JMException {
    super(db, type);
  }

  private static String classIndexScanNotificationType() {
    return LoadedFromClassIndex.class.getName();
  }

  public double getClassIndexScansPerSecond() {
    return _classIndexScans.read();
  }

  public double getAverageQueryExecutionTime() {
    return _queryExecutionTime.read();
  }

  public double getQueriesPerSecond() {
    return _queries.read();
  }

  public MBeanNotificationInfo[] getNotificationInfo() {
    return new MBeanNotificationInfo[] {
      new MBeanNotificationInfo(
          new String[] {classIndexScanNotificationType()},
          Notification.class.getName(),
          "Notification about class index scans."),
    };
  }

  public void notifyClassIndexScan(LoadedFromClassIndex d) {

    _classIndexScans.increment();

    sendNotification(classIndexScanNotificationType(), d.problem(), d.reason());
  }

  public void notifyQueryStarted() {
    _queries.increment();

    _queryExecutionTime.eventStarted();
  }

  public void notifyQueryFinished() {

    _queryExecutionTime.eventFinished();
  }
}
Пример #2
0
  public void notifyQueryStarted() {
    _queries.increment();

    _queryExecutionTime.eventStarted();
  }
Пример #3
0
  public void notifyClassIndexScan(LoadedFromClassIndex d) {

    _classIndexScans.increment();

    sendNotification(classIndexScanNotificationType(), d.problem(), d.reason());
  }
Пример #4
0
 public double getQueriesPerSecond() {
   return _queries.read();
 }
Пример #5
0
 public double getClassIndexScansPerSecond() {
   return _classIndexScans.read();
 }