📄 compieremonitor.java
字号:
* @param request request
* @param response response
* @throws ServletException
* @throws IOException
*/
private void createSummaryPage (HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException
{
WebDoc doc = WebDoc.create ("Compiere Server Monitor");
// log.info("ServletConfig=" + getServletConfig());
// CompiereServerGroup.get().dump();
// Body
body bb = doc.getBody();
// Message
if (m_message != null)
{
bb.addElement(new hr());
bb.addElement(m_message);
bb.addElement(new hr());
}
// Summary
table table = new table();
table.setBorder(1);
table.setCellSpacing(2);
table.setCellPadding(2);
//
tr line = new tr();
line.addElement(new th().addElement(Compiere.getName()));
line.addElement(new td().addElement(Compiere.getVersion()));
table.addElement(line);
line = new tr();
line.addElement(new th().addElement(Compiere.getImplementationVendor()));
line.addElement(new td().addElement(Compiere.getImplementationVersion()));
table.addElement(line);
line = new tr();
line.addElement(new th().addElement("Manager"));
line.addElement(new td().addElement(WebEnv.getCellContent(m_serverMgr.getDescription())));
table.addElement(line);
line = new tr();
line.addElement(new th().addElement("Start - Elapsed"));
line.addElement(new td().addElement(WebEnv.getCellContent(m_serverMgr.getStartTime())
+ " - " + TimeUtil.formatElapsed(m_serverMgr.getStartTime())));
table.addElement(line);
line = new tr();
line.addElement(new th().addElement("Servers"));
line.addElement(new td().addElement(WebEnv.getCellContent(m_serverMgr.getServerCount())));
table.addElement(line);
line = new tr();
line.addElement(new th().addElement("Last Updated"));
line.addElement(new td().addElement(new Timestamp(System.currentTimeMillis()).toString()));
table.addElement(line);
bb.addElement(table);
//
p para = new p();
a link = new a ("compiereMonitor?Action=Start_All", "Start All");
para.addElement(link);
para.addElement(" - ");
link = new a ("compiereMonitor?Action=Stop_All", "Stop All");
para.addElement(link);
para.addElement(" - ");
link = new a ("compiereMonitor", "Refresh");
para.addElement(link);
bb.addElement(para);
// ***** Server Links *****
bb.addElement(new hr());
para = new p();
CompiereServer[] servers = m_serverMgr.getAll();
for (int i = 0; i < servers.length; i++)
{
if (i > 0)
para.addElement(new br());
CompiereServer server = servers[i];
link = new a ("#" + server.getServerID(), server.getName());
para.addElement(link);
font status = null;
if (server.isAlive())
status = new font().setColor(HtmlColor.GREEN).addElement(" (Running)");
else
status = new font().setColor(HtmlColor.RED).addElement(" (Stopped)");
para.addElement(status);
}
bb.addElement(para);
// **** Log Management ****
createLogMgtPage(bb);
// ***** Server Details *****
for (int i = 0; i < servers.length; i++)
{
CompiereServer server = servers[i];
bb.addElement(new hr());
bb.addElement(new a().setName(server.getServerID()));
bb.addElement(new h2(server.getName()));
//
table = new table();
table.setBorder(1);
table.setCellSpacing(2);
table.setCellPadding(2);
// Status
line = new tr();
if (server.isAlive())
{
String msg = "Stop";
if (server.isInterrupted())
msg += " (Interrupted)";
link = new a ("compiereMonitor?Action=Stop_" + server.getServerID(), msg);
if (server.isSleeping())
{
line.addElement(new th().addElement("Sleeping"));
line.addElement(new td().addElement(link));
}
else
{
line.addElement(new th().addElement("Running"));
line.addElement(new td().addElement(link));
}
table.addElement(line);
line = new tr();
line.addElement(new th().addElement("Start - Elapsed"));
line.addElement(new td().addElement(WebEnv.getCellContent(server.getStartTime())
+ " - " + TimeUtil.formatElapsed(server.getStartTime())));
}
else
{
String msg = "Start";
if (server.isInterrupted())
msg += " (Interrupted)";
line.addElement(new th().addElement("Not Started"));
link = new a ("compiereMonitor?Action=Start_" + server.getServerID(), msg);
line.addElement(new td().addElement(link));
}
table.addElement(line);
//
line = new tr();
line.addElement(new th().addElement("Description"));
line.addElement(new td().addElement(WebEnv.getCellContent(server.getDescription())));
table.addElement(line);
//
line = new tr();
line.addElement(new th().addElement("Last Run"));
line.addElement(new td().addElement(WebEnv.getCellContent(server.getDateLastRun())));
table.addElement(line);
line = new tr();
line.addElement(new th().addElement("Info"));
line.addElement(new td().addElement(WebEnv.getCellContent(server.getServerInfo())));
table.addElement(line);
//
line = new tr();
line.addElement(new th().addElement("Next Run"));
td td = new td();
td.addElement(WebEnv.getCellContent(server.getDateNextRun(false)));
td.addElement(" - ");
link = new a ("compiereMonitor?RunNow=" + server.getServerID(), "(Run Now)");
td.addElement(link);
line.addElement(td);
table.addElement(line);
//
line = new tr();
line.addElement(new th().addElement("Statistics"));
line.addElement(new td().addElement(server.getStatistics()));
table.addElement(line);
//
// Add table to Body
bb.addElement(table);
link = new a ("#top", "Top");
bb.addElement(link);
bb.addElement(" - ");
link = new a ("compiereMonitor?Log=" + server.getServerID(), "Log");
bb.addElement(link);
bb.addElement(" - ");
link = new a ("compiereMonitor", "Refresh");
bb.addElement(link);
}
// fini
WebUtil.createResponse (request, response, this, null, doc, false);
} // createSummaryPage
/**
* Add Log Management to page
* @param bb body
*/
private void createLogMgtPage (body bb)
{
bb.addElement(new hr());
// Ini Parameters
table table = new table();
table.setBorder(1);
table.setCellSpacing(2);
table.setCellPadding(2);
//
Properties ctx = new Properties();
MSystem system = MSystem.get(ctx);
tr line = new tr();
line.addElement(new th().addElement(system.getDBAddress()));
line.addElement(new td().addElement(Ini.getCompiereHome()));
table.addElement(line);
// OS + Name
line = new tr();
String info = System.getProperty("os.name")
+ " " + System.getProperty("os.version");
String s = System.getProperty("sun.os.patch.level");
if (s != null && s.length() > 0)
info += " (" + s + ")";
line.addElement(new th().addElement(info));
info = system.getName();
if (system.getCustomPrefix() != null)
info += " (" + system.getCustomPrefix() + ")";
line.addElement(new td().addElement(info));
table.addElement(line);
// Java + email
line = new tr();
info = System.getProperty("java.vm.name")
+ " " + System.getProperty("java.vm.version");
line.addElement(new th().addElement(info));
line.addElement(new td().addElement(system.getUserName()));
table.addElement(line);
// DB + Instance
line = new tr();
CConnection cc = CConnection.get();
CompiereDatabase db = cc.getDatabase();
info = db.getDescription();
line.addElement(new th().addElement(info));
line.addElement(new td().addElement(cc.getConnectionURL()));
// line.addElement(new td().addElement(system.getDBInstance()));
table.addElement(line);
// Processors/Support
line = new tr();
line.addElement(new th().addElement("Processor/Support"));
line.addElement(new td().addElement(system.getNoProcessors() + "/" + system.getSupportUnits()));
table.addElement(line);
// Memory
line = new tr();
MemoryMXBean memory = ManagementFactory.getMemoryMXBean();
line.addElement(new th().addElement("VM Memory"));
line.addElement(new td().addElement(new CMemoryUsage(memory.getNonHeapMemoryUsage()).toString()));
table.addElement(line);
line = new tr();
line.addElement(new th().addElement("Heap Memory"));
line.addElement(new td().addElement(new CMemoryUsage(memory.getHeapMemoryUsage()).toString()));
table.addElement(line);
// Runtime
line = new tr();
RuntimeMXBean rt = ManagementFactory.getRuntimeMXBean();
line.addElement(new th().addElement("Runtime " + rt.getName()));
line.addElement(new td().addElement(TimeUtil.formatElapsed(rt.getUptime())));
table.addElement(line);
// Threads
line = new tr();
ThreadMXBean th = ManagementFactory.getThreadMXBean();
line.addElement(new th().addElement("Threads " + th.getThreadCount()));
line.addElement(new td().addElement("Peak=" + th.getPeakThreadCount()
+ ", Demons=" + th.getDaemonThreadCount()
+ ", Total=" + th.getTotalStartedThreadCount()));
table.addElement(line);
// Cache Reset
line = new tr();
line.addElement(new th().addElement(CacheMgt.get().toStringX()));
line.addElement(new td().addElement(new a ("compiereMonitor?CacheReset=Yes", "Reset Cache")));
table.addElement(line);
// Trace Level
line = new tr();
line.addElement(new th().addElement(new label("TraceLevel").addElement("Trace Log Level")));
form myForm = new form("compiereMonitor", form.METHOD_POST, form.ENC_DEFAULT);
// LogLevel Selection
option[] options = new option[CLogMgt.LEVELS.length];
for (int i = 0; i < options.length; i++)
{
options[i] = new option(CLogMgt.LEVELS[i].getName());
options[i].addElement(CLogMgt.LEVELS[i].getName());
if (CLogMgt.LEVELS[i] == CLogMgt.getLevel())
options[i].setSelected(true);
}
select sel = new select("TraceLevel", options);
myForm.addElement(sel);
myForm.addElement(new input(input.TYPE_SUBMIT, "Set", "Set"));
line.addElement(new td().addElement(myForm));
table.addElement(line);
//
line = new tr();
CLogFile fileHandler = CLogFile.get (true, null, false);
line.addElement(new th().addElement("Trace File"));
line.addElement(new td().addElement(new a ("compiereMonitor?Trace=" + fileHandler.getFileName(), "Current")));
table.addElement(line);
//
line = new tr();
line.addElement(new td().addElement(new a ("compiereMonitor?Trace=ROTATE", "Rotate Trace Log")));
line.addElement(new td().addElement(new a ("compiereMonitor?Trace=DELETE", "Delete all Trace Logs")));
table.addElement(line);
//
bb.addElement(table);
// List Log Files
p p = new p();
p.addElement(new b("All Log Files: "));
// All in dir
File logDir = fileHandler.getLogDirectory();
if (logDir != null && logDir.isDirectory())
{
File[] logs = logDir.listFiles();
for (int i = 0; i < logs.length; i++)
{
if (i != 0)
p.addElement(" - ");
String fileName = logs[i].getAbsolutePath();
a link = new a ("compiereMonitor?Trace=" + fileName, fileName);
p.addElement(link);
int size = (int)(logs[i].length()/1024);
if (size < 1024)
p.addElement(" (" + size + "k)");
else
p.addElement(" (" + size/1024 + "M)");
}
}
bb.addElement(p);
// Clients and Web Stores
table = new table();
table.setBorder(1);
table.setCellSpacing(2);
table.setCellPadding(2);
//
line = new tr();
MClient[] clients = MClient.getAll(ctx);
line.addElement(new th().addElement("Client #" + clients.length + " - EMail Test:"));
p = new p();
for (int i = 0; i < clients.length; i++)
{
MClient client = clients[i];
if (i > 0)
p.addElement(" - ");
p.addElement(new a("compiereMonitor?EMail=" + client.getAD_Client_ID(), client.getName()));
}
if (clients.length == 0)
p.addElement(" ");
line.addElement(new td().addElement(p));
table.addElement(line);
//
line = new tr();
MStore[] wstores = MStore.getActive();
line.addElement(new th().addElement("Active Web Stores #" + wstores.length));
p = new p();
for (int i = 0; i < wstores.length; i++)
{
MStore store = wstores[i];
if (i > 0)
p.addElement(" - ");
a a = new a(store.getWebContext(), store.getName());
a.setTarget("t" + i);
p.addElement(a);
}
if (wstores.length == 0)
p.addElement(" ");
line.addElement(new td().addElement(p));
table.addElement(line);
//
bb.addElement(table);
} // createLogMgtPage
/**************************************************************************
* Init
* @param config config
* @throws javax.servlet.ServletException
*/
public void init (ServletConfig config) throws ServletException
{
WebEnv.initWeb(config);
log.info ("");
m_serverMgr = CompiereServerMgr.get();
} // init
/**
* Destroy
*/
public void destroy ()
{
log.info ("destroy");
m_serverMgr = null;
} // destroy
/**
* Log error/warning
* @param message message
* @param e exception
*/
public void log (String message, Throwable e)
{
if (e == null)
log.warning (message);
log.log(Level.SEVERE, message, e);
} // log
/**
* Log debug
* @param message message
*/
public void log (String message)
{
log.fine(message);
} // log
/**
* Get Servlet Name
* @return servlet name
*/
public String getServletName ()
{
return "CompiereMonitor";
} // getServletName
/**
* Get Servlet Info
* @return servlet info
*/
public String getServletInfo ()
{
return "Compiere Server Monitor";
} // getServletName
} // CompiereMonitor
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -