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

com.gemstone.gemfire.admin.jmx.Agent Maven / Gradle / Ivy

/*
 * 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.admin.jmx;

import com.gemstone.gemfire.LogWriter;
import com.gemstone.gemfire.admin.AdminException;
import com.gemstone.gemfire.admin.AdminDistributedSystem;

//import javax.management.MBeanException;
import javax.management.MalformedObjectNameException;
import javax.management.MBeanServer;
import javax.management.ObjectName;

/**
 * A server component that provides administration-related information
 * about a GemFire distributed system via the Java Management
 * Extension JMX API.  When a JMX Agent is created, it
 * registers an MBean that represents {@link #getObjectName itself}. 
 * Click here for a
 * description of the attributes, operations, and notifications of
 * this and other GemFire JMX MBeans.
 *
 * 

* * The GemFire JMX Agent currently supports three JMX "adapters" * through which clients can access the GemFire management beans: an * "HTTP adapter" that allows a web browser client to view and modify * management beans via HTTP or HTTPS, an "RMI adapter" that allows * Java programs to access management beans using Remote Method * Invocation, and an "SNMP adapter" that allows SNMP to access * management beans. Information about configuring these adapters can * be found in {@link AgentConfig}. * *

* * In most distributed caching architectures, JMX administration * agents are run in their own processes. A stand-alone JMX agent is * managed using the agent command line utility: * *

 * $ agent start
 * 
* * This class allows a GemFire application VM to host a JMX management * agent. Architectures with "co-located" JMX agents reduce the * number of overall proceses required. However, hosting a JMX * management agent in the same VM as a GemFire application is not * generally recommended because it adds extra burden to an * application VM and in the event that the application VM exits the * administration information will no longer be available. * * @see AgentConfig * @see AgentFactory * * @author David Whitlock * @since 4.0 * @deprecated as of 7.0 use the {@link com.gemstone.gemfire.management} package instead */ public interface Agent { /** Lookup name for RMIConnector when rmi-registry-enabled is true */ public static final String JNDI_NAME = "/jmxconnector"; ////////////////////// Instance Methods ////////////////////// /** * Returns the configuration object for this JMX Agent. */ public AgentConfig getConfig(); /** * Starts this JMX Agent and its associated adapters. This method * does not {@linkplain #connectToSystem connect} to the distributed * system. */ public void start(); /** * Returns the JMX MBeanServer with which GemFire * MBeans are registered or null if this * Agent is not started. */ public MBeanServer getMBeanServer(); /** * {@linkplain #disconnectFromSystem Disconnects} from the * distributed system and stops this JMX Agent and all of its * associated adapters. */ public void stop(); /** * Returns the ObjectName of the JMX management bean * that represents this agent or null if this * Agent has not been started. */ public ObjectName getObjectName(); /** * Returns whether or not this JMX Agent is currently * providing information about a distributed system. */ public boolean isConnected(); /** * Connects to the distributed system described by this Agent's * configuration. * * @return The object name of the system that the Agent * is now connected to. */ public ObjectName connectToSystem() throws AdminException, MalformedObjectNameException; /** * Returns the AdminDistributedSystem that underlies * this JMX Agent or null is this agent is * not {@linkplain #isConnected connected}. */ public AdminDistributedSystem getDistributedSystem(); /** * Returns the object name of the JMX MBean that represents the * distributed system administered by this Agent or * null if this Agent has not {@linkplain * #connectToSystem connected} to the distributed system. */ public ObjectName manageDistributedSystem() throws MalformedObjectNameException; /** * Disconnects this agent from the distributed system and * unregisters the management beans that provided information about * it. However, this agent's adapters are not stopped and it is * possible to reconfigure this Agent to connect to * another distributed system. */ public void disconnectFromSystem(); /** * Saves the configuration for this Agent to the file * specified by @link AgentConfig#getPropertyFile. */ public void saveProperties(); /** * Returns the LogWriter used for logging information. */ public LogWriter getLogWriter(); }




© 2015 - 2024 Weber Informatics LLC | Privacy Policy