3bfdd1f3402ed79af17d72f214d283c89cfd2522
[mir.git] / source / mir / servlet / ServletModuleMonitor.java
1 package mir.servlet;
2
3 import java.io.*;
4 import java.sql.*;
5 import java.util.*;
6 import javax.servlet.*;
7 import javax.servlet.http.*;
8
9 import freemarker.template.*;
10
11 import mir.servlet.*;
12 import mir.module.*;
13 import mir.misc.*;
14 import mir.storage.*;
15 import mir.entity.*;
16
17 import com.javaexchange.dbConnectionBroker.*;
18 /*
19  *  ServletModuleShow -
20  *  liefert HTML fuer Show
21  *
22  *
23  * @author RK
24  */
25
26 public class ServletModuleMonitor extends ServletModule
27 {
28   private static ServletModuleMonitor instance = new ServletModuleMonitor();
29   public static ServletModule getInstance() { return instance; }
30
31   public String defaultAction() { return "show"; }
32
33   public void show(HttpServletRequest req, HttpServletResponse res) throws ServletModuleException {
34
35     try {
36       // Hier Ausgabe von
37       // instances in AbstractEntity
38       // eingelesene confs
39       // datenbankverbindungen fuer brokers
40       getSimpleInfo(res.getWriter(),getConfs());
41       PrintWriter out = res.getWriter();
42       out.println(getInstancesInfo());
43       out.println(getInstancesConfInfo());
44
45     }
46     catch (Exception e) {
47       //e.printStackTrace();
48       throw new ServletModuleException(e.toString());
49     }
50   }
51   protected int getInstances(){
52     Entity ent = new Entity();
53     return ent.getInstances();
54   }
55   public String getInstancesInfo(){
56     return "<table><tr><td>Momentan instanzierte EntityObjekte = </td><td>" + getInstances()+"</td></tr></table>\n";
57   }
58   public String getInstancesConfInfo(){
59     return "<table><tr><td>Momentan instanzierte BrokerObjekte  = </td><td>" + getConfBrokerCnt()+"</td></tr></table>\n";
60   }
61
62   protected HashMap getConfs(){
63     return Configuration.getConfs();
64   }
65   protected int getBrokerUseCnt(DbConnectionBroker broker){
66     return broker.getUseCount();
67   }
68   protected int getConfBrokerCnt(){
69     return MirConfig.getBrokerInstances();
70   }
71   protected int getBrokerSize(DbConnectionBroker broker){
72     return broker.getSize();
73   }
74   public String getBrokerInfo(DbConnectionBroker broker){
75     return "<tr><td>Connections im pool                  = </td><td>"+ broker.getSize() + "</td></tr>\n"+
76            "<tr><td>Connection die gerade benutzt werden = </td><td>" + broker.getUseCount()+"</td></tr>\n";
77   }
78   public void getSimpleInfo(Writer out,HashMap confs) throws IOException{
79     String key;
80     DbConnectionBroker broker = null;
81     out.write(getInstancesInfo());
82     out.write(getInstancesConfInfo());
83     Set set = confs.keySet();
84     Iterator it = set.iterator();
85     for (int i=0;i<set.size();i++){
86       key=(String)it.next();
87       out.write("<table><tr><td>Konfiguration : </td><td>" + confs.get(key)+ "</td></tr>\n" );
88       broker=MirConfig.getBrokerInfo();
89       //broker=(DbConnectionBroker) ((HashMap)confs.get(key)).get("Pool.broker");
90       if(broker!=null)  out.write(getBrokerInfo(broker));
91       else
92         out.write("<tr><td>Broker nicht initializiert</td><td></td></tr>\n");
93       out.write("</table>\n");
94     }
95   }
96 }
97