serveradmin.java
来自「RESIN 3.2 最新源码」· Java 代码 · 共 359 行
JAVA
359 行
/* * Copyright (c) 1998-2008 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.server.cluster;import com.caucho.management.server.AbstractEmitterObject;import com.caucho.management.server.ClusterMXBean;import com.caucho.management.server.EnvironmentMXBean;import com.caucho.management.server.PortMXBean;import com.caucho.management.server.ServerMXBean;import com.caucho.management.server.ThreadPoolMXBean;import com.caucho.server.port.Port;import com.caucho.server.util.CauchoSystem;import com.caucho.util.Alarm;import java.util.Collection;import java.util.Date;public class ServerAdmin extends AbstractEmitterObject implements ServerMXBean{ private Server _server; ServerAdmin(Server server) { _server = server; registerSelf(); } public String getName() { return null; } public String getType() { return "Server"; } public String getId() { return _server.getServerId(); } // // Hierarchy // /** * Returns the cluster owning this server */ public ClusterMXBean getCluster() { return _server.getCluster().getAdmin(); } public EnvironmentMXBean getEnvironment() { return _server.getCluster().getEnvironmentAdmin(); } /** * Returns the array of ports. */ public PortMXBean []getPorts() { Collection<Port> portList = _server.getPorts(); PortMXBean []ports = new PortMXBean[portList.size()]; int i = 0; for (Port port : portList) { ports[i++] = port.getAdmin(); } return ports; } /** * Returns the server's thread pool administration */ public ThreadPoolMXBean getThreadPool() { return _server.getCluster().getResin().getThreadPoolAdmin(); } /** * Returns the cluster port */ public PortMXBean getClusterPort() { return null; } // // Configuration attributes // /** * Returns true if detailed statistics are being kept. */ public boolean isDetailedStatistics() { return false; } /** * Returns true if a {@link com.caucho.server.port.AbstractSelectManager} is enabled and active */ public boolean isSelectManagerEnabled() { return _server.isSelectManagerEnabled(); } /** * The maximum time to spend waiting for the server to stop gracefully */ public long getShutdownWaitMax() { return _server.getShutdownWaitMax(); } // // state // /** * The current lifecycle state. */ public String getState() { return _server.getState(); } /** * Returns the current time according to the server. */ public Date getCurrentTime() { return new Date(Alarm.getExactTime()); } /** * Returns the last start time. */ public Date getStartTime() { return new Date(_server.getStartTime()); } // // statistics // /** * Returns the current number of threads that are servicing requests. */ public int getThreadActiveCount() { int activeThreadCount = -1; for (Port port : _server.getPorts()) { if (port.getActiveThreadCount() >= 0) { if (activeThreadCount == -1) activeThreadCount = 0; activeThreadCount += port.getActiveThreadCount(); } } return activeThreadCount; } /** * Returns the current number of connections that are in the keepalive * state and are using a thread to maintain the connection. */ public int getThreadKeepaliveCount() { int keepaliveThreadCount = -1; for (Port port : _server.getPorts()) { if (port.getKeepaliveConnectionCount() >= 0) { if (keepaliveThreadCount == -1) keepaliveThreadCount = 0; keepaliveThreadCount += port.getKeepaliveConnectionCount(); } } return keepaliveThreadCount; } /** * Returns the current number of connections that are in the keepalive * state and are using select to maintain the connection. */ public int getSelectKeepaliveCount() { return _server.getKeepaliveSelectCount(); } /** * Returns the total number of requests serviced by the server * since it started. */ public long getRequestCountTotal() { long lifetimeRequestCount = 0; for (Port port : _server.getPorts()) lifetimeRequestCount += port.getLifetimeRequestCount(); return lifetimeRequestCount; } /** * Returns the number of requests that have ended up in the keepalive state * for this server in its lifetime. */ public long getKeepaliveCountTotal() { return -1; } /** * The total number of connections that have terminated with * {@link com.caucho.vfs.ClientDisconnectException}. */ public long getClientDisconnectCountTotal() { long lifetimeClientDisconnectCount = 0; for (Port port : _server.getPorts()) lifetimeClientDisconnectCount += port.getLifetimeClientDisconnectCount(); return lifetimeClientDisconnectCount; } /** * Returns the total duration in milliseconds that requests serviced by * this server have taken. */ public long getRequestTimeTotal() { return -1; } /** * Returns the total number of bytes that requests serviced by this * server have read. */ public long getRequestReadBytesTotal() { return -1; } /** * Returns the total number of bytes that requests serviced by this * server have written. */ public long getRequestWriteBytesTotal() { return -1; } /** * Returns the invocation cache hit count. */ public long getInvocationCacheHitCountTotal() { return _server.getInvocationCacheHitCount(); } /** * Returns the invocation cache miss count. */ public long getInvocationCacheMissCountTotal() { return _server.getInvocationCacheMissCount(); } /** * Returns the current total amount of memory available for the JVM, in bytes. */ public long getRuntimeMemory() { if (Alarm.isTest()) return 666; else return Runtime.getRuntime().totalMemory(); } /** * Returns the current free amount of memory available for the JVM, in bytes. */ public long getRuntimeMemoryFree() { if (Alarm.isTest()) return 666; else return Runtime.getRuntime().freeMemory(); } /** * Returns the CPU load average. */ public double getCpuLoadAvg() { try { if (Alarm.isTest()) return 0; else return CauchoSystem.getLoadAvg(); } catch (Exception e) { return 0; } } // // Operations // /** * Restart this Resin server. */ public void restart() { _server.destroy(); }}
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?