hello banq,前面你提到了一个问题:
不必要读取数据库了,内存中ForumThread其实有一份,思考到这里,我也很惭愧我潜意识还是数据库编程,完全忽视内存中ForumThread,总是将缓存或内存中对象看成是数据库的备份,而不是将数据库看成是内存中对象的备份,当我的思路转到后面上来时,就豁然开朗了。

这里面还有一个问题,需要显示的是设么样的信息?当前最新回复的,还是当前保存的最新回复?如果是后者那么其实在业务过程中数据的存储已经是核心环节了,这一点无法逃避。如果是前者,那么当一个新的发布没有被成功的持久化呢?后面所有的相关回复都可能丢失一个起源,这样的代价恐怕比没有及时显示的代价更大。

重新下了最新的包, dist下所有的jar 文件日期为 11-24 15:57 但是 无论container.xml 里是设为true 或者 false, 均报:

java.io.NotSerializableException: com.jdon.container.pico.PicoContainerWrapper

>当前最新回复的,还是当前保存的最新回复?
是业务上最新回复。属于第一种。

>那么当一个新的发布没有被成功的持久化呢?后面所有的相关回复都可能丢失一个起源,这样的代价恐怕比没有及时显示的代价更大。

成功持久化只是一个额外动作,不影响业务,当然,实际做的是:先持久化;然后更新内存中模型对象信息,这样前台就能及时显示最新回复。

Evans DDD一直强调通过工厂模式和repository建立防腐层,不要让数据库侵入业务,这点JiveJdon已经做到,实际为了做到这点,缓存是缺不了的,因为通过工厂会频繁建立大量关联对象,如果没有缓存,性能就相当慢。

这样,模型对象就通过缓存常驻内存,模型对象通过共享方式为前台界面服务,模型对象就脱离数据库存在,这样,在业务过程中数据的存储就不是核心,只要对内存模型对象进行操作就可以,将来会发展到:模型对象自己会定时把自己存储到数据库(以备不测,在系统空闲时操作,可以在自己被垃圾回收之前持久化,多美妙),这个不用我们程序去操心。

明白了,开始还以为你的对象和数据库是分开的,呵呵,误会你了。

今天对JiveJdon_Tomcat进行框架升级,下载最新版5.5,报告目前发现的错误:
1,拦截器异常,查看源码发现5.5关于AOP的代码有改动,所以曾经使用过拦截器的jdon项目必须修改源代码了。
2,tomcat启动错误,虽然程序可以正常运行,但是估计这个异常和分布式有关:java.io.NotSerializableException: com.jdon.container.pico.PicoContainerWrapper

任重道远啊,建议banq在下载包中加入更新日志。

所以暂时不准备升级了,启动的时候报异常是最恐怖也是最闹心的,等元注释绝对稳定版吧!

[该贴被oojdon于2008-11-26 22:23修改过]

拦截器代码是有所变更,这样更能支持并发,否则大并发访问下有问题。很简单的改变,参考JiveJdon3.5中拦截器改变即可。

Tomcat单机情况下Jdon框架很正常,没有报错,Tomcat集群也只有在配置了HttpSession 复制情况下( web.xml中加入了<distributable/> )才会有问题,我个人是不赞成HttpSession复制的,增大服务器之间通讯量,服务器必须分出一些负载处理服务器之间通讯;HttpSession也没有必要复制,只要放入HttpSession中的数据是可重复再生成的,就没有必要复制。

一般需要配置HttpSession复制是因为防止当前服务器当机,缺省情况下,HttpSession是Sticked,粘盯住某台服务器的。这就够了。为了防止当前服务器当机,就不能sticked了,就有必要将HttpSession中登录信息通过HttpSession复制拷贝到其他服务器,这样这个新服务器可以不用用户重新登录就能够继续提供服务。

其实后面这种特殊情况,可以通过客户端Cookie来实现更换服务器后的自动登录,IBM SSO就推荐这个方案,为安全,可以使用小的flash或applet保存客户端用户名和密码。

所以,HttpSession复制从性能优化和设计上都没有必要,可以说根本不需要。

在对付这种极端HttpSession复制情况下应用,Jdon框架也已经尽力了,当然在以后会不断完善,完全放弃HttpSession缓存,但是这要考虑有态Bean特殊情况,当然这可以参考Seam做法。

==当然这可以参考Seam做法
希望快快出来相关的讨论

近期研习源码,准备把JDon放上日程,作为工作的项目中基础平台的一个底层备选,呵。JDon唯一的问题也许就在于,用的人少吧。如果不是担心一些“额外的”风险,也许我们项目应该成为一个JDon的成功案例。我在试图努力让这种情况成为现实,呵,等待评测中。