All Downloads are FREE. Search and download functionalities are using the official Maven repository.

com.gemstone.gemfire.management.CacheServerMXBean Maven / Gradle / Ivy

The newest version!
/*
 * Copyright (c) 2010-2015 Pivotal Software, Inc. All rights reserved.
 *
 * Licensed under the Apache License, Version 2.0 (the "License"); you
 * may not use this file except in compliance with the License. You
 * may obtain a copy of the License at
 *
 * http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
 * implied. See the License for the specific language governing
 * permissions and limitations under the License. See accompanying
 * LICENSE file.
 */
package com.gemstone.gemfire.management;

import com.gemstone.gemfire.cache.server.CacheServer;

/**
 * MBean that provides access to information and management functionality for a
 * {@link CacheServer}.
 * 
 * Notification emitted are 
 * a)gemfire.distributedsystem.cacheserver.client.joined 
 * b)gemfire.distributedsystem.cacheserver.client.left 
 * c)gemfire.distributedsystem.cacheserver.client.crashed
 * 
 * @author rishim
 * @since 7.0
 * 
 */
public interface CacheServerMXBean {

  /**
   * Returns the port on which this CacheServer listens for clients.
   */
  public int getPort();

  /**
   * Returns a string representing the IP address or host name that this
   * CacheServer will listen on.
   */
  public String getBindAddress();
  
  /**
   * Returns the configured buffer size of the socket connection for this CacheServer.
   */
  public int getSocketBufferSize();

  /**
   * Returns the maximum amount of time between client pings. This value is used to determine the 
   * health of client's attached to the server.
   */
  public int getMaximumTimeBetweenPings();
  
  /**
   * Returns the maximum allowed client connections.
   */
  public int getMaxConnections();

  /**
   * Returns the maxium number of threads allowed in this CacheServer to service client requests.
   */
  public int getMaxThreads();
  
  /**
   * Returns the maximum number of messages that can be enqueued in a client-queue.
   */
  public int getMaximumMessageCount();

  /**
   * Returns the time (in seconds) after which a message in the client queue will expire.
   */
  public int getMessageTimeToLive();
  
  /**
   * Returns the frequency (in milliseconds) to poll the load probe on this CacheServer.
   */
  public long getLoadPollInterval();
  
  /**
   * Returns the name or IP address to pass to the client as the location
   * where the server is listening. When the server connects to the locator it tells
   * the locator the host and port where it is listening for client connections. If
   * the host the server uses by default is one that the client can’t translate into
   * an IP address, the client will have no route to the server’s host and won’t be
   * able to find the server. For this situation, you must supply the server’s
   * alternate hostname for the locator to pass to the client.
   */
  public String getHostNameForClients();
  
  /**
   * Returns the load probe for this CacheServer.
   */
  public ServerLoadData fetchLoadProbe();

  /**
   * Returns whether or not this CacheServer is running.
   * 
   * @return True of the server is running, false otherwise.
   */
  public boolean isRunning();

  /**
   * Returns the capacity (in megabytes) of the client queue.
   */
  public int getCapacity();

  /**
   * Returns the eviction policy that is executed when the capacity of the client
   * queue is reached.
   */
  public String getEvictionPolicy();

  /**
   * Returns the name of the disk store that is used for persistence.
   */
  public String getDiskStoreName();

  /**
   * Returns the number of sockets accepted and used for client to server messaging.
   */
  public int getClientConnectionCount();
  
  /**
   * Returns the number of client virtual machines connected.
   */
  public int getCurrentClients();

  /**
   * Returns the average get request latency.
   */
  public long getGetRequestAvgLatency();

  /**
   * Returns the average put request latency.
   */
  public long getPutRequestAvgLatency();

  /**
   * Returns the total number of client connections that timed out and were
   * closed.
   */
  public int getTotalConnectionsTimedOut();

  /**
   * Returns the total number of client connection requests that failed.
   */
  public int getTotalFailedConnectionAttempts();

