Sky's blog

我和我追逐的梦

常用链接

统计

其他链接

友情链接

最新评论

12 2007 档案

jdk小工具jps介绍
     摘要: jps(Java Virtual Machine Process Status Tool)是JDK 1.5提供的一个显示当前所有java进程pid的命令,简单实用,非常适合在linux/unix平台上简单察看当前java进程的一些简单情况。  阅读全文

posted @ 2007-12-29 11:33 sky ao 阅读(7227) | 评论 (6)  编辑

resin的session id reuse特性(3)--总结
     摘要: 从对resin源码的追踪到resin配置文件中的设置,可以明确的看到,resin在设计上是提供了session id 的reuse功能,而且resin.conf默认就是打开reuse的。惭愧的是,我一直不知道......  阅读全文

posted @ 2007-12-28 16:28 sky ao 阅读(1545) | 评论 (4)  编辑

resin的session id reuse特性(2)--分析问题
     摘要: 上文中详细描述了问题的表现情况,由于这个特性严重影响到目前为公司设计的一套前台统一认证方案,因此不得不特别关注。好在resin的源代码是公开的,直接从resin的官网将resin的源代码拿下来,看resin到底是如何处理的。  阅读全文

posted @ 2007-12-28 12:01 sky ao 阅读(1456) | 评论 (0)  编辑

谁在创建session(4)-为什么要关注session的创建
     摘要: 看到有留言,对我如此“执着”的关注session创建很好奇,解释一下吧。

首先是关注性能,前面提到过session的使用是有代价的,需要在保存在服务器端内容中,每次request.getSeesion()方法获取 session时,实际是在服务器段的一个大的hasp结构中以当前的jsessionid为key,获取对应的value HttpSession对象,这个过程是需要消耗cpu的,当然目前hash算法比较好,这里消耗不那么明显。而一般的应用,消耗的cpu远比这个小开销大出2-3个数量级,因此通常情况不敏感。如果这个session是我们需要使用的,那么付出这些内存和cpu的代码是完全值得的。但是,如果产生大量的没有任何用处的"垃圾session",对大容量,大并发,需要长期稳定运行的系统会带来很无谓的负载。  阅读全文

posted @ 2007-12-20 11:06 sky ao 阅读(3649) | 评论 (9)  编辑

谁在创建session(3)-凑热闹的webwork标签
     摘要: 按照前面的方法,将jsp页面加入<%@ page session="false"%>之后,发现还是有新的session会意外的蹦出来。仔细检查action没有操作session,那这次是谁干的呢?将目光转回jsp文件,首先来次狠的,将这个jsp文件的内容删空为只有纯html内容。重新运行后发现不会自动生成session,ok,问题在jsp文件里面了。将原来的内容一点点的加回去,反复测试直到session自动创建的问题再次出现, 哈,发现问题出现在webwork的标签上。  阅读全文

posted @ 2007-12-19 17:25 sky ao 阅读(1566) | 评论 (1)  编辑

谁在创建session(2)-悄悄干活的jsp
     摘要: jsp文件是session创建的一个源头,这里指的不是在jsp文件中用代码或者标签来操作session,这些都是在控制中的。容易忽视或者说根本就不会意识到的(比如我,就是写jsp三年后才发现的)是,jsp有自动创建session的机制,在jsp页面中,如果没有明确的给出 <% @page session="false"%>,jsp页面会非常乖巧(如果刚好需要)或者说是偷偷摸摸(如果不需要)的自动在生成的java文件中增加一句: javax.servlet.http.HttpSession session = request.getSession(true)。  阅读全文

posted @ 2007-12-19 12:26 sky ao 阅读(3619) | 评论 (3)  编辑

谁在创建session(1)-不恰当的request.getSession()
     摘要: 在HttpServlet中,HttpSession对象通常在request.getSession(true)方法调用时才创建。 HttpSession的使用是有代价的,需要占用服务器资源,本着能不浪费就不浪费的原则,我希望系统中的session都在掌握之中,在需要创建时由我们的代码明确创建。但是最近在开发中发现,新的session对象经常在意料之外出现,究竟是谁在创建session呢?  阅读全文

posted @ 2007-12-19 11:41 sky ao 阅读(2775) | 评论 (1)  编辑

resin的session id reuse特性(1)--发现问题
     摘要: 近期因工作需求探索apache + resin的多机负载分布和多个webapp统一认证的实现方案, 期间设计多个webapp统一认证的实现方案时, 发现resin下通过cookie来传递jsessionid和通过url重写将jsessionid放url中传递, 会有细微的差异.

注:后来研究发现是resin提供的session id reuse特性,只是此文第一次发布时我还不知道有此特性,惭愧。  阅读全文

posted @ 2007-12-17 10:52 sky ao 阅读(3255) | 评论 (3)  编辑

namespace对axis解析xml请求的影响
     摘要: 发生在我身上的实际故事,最后发现和axis解析xml时的处理机制有关,namespace的有无会影响xml解析的方式,简单的说就是有namespace时按照元素名解析,没有namespace则按照index下标的顺序来解析。  阅读全文

posted @ 2007-12-05 16:49 sky ao 阅读(4417) | 评论 (8)  编辑

apache下安装mod_rewrite模块
     摘要: 在网上找了一些apache下安装mod_rewrite模块的文章,说得都很轻巧,但是俺一路碰壁,怎么都出不来。整理了一下,以后再来研究。  阅读全文

posted @ 2007-12-05 15:50 sky ao 阅读(2611) | 评论 (0)  编辑

resin采用url rewrite来传递jsessionid
     摘要: 前段时间做公司前台方案的技术探索时,涉及到jsseionid的传递,期间尝试使用resin自己的url rewrite功能来传递jsessionid参数,总结如下  阅读全文

posted @ 2007-12-05 15:49 sky ao 阅读(2597) | 评论 (0)  编辑

apache + resin的多机部署方案实现方法
     摘要: 前段时间,对公司前台多机分布方案的做了一些探索,总结了一些东西,贴出来分享。apache + resin的多机部署,类似内容网上比较多,但是都不够详细,我第一次弄时费力不少,希望后来人可以更方便一些。  阅读全文

posted @ 2007-12-05 15:47 sky ao 阅读(1271) | 评论 (0)  编辑

sun的java编译器对string常量表达式的处理和优化
     摘要: 首先把问题摆出来,看这个代码段

String a = "ab";
String b = "a" + "b";
System.out.println((a == b));

打印结果会是什么?true or false ?  阅读全文

posted @ 2007-12-05 15:42 sky ao 阅读(2322) | 评论 (16)  编辑

linux/unix + RESIN 验证码无法显示的问题
     摘要: RESIN下验证码无法显示的问题,验证码的代码就是google上查找到的最常见的代码,服务器采用resin部署于linux或unix。不是常见的out.clear()问题,这次的问题发现在一个我压根就没有想到的地方,profile DISPLAY 环境变量。  阅读全文

posted @ 2007-12-05 15:33 sky ao 阅读(2031) | 评论 (2)  编辑