论坛首页 Java企业应用论坛

Jwebap项目(四)——性能监控工具Jwebap: 0.5.8版本发布

浏览 49212 次
该帖已经被评为良好帖
作者 正文
   发表时间:2008-03-01  
stevenmo 写道
我的框架是 spring+ibatis  数据库是mysql   配置文件使用的是bin 目录下的jwebap.xml  唯一修改的地方 在driver-clazzs 中加入 mysql的数据库驱动org.gjt.mm.mysql.Driver;


你的问题,我已经重现,原因如下:

由于目前jwebap实现的类字节码增强,只对本类进行增强,而不对父类增强,所以,当你配驱动org.gjt.mm.mysql.Driver后,没有效果。因为org.gjt.mm.mysql.Driver继承于com.mysql.jdbc.NonRegisteringDriver,com.mysql.jdbc.NonRegisteringDriver才是真正的驱动实现。

所以解决办法有两个:

1)配置com.mysql.jdbc.NonRegisteringDriver为驱动(推荐)
2)配置spring,或者ibatis的Datasource类为驱动

对于Jwebap不对父类进行字节码增强的问题,我将会在下面版本解决。

0 请登录后投票
   发表时间:2008-03-02  
leadyu 写道
stevenmo 写道
我的框架是 spring+ibatis  数据库是mysql   配置文件使用的是bin 目录下的jwebap.xml  唯一修改的地方 在driver-clazzs 中加入 mysql的数据库驱动org.gjt.mm.mysql.Driver;



0.5.8版本做了第三次修正,发布jwebap_0.5.8_all_3.zip。这次实现了jwebap对父类的类字节码增强处理。

所以,应该不会出现你上述所说的问题了。


0 请登录后投票
   发表时间:2008-03-03  
看起来不错,目前暂时用不到,保存先。
0 请登录后投票
   发表时间:2008-03-03  
想用着试试看,不过在部署的时候出现问题,报错:
org.jwebap.config.ConfigException: 配置工厂未初始化,请调用 configure(String path) 进行初始。

不知道是怎么一回事?
直接添加bin下的jwebap.xml文件到web-inf目录下,修改其中<property name='driver-clazzs'>orcale.jdbc.driver.OracleDeriver</property>

然后添加相关的内容到web.xml下
启动没报错,但是调用servlet时报错
0 请登录后投票
   发表时间:2008-03-03  
能不能将监控和应用分开部署?

如果不能,我想意义就不太大了。。。。。
0 请登录后投票
   发表时间:2008-03-03  
midizhang 写道
想用着试试看,不过在部署的时候出现问题,报错:
org.jwebap.config.ConfigException: 配置工厂未初始化,请调用 configure(String path) 进行初始。

不知道是怎么一回事?
直接添加bin下的jwebap.xml文件到web-inf目录下,修改其中<property name='driver-clazzs'>orcale.jdbc.driver.OracleDeriver</property>

然后添加相关的内容到web.xml下
启动没报错,但是调用servlet时报错


出这个错是jwebap没找到jwebap.xml导致,所以你可以检查一下:

引用
1) web.xml里面
<context-param>
<param-name>config</param-name>
<param-value>/WEB-INF/jwebap.xml</param-value>
</context-param>

是否配置正确。

2)web.xml里面JwebapListener是否配置正确。


我需要更多的信息帮助你分析。




0 请登录后投票
   发表时间:2008-03-03  
惊鸿逝水 写道
能不能将监控和应用分开部署?

如果不能,我想意义就不太大了。。。。。


分开部署考虑过,但是暂时还需要权衡,虽然jwebap做到这点在架构上并不困难(jwebap的轨迹容器相当于收集器,如果实现群集和广播轨迹给各远程分析器即可实现,并不影响已经开发好的plugin)。

原因有如下几点:

分布式部署,看上去是对系统侵入性更小了,其实不然,

一:分开部署,在配置和部署上肯定更为复杂,这和Jwebap尽可能简化部署的思路不一致(在简化部署方面jwebap花了很多的精力)

二:为了实现广播,实际带来的开销比部署在一起大得多,其实分开部署在Profiler工具里面已经有很多先例,可见效果并不如想象的好。

不过,也许在以后,jwebap可能会实现轨迹容器的分布式,当然这也仅是作为一种新的部署方式提供给用户。

0 请登录后投票
   发表时间:2008-03-03  
当然jwebap可以和应用运行在同一个JVM,只是我不希望jwebap去修改web.xml
比如我使用jwebap作为我的管理监控控制台,打包部署为console.war
而我要配置jwebap监控我的一个应用web.war的性能,只要配置对web.war入口servlet做ASM注入就可以监控到了
0 请登录后投票
   发表时间:2008-03-03  
惊鸿逝水 写道
当然jwebap可以和应用运行在同一个JVM,只是我不希望jwebap去修改web.xml
比如我使用jwebap作为我的管理监控控制台,打包部署为console.war
而我要配置jwebap监控我的一个应用web.war的性能,只要配置对web.war入口servlet做ASM注入就可以监控到了


我可能没有很清楚理解你的意思,你可能也一样,^_^ 所以我先说说我的看法,欢迎指正:

现在jwebap只有一个jar包,没有自己独立的war,部署起来很简单,另外jwebap的启动做了很多的事情,包括

轨迹容器的启动,配置的加载,plugin的加载和初始化,以及字节码的注入,这些需要在应用中有一个切入点去启动,现在我所想到的就是在应用中配置一个Listner。我相信这点是可以接受的。

而启动jwebap的这个切入点必须在应用的内部,不可能通过另一个JVM or App启动Jwebap去监控其他JVM or App运行的应用(类的静态增强,其实是一个比较复杂的过程,需要考虑到应用的中间件的一些ClassLoader加载情况)

如果你有比Listner更好的想法,启动Jwebap,欢迎提出

0 请登录后投票
   发表时间:2008-03-03  
试试了你的Jwebap,很遗憾的告诉你,在我的架构平台上,你啥都监控不到,唉。。。。。。

0 请登录后投票
论坛首页 Java企业应用版

跳转论坛:
Global site tag (gtag.js) - Google Analytics