afunms

          My Software,My Dream—Forge a more perfect NMS product.

          tomcat監(jiān)視

          ??????? 今天要做一個tomcat監(jiān)視,參考了ens和華中電力的相關(guān)代碼,發(fā)現(xiàn)他們的做法都是先取到html代碼,然后從這html代碼中提取自己想要的數(shù)據(jù),這太麻煩了,我在想有沒有更好的辦法。
          ??????? 研究了tomcat的源碼后,終于有了發(fā)現(xiàn)。我要的數(shù)據(jù)可以通過以下代碼得到:
          ???????--------server information------------------?
          ?????? 服務(wù)器信息:ServerInfo.getServerInfo()
          ??????? jvm版本:System.getProperty("java.runtime.version")
          ??????? jvm vendor:System.getProperty("java.vm.vendor")
          ??????? 操作系統(tǒng):System.getProperty("os.name")
          ??????? 操作系統(tǒng)版本:System.getProperty("os.version")

          ???????--------jvm information------------------
          ?????? free_memory:Runtime.getRuntime().freeMemory()
          ?????? total_memory:Runtime.getRuntime().totalMemory()
          ?????? max_memory:Runtime.getRuntime().maxMemory()

          ?????? ---------應(yīng)用列表-------------------
          ????? private Element createApplications()
          ?{
          ??Element applications = null;
          ??try
          ??{
          ???applications = new Element("applications");
          ???
          ???MBeanServer mBeanServer = Registry.getServer();
          ???????? ObjectName queryHosts = new ObjectName("*:j2eeType=WebModule,*");
          ???????? Set hostsON = mBeanServer.queryNames(queryHosts, null);

          ???Iterator iterator = hostsON.iterator();
          ???while(iterator.hasNext())
          ???{
          ????ObjectName contextON = (ObjectName)iterator.next();
          ????????? String webModuleName = contextON.getKeyProperty("name");???????? ????????????
          ????String hostName = null;
          ????????? String contextName = null;
          ????????? if(webModuleName.startsWith("http://"))
          ?????????????? webModuleName = webModuleName.substring(2);
          ?????????
          ????????? int slash = webModuleName.indexOf("/");
          ????????? if(slash != -1)
          ????????? {
          ????????????? hostName = webModuleName.substring(0, slash);
          ????????????? contextName = webModuleName.substring(slash);
          ????????? }
          ????else continue;
          ?
          ????????? if("/".equals(contextName)) continue;
          ?????????
          ????????? Element oneApp = new Element("application_information");
          ????????? try
          ????????? {???????
          ????????????? ObjectName queryManager = new ObjectName(contextON.getDomain() + ":type=Manager,path=" + contextName + ",host=" + hostName + ",*");
          ????????????? Set managersON = mBeanServer.queryNames(queryManager, null);
          ????????????? ObjectName managerON = null;
          ????????????? for(Iterator iterator2 = managersON.iterator(); iterator2.hasNext();)
          ???????????????? managerON = (ObjectName)iterator2.next();
          ?
          ????????????? Element wmn = new Element("web_module_name");
          ????????????? wmn.setText(contextName.substring(1));
          ?????????
          ????????????? Element as = new Element("active_sessions");
          ?????????? as.setText(mBeanServer.getAttribute(managerON, "activeSessions").toString());
          ?????????
          ?????????? Element sc = new Element("session_count");
          ?????????? sc.setText(mBeanServer.getAttribute(managerON, "sessionCounter").toString());
          ?????????
          ?????????? Element mas = new Element("max_active_sessions");
          ?????????? mas.setText(mBeanServer.getAttribute(managerON, "maxActive").toString());?
          ?????????? oneApp.addContent(wmn);
          ?????????? oneApp.addContent(as);
          ?????????? oneApp.addContent(sc);
          ?????????? oneApp.addContent(mas);
          ?????????? applications.addContent(oneApp);
          ????????? }
          ????????? catch(Exception e)
          ????????? {
          ????????? ?System.out.println("Error in TomcatMonitor.createApplications()-2");
          ????????? }//end_try
          ???}//end_while
          ??}
          ??????? catch(Exception e)
          ??????? {
          ??????? ?System.out.println("Error in TomcatMonitor.createApplications()-1");
          ??????? }//end_try
          ??????? return applications;
          ?}

          posted on 2006-12-04 11:18 afunms 閱讀(395) 評論(3)  編輯  收藏

          Feedback

          # re: tomcat監(jiān)視 2008-04-21 15:29 chenhao

          沒想到我要解決的問題,你兩年前都已經(jīng)研究的這么透徹了,慚愧啊。還有,原來你一直這么有目標(biāo)阿,終于知道afunms大概的意思了。剛才在google上搜相關(guān)資料,看到afunms就是一驚,難道真的那么巧,進(jìn)來一看,果然是你,在那邊生活的還好嗎?  回復(fù)  更多評論   

          # re: tomcat監(jiān)視 2008-04-21 15:37 afu

          @chenhao
          呵呵,能告訴我你是哪位嗎?
            回復(fù)  更多評論   

          # re: tomcat監(jiān)視 2008-04-21 15:48 chenhao

          nch的classmate,cqep的參與者,@dhcc  回復(fù)  更多評論   



          只有注冊用戶登錄后才能發(fā)表評論。


          網(wǎng)站導(dǎo)航:
           

          My Links

          News

          留言簿(18)

          隨筆檔案

          相冊

          搜索

          最新評論

          閱讀排行榜

          主站蜘蛛池模板: 福清市| 江川县| 镇雄县| 峡江县| 土默特左旗| 大名县| 西贡区| 常宁市| 达拉特旗| 石林| 内黄县| 皮山县| 安丘市| 六枝特区| 文水县| 益阳市| 广平县| 象山县| 都昌县| 威海市| 平乡县| 新巴尔虎左旗| 嘉禾县| 广灵县| 军事| 黄大仙区| 南宁市| 沁阳市| 阿巴嘎旗| 平昌县| 榆社县| 陆良县| 稷山县| 邓州市| 三原县| 姜堰市| 曲松县| 寿光市| 隆德县| 嫩江县| 竹溪县|