📄 commandhandler.java
字号:
shell.stopShell();
} catch(Exception err) {
logger.warning("Error stoping shell: "+err);
}
}
handler.sendClientMsg("+OK Done");
} catch (AppException e) {
handler.sendClientMsg("-ERR "+e);
}
return;
} else if(cmd.equals("version")) {
handler.sendClientMsg("+OK "+QuickServer.getVersion());
return;
} else if(cmd.equals("kill") || cmd.equals("exit")) /*v1.3,v1.3.2*/{
StringBuffer errBuf = new StringBuffer();
QuickServer controlServer =
(QuickServer) handler.getServer().getStoreObjects()[0];
int exitCode = 0;
if(param.length!=0) {
try {
exitCode = Integer.parseInt(param[0]);
} catch(Exception nfe) {/*ignore*/}
}
try {
if(controlServer!=null && controlServer.isClosed()==false) {
try {
controlServer.stopServer();
} catch(AppException ae) {
errBuf.append(ae.toString());
}
}
if(handler.getServer()!=null && handler.getServer().isClosed()==false) {
try {
handler.getServer().stopServer();
} catch(AppException ae) {
errBuf.append(ae.toString());
}
}
QSAdminShell shell = QSAdminShell.getInstance(null, null);
if(shell!=null) {
try {
shell.stopShell();
} catch(Exception err) {
errBuf.append(err.toString());
}
}
if(errBuf.length()==0)
handler.sendClientMsg("+OK Done");
else
handler.sendClientMsg("+OK Done, Errors: "+errBuf.toString());
} catch (Exception e) {
handler.sendClientMsg("-ERR Exception : "+e+"\r\n"+errBuf.toString());
if(exitCode==0) exitCode = 1;
} finally {
try {
if(controlServer!=null)
controlServer.closeAllPools();
if(handler.getServer()!=null)
handler.getServer().closeAllPools();
} catch(Exception er) {
logger.warning("Error closing pools: "+er);
}
System.exit(exitCode);
}
return;
} else if(cmd.equals("memoryinfo")) { /*v1.3.2*/
//Padding : Total:Used:Max
float totalMemory = (float) runtime.totalMemory();
float usedMemory = totalMemory - (float) runtime.freeMemory();
float maxMemory = (float) runtime.maxMemory();
handler.sendClientMsg("+OK "+totalMemory+":"+usedMemory+":"+maxMemory);
return;
} else if(cmd.equals("systeminfo")) { /*v1.4.5*/
handler.sendClientMsg("+OK info follows");
handler.sendClientMsg(MyString.getSystemInfo(target.getVersion()));
handler.sendClientMsg(".");
return;
} else if(param.length==0) {
handler.sendClientMsg("-ERR Bad Command or No Param : ->"+cmd+"<-");
return;
}
if(cmd.equals("start")) {
try {
target.startServer();
handler.sendClientMsg("+OK Server Started");
} catch (AppException e) {
handler.sendClientMsg("-ERR "+e);
}
return;
} else if(cmd.equals("stop")) {
try {
target.stopServer();
handler.sendClientMsg("+OK Server Stopped");
} catch (AppException e) {
handler.sendClientMsg("-ERR "+e);
}
return;
} else if(cmd.equals("restart")) {
try {
target.stopServer();
target.startServer();
handler.sendClientMsg("+OK Server Restarted");
} catch (AppException e) {
handler.sendClientMsg("-ERR "+e);
}
return;
} else if(cmd.equals("info")) {
handler.sendClientMsg("+OK info follows");
handler.sendClientMsg(""+target);
handler.sendClientMsg("Running : "+!target.isClosed());
handler.sendClientMsg("Max Client Allowed : "+target.getMaxConnection() );
handler.sendClientMsg("No Client Connected : "+target.getClientCount() );
if(target.isRunningSecure()==true) {
handler.sendClientMsg("Running in secure mode : "+
target.getSecure().getProtocol() );
} else {
handler.sendClientMsg("Running in non-secure mode");
}
handler.sendClientMsg("Server Mode : "+target.getBasicConfig().getServerMode());
handler.sendClientMsg(".");
return;
} else if(cmd.equals("noclient")) {
handler.sendClientMsg("+OK "+target.getClientCount() );
return;
} else if(cmd.equals("running")) {
handler.sendClientMsg("+OK "+!target.isClosed() );
return;
} else if(cmd.equals("suspendservice")) {
handler.sendClientMsg("+OK "+target.suspendService() );
return;
} else if(cmd.equals("resumeservice")) {
handler.sendClientMsg("+OK "+target.resumeService() );
return;
} else if(cmd.equals("client-thread-pool-info")) /*v1.3.2*/{
temp.setLength(0);//used:idle
if(PoolHelper.isPoolOpen(target.getClientPool().getObjectPool())==true) {
temp.append(target.getClientPool().getNumActive());
temp.append(':');
temp.append(target.getClientPool().getNumIdle());
} else {
temp.append("0:0");
}
handler.sendClientMsg("+OK "+temp.toString() );
return;
} else if(cmd.equals("client-thread-pool-dump")) /*v1.4.5*/{
if(PoolHelper.isPoolOpen(target.getClientPool().getObjectPool())==true) {
handler.sendClientMsg("+OK info follows");
ClientThread ct = null;
synchronized(target.getClientPool().getObjectToSynchronize()) {
Iterator iterator = target.getClientPool().getAllClientThread();
while(iterator.hasNext()) {
ct = (ClientThread)iterator.next();
handler.sendClientMsg(ct.toString());
}
}
handler.sendClientMsg(".");
} else {
handler.sendClientMsg("-ERR Pool Closed");
}
return;
} else if(cmd.equals("client-handler-pool-dump")) /*v1.4.6*/{
ObjectPool objectPool = target.getClientHandlerPool();
if(PoolHelper.isPoolOpen(objectPool)==true) {
if(QSObjectPool.class.isInstance(objectPool)==false) {
handler.sendClientMsg("-ERR System Error!");
}
ClientIdentifier clientIdentifier = target.getClientIdentifier();
ClientHandler foundClientHandler = null;
synchronized(clientIdentifier.getObjectToSynchronize()) {
Iterator iterator = clientIdentifier.findAllClient();
handler.sendClientMsg("+OK info follows");
while(iterator.hasNext()) {
foundClientHandler = (ClientHandler) iterator.next();
handler.sendClientMsg(foundClientHandler.info());
}
}
handler.sendClientMsg(".");
} else {
handler.sendClientMsg("-ERR Pool Closed");
}
return;
} else if(cmd.equals("client-data-pool-info")) /*v1.3.2*/{
temp.setLength(0);//used:idle
if(target.getClientDataPool()!=null) {
if(PoolHelper.isPoolOpen(target.getClientDataPool())==true) {
temp.append(target.getClientDataPool().getNumActive());
temp.append(':');
temp.append(target.getClientDataPool().getNumIdle());
handler.sendClientMsg("+OK "+temp.toString() );
} else {
handler.sendClientMsg("-ERR Client Data Pool Closed");
}
} else {
handler.sendClientMsg("-ERR No Client Data Pool");
}
return;
} if(cmd.equals("byte-buffer-pool-info")) /*v1.4.6*/{
temp.setLength(0);//used:idle
if(target.getByteBufferPool()!=null) {
if(PoolHelper.isPoolOpen(target.getByteBufferPool())==true) {
temp.append(target.getByteBufferPool().getNumActive());
temp.append(':');
temp.append(target.getByteBufferPool().getNumIdle());
handler.sendClientMsg("+OK "+temp.toString() );
} else {
handler.sendClientMsg("-ERR ByteBuffer Pool Closed");
}
} else {
handler.sendClientMsg("-ERR No ByteBuffer Pool");
}
return;
} else if(cmd.equals("all-pool-info")) /*v1.4.5*/{
handler.sendClientMsg("+OK info follows");
temp.setLength(0);//used:idle
if(PoolHelper.isPoolOpen(target.getClientPool().getObjectPool())==true) {
temp.append("Client Thread Pool - ");
temp.append("Num Active: ");
temp.append(target.getClientPool().getNumActive());
temp.append(", Num Idle: ");
temp.append(target.getClientPool().getNumIdle());
temp.append(", Max Idle: ");
temp.append(target.getClientPool().getPoolConfig().getMaxIdle());
temp.append(", Max Active: ");
temp.append(target.getClientPool().getPoolConfig().getMaxActive());
} else {
temp.append("Byte Buffer Pool - Closed");
}
handler.sendClientMsg(temp.toString());
temp.setLength(0);
if(PoolHelper.isPoolOpen(target.getClientHandlerPool())==true) {
temp.append("Client Handler Pool - ");
temp.append("Num Active: ");
temp.append(target.getClientHandlerPool().getNumActive());
temp.append(", Num Idle: ");
temp.append(target.getClientHandlerPool().getNumIdle());
temp.append(", Max Idle: ");
temp.append(target.getBasicConfig().getObjectPoolConfig().getClientHandlerObjectPoolConfig().getMaxIdle());
temp.append(", Max Active: ");
temp.append(target.getBasicConfig().getObjectPoolConfig().getClientHandlerObjectPoolConfig().getMaxActive());
} else {
temp.append("Client Handler Pool - Closed");
}
handler.sendClientMsg(temp.toString());
temp.setLength(0);
if(target.getByteBufferPool()!=null) {
if(PoolHelper.isPoolOpen(target.getByteBufferPool())==true) {
temp.append("ByteBuffer Pool - ");
temp.append("Num Active: ");
temp.append(target.getByteBufferPool().getNumActive());
temp.append(", Num Idle: ");
temp.append(target.getByteBufferPool().getNumIdle());
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -