blob: 768912cfc5bc2ba87e98bfb969c6dbb31fd65c89 [file] [log] [blame]
package org.quickserver.net.server;
import java.util.Iterator;
import java.util.logging.Level;
import java.util.logging.Logger;
import org.apache.commons.pool.ObjectPool;
import org.quickserver.net.server.ClientHandler;
import org.quickserver.net.server.ClientIdentifier;
import org.quickserver.net.server.QuickServer;
import org.quickserver.util.pool.PoolHelper;
import org.quickserver.util.pool.QSObjectPool;
import org.quickserver.util.pool.thread.ClientThread;
/**
*
* @author Akshathkumar Shetty
*/
public class QuickServerDebugHelper {
public static void logInfoServer(Logger logger, QuickServer quickserver) {
logger.info("+OK info follows");
logger.info(""+quickserver);
logger.info("Running : "+!quickserver.isClosed());
logger.info("PID : "+QuickServer.getPID());
logger.info("Max Client Allowed : "+quickserver.getMaxConnection() );
logger.info("No Client Connected : "+quickserver.getClientCount() );
if(quickserver.isRunningSecure()==true) {
logger.info("Running in secure mode : "+
quickserver.getSecure().getProtocol() );
} else {
logger.info("Running in non-secure mode");
}
logger.info("Server Mode : "+quickserver.getBasicConfig().getServerMode());
logger.info("QuickServer v : "+QuickServer.getVersion());
logger.info("Uptime : "+quickserver.getUptime());
logger.info(".");
}
public static void logClientHandlerPoolInfo(Logger logger, QuickServer quickserver) {
ObjectPool objectPool = quickserver.getClientHandlerPool();
logger.log(Level.INFO, "logClientHandlerPoolInfo : {0}", quickserver);
if(PoolHelper.isPoolOpen(objectPool)==true) {
if(QSObjectPool.class.isInstance(objectPool)==false) {
logger.info("-ERR System Error! Bad pool got. Not a QSObjectPool!");
}
ClientIdentifier clientIdentifier = quickserver.getClientIdentifier();
ClientHandler foundClientHandler = null;
synchronized(clientIdentifier.getObjectToSynchronize()) {
Iterator iterator = clientIdentifier.findAllClient();
logger.info("+OK ClientHandlerPool Info follows");
while(iterator.hasNext()) {
foundClientHandler = (ClientHandler) iterator.next();
logger.info(foundClientHandler.info());
}
}
logger.info(".");
} else {
logger.info("-ERR ClientHandlerPool Pool Closed");
}
}
public static void logClientThreadPoolInfo(Logger logger, QuickServer quickserver) {
logger.log(Level.INFO, "logClientThreadPoolInfo : {0}", quickserver);
if(PoolHelper.isPoolOpen(quickserver.getClientPool().getObjectPool())==true) {
logger.info("NumActive: "+quickserver.getClientPool().getNumActive());
logger.info("NumIdle: "+quickserver.getClientPool().getNumIdle());
} else {
logger.info("ClientThreadPool is closed");
}
if(PoolHelper.isPoolOpen(quickserver.getClientPool().getObjectPool())==true) {
logger.info("+OK ClientThread Pool Dump follows");
ClientThread ct = null;
synchronized(quickserver.getClientPool().getObjectToSynchronize()) {
Iterator iterator = quickserver.getClientPool().getAllClientThread();
while(iterator.hasNext()) {
ct = (ClientThread)iterator.next();
logger.info(ct.toString());
}
}
logger.info(".");
} else {
logger.info("-ERR ClientThread Pool Closed");
}
}
public static void logAllPoolInfo(Logger logger, QuickServer quickserver) {
logger.info("+OK info follows");
StringBuilder temp = new StringBuilder();
temp.setLength(0);//used:idsle
if(PoolHelper.isPoolOpen(quickserver.getClientPool().getObjectPool())==true) {
temp.append("Client Thread Pool - ");
temp.append("Num Active: ");
temp.append(quickserver.getClientPool().getNumActive());
temp.append(", Num Idle: ");
temp.append(quickserver.getClientPool().getNumIdle());
temp.append(", Max Idle: ");
temp.append(quickserver.getClientPool().getPoolConfig().getMaxIdle());
temp.append(", Max Active: ");
temp.append(quickserver.getClientPool().getPoolConfig().getMaxActive());
} else {
temp.append("Byte Buffer Pool - Closed");
}
logger.info(temp.toString());
temp.setLength(0);
if(PoolHelper.isPoolOpen(quickserver.getClientHandlerPool())==true) {
temp.append("Client Handler Pool - ");
temp.append("Num Active: ");
temp.append(quickserver.getClientHandlerPool().getNumActive());
temp.append(", Num Idle: ");
temp.append(quickserver.getClientHandlerPool().getNumIdle());
temp.append(", Max Idle: ");
temp.append(quickserver.getBasicConfig().getObjectPoolConfig().getClientHandlerObjectPoolConfig().getMaxIdle());
temp.append(", Max Active: ");
temp.append(quickserver.getBasicConfig().getObjectPoolConfig().getClientHandlerObjectPoolConfig().getMaxActive());
} else {
temp.append("Client Handler Pool - Closed");
}
logger.info(temp.toString());
temp.setLength(0);
if(quickserver.getByteBufferPool()!=null) {
if(PoolHelper.isPoolOpen(quickserver.getByteBufferPool())==true) {
temp.append("ByteBuffer Pool - ");
temp.append("Num Active: ");
temp.append(quickserver.getByteBufferPool().getNumActive());
temp.append(", Num Idle: ");
temp.append(quickserver.getByteBufferPool().getNumIdle());
temp.append(", Max Idle: ");
temp.append(quickserver.getBasicConfig().getObjectPoolConfig().getByteBufferObjectPoolConfig().getMaxIdle());
temp.append(", Max Active: ");
temp.append(quickserver.getBasicConfig().getObjectPoolConfig().getByteBufferObjectPoolConfig().getMaxActive());
} else {
temp.append("Byte Buffer Pool - Closed");
}
} else {
temp.append("Byte Buffer Pool - Not Used");
}
logger.info(temp.toString());
temp.setLength(0);
if(quickserver.getClientDataPool()!=null) {
if(PoolHelper.isPoolOpen(quickserver.getClientDataPool())==true) {
temp.append("Client Data Pool - ");
temp.append("Num Active: ");
temp.append(quickserver.getClientDataPool().getNumActive());
temp.append(", Num Idle: ");
temp.append(quickserver.getClientDataPool().getNumIdle());
temp.append(", Max Idle: ");
temp.append(quickserver.getBasicConfig().getObjectPoolConfig().getClientDataObjectPoolConfig().getMaxIdle());
temp.append(", Max Active: ");
temp.append(quickserver.getBasicConfig().getObjectPoolConfig().getClientDataObjectPoolConfig().getMaxActive());
} else {
temp.append("Client Data Pool - Closed");
}
} else {
temp.append("Client Data Pool - Not Used");
}
logger.info(temp.toString());
temp.setLength(0);
logger.info(".");
}
}