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 閱讀(396) 評論(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)

          隨筆檔案

          相冊

          搜索

          最新評論

          閱讀排行榜

          主站蜘蛛池模板: 嘉义县| 北流市| 余江县| 峨山| 卓尼县| 肇源县| 思茅市| 永兴县| 哈尔滨市| 安新县| 滦平县| 松滋市| 阿尔山市| 榆林市| 丽水市| 榕江县| 湟源县| 平顺县| 卫辉市| 江北区| 双牌县| 谢通门县| 黄陵县| 大余县| 江门市| 封开县| 吉首市| 临沭县| 巩义市| 临江市| 滁州市| 正宁县| 长沙市| 建德市| 南涧| 砀山县| 景泰县| 京山县| 手游| 婺源县| 昭平县|