在Presentaion tier, JSP/Servlet有各种方法控制并发问题。
在Business tier, SessionBean, EntityBean也有各种方法控制并发问题.
请问
大家在考虑Bussiness Delegation和VO时,有什么好的建议控制并发?
正在思考...
在Presentaion tier, JSP/Servlet有各种方法控制并发问题。
在Business tier, SessionBean, EntityBean也有各种方法控制并发问题.
请问
大家在考虑Bussiness Delegation和VO时,有什么好的建议控制并发?
正在思考...
在Business tier, 我们有线程池的方式由EJB容器来解决,每一个SessionBean做为一个线程访问支持并发的EntityBean.
但是presentation tier 和 business tier之间的VO,也会涉及到并发问题,VO中的Setter和Getter,可能在多用户的时候出现同步问题。如何解决这样的问题呢?
我所能想到的办法如下:
1。把VO做成threadlocal的方式,使每个线程拥有一个VO, 但随着线程的增多,VO也增多,会影响效率。
2。把VO做成Singleton的模式,然后用synchrozide进行控制,这样可以解决上面问题1的问题,但多个线程共享一个VO, 当一个线程用Setter方法,其它的线程就不能使用Setter, 也会影响程序运行的效率。
另外,VO的弱点是:VO有可能不够Fresh,有脏读的可能。不知大家有什么好的想法?
抛块砖先。
不过不知道大家都是如何解决VO同步问题的,有好的意见,欢迎回贴。
――另外咨询一下各位大侠,有没有在SunONEAppServer7平台版上做商务应用的,因为免费,所以正在考虑Oracle的OC4J和SunONEAppServer7,给些建议?
SunOne和Oracle的OC4J不是免费的,不要搞错了,只不过让你免费下载开发,商业运行要购买License。
我在WebGain公司还没被Oracle收购的时候就研究过TopLink,我一直对独立的建模和开发工具不是特别喜欢,O/R工具就象TopLink或Thought Inc.的Cocobase等,甚至包括JBuilder,这些工具虽说有强大完善的功能和广泛的用户人群,但针对某一平台未必最佳。
SunOneAppServer7平台实现还是不错的,其用SunONE Studio5的配合开发尤为完美。平台版的License好象除了不能做负载均衡和集群以及远程部署能力外,没什么限制。
SunOne也没有研究过,Websphere用过,太臃肿了,而且不支持热发布,也非常不喜欢,Weblogic各个方面都是最优秀的,只不过搞不懂JRockit好像很慢,不像传说中那么好,JBoss没有用过,满世界都找不到文档下载,一个软件,如果没有文档就等于什么都没有,所以我从来不去学习JBoss。