在javaeye上看到个讨论事务的帖子,帖子中提到了通过查看 tomcat线程数来判断事务设置是否合理,于是回帖问了下如何查看tomcat运行状态,楼主回帖说用 apache的 ab,现在还没时间,抽空了解一下

08年的新员工今天入司了,我已经成老员工了,看着他们个个脸上新奇的,清澈的目光,唉,去年我也是那样的。

一个人一年时间能改变多少呢?回想过去,在学校呆一年,浑浑噩噩就过去了,在公司呆一年,做了大大的小小几个项目,却学到了不少的东西。现在后悔当初在学校有大把的时间,大把的资源,不好好用来学习知识,真是莫大的浪费啊。在这工作的一年里,工作之余我投了大把的时间学习框架,以及软件开发理论,还颇有点小的成就感。

当前三大学习目标: VOA ,TDD,Refactor, 2009 ,努力。

 

昨天晚上,吃完饭赶忙拿起 中午收到的《TDD》看起来,由于这本书的内容相对更理论一点,我的英文水平读起来还是有点吃力,所以抱着本字典边查边看。女朋友突然来了句“我比你幸福,因为我有个努力的,很有上进心的男朋友,而你没有”,哈哈 甜滋滋的。

 PS:作为一个一年经验的员工,当然没有机会去带别人做东西,真得希望能够在这批新员工里发现一个能够与之探讨技术的人,能够与我探讨重构,测试驱动开发,以及各个框架底层的东西,知识就是在不断的交流中才能发觉更多。

 

上周在当当上订的《测试驱动开发》影印版,这周一就收到了,速度啊。前阵子在项目里试着做了点TDD,现在再拿这本获得Software Development Productivity大奖的TDD入门经典把知识再巩固一下子,在后面的学习过程中的心得也会逐一写到这里。

前阵子做得那个系统发布了,结果刚放到服务器上就出了 outOfMemery 错误。 查看发现是由于下的进程导致的:

Daemon Thread [com.mchange.v2.async.ThreadPoolAsynchronousRunner$PoolThread-#0] (Running)

经过查找,发现在datasource里把c3p0的numHelperThreads设成了1000。正是由于这个线程过多导致了内存溢出,改成10就没有问题了。附上c3p0里对于 numHelperThreads的描述:

numHelperThreads
  Default: 3
c3p0 is very asynchronous. Slow JDBC operations are generally performed by helper threads that don't hold contended locks. Spreading these operations over multiple threads can significantly improve performance by allowing multiple operations to be performed simultaneously.

默认值:3

c3p0是异步的 ,JDBC操作通常是被不持有锁的 helper线程执行的,允许多线程操作能够改进性能。

在这个项目里已经几天了,现在手头的任务是把现有的sql语句从代码里抽出来,开始同事们的做法是一行一行地从代码里copy,看着长达几十行的sql语句,我会那么勤勤恳恳地把每一行都copy出来吗?这么枯燥的工作可以让程序来完成,懒惰是程序员的天性!!! 写个工具来解析岂不是会很快?说到做到,一个简单的文件读取,一个基于正则表达式的解析器,解析结果输出到一个结果文件里,10分钟搞定!接下来,把这个工具推荐给同事们,结果本来计划2天的工作量一个上午搞定。