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

com.caucho.management.server.ClusterServerMXBean Maven / Gradle / Ivy

/*
 * Copyright (c) 1998-2018 Caucho Technology -- all rights reserved
 *
 * This file is part of Resin(R) Open Source
 *
 * Each copy or derived work must preserve the copyright notice and this
 * notice unmodified.
 *
 * Resin Open Source is free software; you can redistribute it and/or modify
 * it under the terms of the GNU General Public License as published by
 * the Free Software Foundation; either version 2 of the License, or
 * (at your option) any later version.
 *
 * Resin Open Source is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE, or any warranty
 * of NON-INFRINGEMENT.  See the GNU General Public License for more
 * details.
 *
 * You should have received a copy of the GNU General Public License
 * along with Resin Open Source; if not, write to the
 *
 *   Free Software Foundation, Inc.
 *   59 Temple Place, Suite 330
 *   Boston, MA 02111-1307  USA
 *
 * @author Scott Ferguson
 */

package com.caucho.management.server;

import com.caucho.jmx.Description;
import com.caucho.jmx.Units;

import java.util.Date;

/**
 * A client-view of a cluster's server.  The load balancer and
 * persistent store will use the ClusterServer to communicate to
 * other servers in the cluster.
 *
 * The JMX name looks like:
 * 
 *   resin:type=ClusterServer,name=web-a
 * 
*/ @Description("Client-view of a cluster's server, i.e. a target server with which this instance can communicate") public interface ClusterServerMXBean extends ManagedObjectMXBean { /** * The containing cluster. */ @Description("The configured Cluster which contains the server") public ClusterMXBean getCluster(); /** * The cluster index of the server. */ @Description("The configured index of this server in the cluster, used for distributed objects.") public int getClusterIndex(); /** * Returns the ip address or host name of the server. */ @Description("The configured IP address or host name of the server") public String getAddress(); /** * Returns the resin/admin port number of the server. */ @Description("The configured port number of the target server") public int getPort(); /** * Returns true if this is a dynamic server */ @Description("Returns true for a dynamic server") public boolean isDynamicServer(); /** * Returns true if this is a triad server */ @Description("Returns true for a triad server") public boolean isTriadServer(); /** * Returns true for the server's own ClusterServer */ @Description("Returns true for the server's own ClusterServer") public boolean isSelfServer(); /** * The timeout in milliseconds for connecting to the server. */ @Description("The configured timeout for a client connect to the server") @Units("milliseconds") public long getConnectTimeout(); /** * The minimum number of connections for green load balancing. */ @Description("The minimum connections for green load balancing") public int getConnectionMin(); /** * Returns the timeout for assuming a target server remains unavailable once * a connection attempt fails. When the timeout period elapses another attempt * is made to connect to the target server */ @Description("The configured timeout for assuming a target server remains" + " unavailable once a connection attempt fails." + " When the timeout period elapses another" + " attempt is made to connect to the target server") @Units("milliseconds") public long getRecoverTime(); /** * Returns the timeout for an idle socket that is connected to the target * server. If the socket is not used within the timeout period the idle * connection is closed. */ @Description("The configured timeout for an idle socket that is connected" + " to the target server. If the socket is not" + " used within the timeout period the idle" + " connection is closed") @Units("milliseconds") public long getIdleTime(); /** * Returns the timeout to use for reads when communicating with * the target server. */ @Description("The configured timeout for a client read from the server") @Units("milliseconds") public long getSocketTimeout(); /** * Returns the warmup time in milliseconds. */ @Description("The configured warmup time in milliseconds for ramping up connections to the server") @Units("milliseconds") public long getWarmupTime(); /** * Returns the load-balancer weight, defaulting to 100. * */ @Description("The configured load balance weight. Weights over 100 will get more traffic and weights less than 100 will get less traffic") public int getWeight(); /** * Returns the timeout for an idle socket that is connected to the target * server. If the socket is not used within the timeout period the idle * connection is closed. */ @Description("The configured timeout for an idle socket that is connected" + " to the target server. If the socket is not" + " used within the timeout period the idle" + " connection is closed") @Units("milliseconds") public long getClusterIdleTime(); // // State attributes // /** * Returns the lifecycle state as a cluster server. */ @Description("The current lifecycle state of the client") public String getClusterState(); /** * Returns the load balance state. */ @Description("The current lifecycle state of the client") public String getLoadBalanceState(); // // Heartbeat // @Description("True if the heartbeat is active") public boolean isHeartbeatActive(); @Description("Returns the heartbeat state") public String getHeartbeatState(); @Description("The time of the last received heartbeat from this server") public Date getLastHeartbeatTime(); // // Statistics attributes // /** * Returns the number of connections actively being used to communicate with * the target server. */ @Description("The current number of connections actively being used" + " to communicate with the target server") public int getConnectionActiveCount(); /** * Returns the number of open but currently unused connections to the * target server. */ @Description("The current number of idle connections in the connection pool") public int getConnectionIdleCount(); /** * Returns the number of connections that have been made to the target server. */ @Description("The total number of new connections that have been made" + " to the target server") public long getConnectionNewCountTotal(); /** * Returns the number of connections that have been made to the target server. */ @Description("The total number of keepalive connections that have been made" + " to the target server") public long getConnectionKeepaliveCountTotal(); /** * Returns the number of connections which could not connect * to the target server. */ @Description("The total number of failed connections attempts" + " to the target server") public long getConnectionFailCountTotal(); /** * Returns the time of the last failure. */ @Description("The current last time a connection attempt failed") public Date getLastFailTime(); /** * Returns the number of connections which resulted in a busy * response. */ @Description("The total number of busy responses" + " from the target server") public long getConnectionBusyCountTotal(); /** * Returns the last time of the busy response. */ @Description("The current last time the target server refused a request because it was busy") public Date getLastBusyTime(); /** * Returns the server's load average. */ @Description("The load average of the backend server") public double getServerCpuLoadAvg(); /** * Returns the server's latency factory */ @Description("The latency factor of the backend server") public double getLatencyFactor(); // // hmux data // @Description("The number of messages in the outgoing message queue") public int getMessageQueueSize(); @Description("The number of messages in the outgoing large message queue") public int getMessageQueueLargeSize(); // // operations // /** * Enables connections to the target server. */ @Description("Enables connections to the target server") public void start(); /** * Enables connections to the target server. */ @Description("Enable only sticky-session requests to the target server") public void enableSessionOnly(); /** * Disables connections to the target server. */ @Description("Disables connections to the target server") public void stop(); /** * Remove this server as a dynamic server */ @Description("Remove this server as a dynamic server") public void removeDynamicServer(); /** * Returns true if a connection can be made to the target server. */ @Description("Tries to connect to the target server, returning true if successful") public boolean ping(); }




© 2015 - 2025 Weber Informatics LLC | Privacy Policy