  /**
   * Returns the current number of connections waiting for a thread to start
   * processing their message.
   */
  public int getThreadQueueSize();

  /**
   * Returns the current number of threads handling a client connection.
   */
  public int getConnectionThreads();

  /**
   * Returns the load from client to server connections as reported by the load
   * probe installed in this server.
   */
  public double getConnectionLoad();

  /**
   * Returns the estimate of how much load is added for each new connection as
   * reported by the load probe installed in this server.
   */
  public double getLoadPerConnection();

  /**
   * Returns the load from queues as reported by the load probe installed in
   * this server.
   */
  public double getQueueLoad();

  /**
   * Returns the estimate of how much load is added for each new queue as
   * reported by the load probe installed in this server.
   */
  public double getLoadPerQueue();


  /**
   * Returns the rate of get requests.
   */
  public float getGetRequestRate();

  /**
   * Returns the rate of put requests.
   */
  public float getPutRequestRate();
  
  /**
   * Returns the total number of bytes sent to clients.
   */
  public long getTotalSentBytes();

  /**
   * Returns the total number of bytes received from clients.
   */
  public long getTotalReceivedBytes();
  
  /**
   * Returns the number of cache client notification requests.
   */
  public int getNumClientNotificationRequests();

  /**
   * Returns the average latency for processing client notifications.
   */
  public long getClientNotificationAvgLatency();

  /**
   * Returns the rate of client notifications.
   */
  public float getClientNotificationRate();

  /**
   * Returns the number of registered CQs.
   */
  public long getRegisteredCQCount();

  /**
   * Returns the number of active (currently executing) CQs.
   */
  public long getActiveCQCount();

  /**
   * Returns the rate of queries.
   */
  public float getQueryRequestRate();

  /**
   * Returns the total number of indexes in use by the member.
   */
  public int getIndexCount();

  /**
   * Returns a list of names for all indexes.
   */
  public String[] getIndexList();

  /**
   * Returns the total time spent updating indexes due to changes in the data.
   */
  public long getTotalIndexMaintenanceTime();

  /**
   * Remove an index.
   * 
   * @param indexName
   *          Name of the index to be removed.
   */
  public void removeIndex(String indexName) throws Exception;

  /**
   * Returns a list of names for all registered CQs.
   */
  public String[] getContinuousQueryList();

  /**
   * Execute an ad-hoc CQ on the server
   * 
   * @param queryName
   *          Name of the CQ to execute.
   */
  public void executeContinuousQuery(String queryName) throws Exception;

  /**
   * Stop (pause) a CQ from executing
   * 
   * @param queryName
   *          Name of the CQ to stop.
   */
  public void stopContinuousQuery(String queryName) throws Exception;

  /**
   * Unregister all CQs from a region
   * 
   * @param regionName
   *          Name of the region from which to remove CQs.
   */
  public void closeAllContinuousQuery(String regionName) throws Exception;
  
  
  /**
   * Unregister a CQ
   * 
   * @param queryName
   *          Name of the CQ to unregister.
   */
  public void closeContinuousQuery(String queryName) throws Exception;


  /**
   * Returns a list of IDs for all connected clients.
   * 
   * @return A list of IDs or a length 0 array if no clients are registered.
   */
  public String[] getClientIds() throws Exception;

  /**
   * Returns health and statistic information for a client. Information is only
   * available for clients which have set a "StatisticsInterval".
   * 
   * @param clientId
   *          ID of the client for which to retrieve information.
   */
  public ClientHealthStatus showClientStats(String clientId) throws Exception;
  
  /**
   * Returns the number of clients who have existing subscriptions.
   */
  public int getNumSubscriptions();

  /**
   * Returns health and statistic information for all clients. Information is
   * only available for clients which have set a "StatisticsInterval".
   */
  public ClientHealthStatus[] showAllClientStats() throws Exception;

}




© 2015 - 2024 Weber Informatics LLC | Privacy Policy