发帖    主题    评论    推荐    标签    作者    订阅    查搜    注册   登陆   关注
 
面向对象 设计模式 领域驱动设计 企业架构 框架 开发教程 微服务 CQRS 扩展性 并发编程 事件溯源 分布式 SOA
1 2 下一页 Go 2

初学者关于CMP的疑惑

2003-06-11 19:49
赞助商链接

在接触CMP之前早闻CMP有用没用之争,由于当时功力尚浅,便没有很留心。

这段时间我看了jdon了不少关于CMP的帖子,banq总结出在需要频繁查询大规模数据,并且数据需要进行分页处理时那么推荐使用DAO模式(我的理解就是通过SQL语句直接和数据库进行交互),那么banq的言下之意是CMP适合做小规模数据查询或者数据的修改、保存,我的理解有误吗?

照这么想下去,我有产生新的问题了,目前需要EJB的应用都不是小规模的数据应用,那么CMP在数据查询的时候企不是很难发挥优势;优势在于数据的修改、保存,这样便产生了两套和数据库交互的方式,一套使用DAO进行查询,一套使用CMP进行修改(我认为这确实也能解决减少编写SQL代码的问题)。我这么想对吗?

我这段时间想到,CMP的优势在于快速开发(我使用eclipse2.1+xdoclet,由于功力不足,开发速度较慢),和高度的可移植性。

请大家对我的想法做一些纠正,我洗耳恭听,谢谢大家。

2003-06-11 20:56

看来是对我帖子的疑问,还是我先回答一下:

我说的大规模查询是指两个特点:
1. 必须是读操作。
2. 必须是频繁的一直读,比如论坛帖子的分页浏览。而且是一定规则。

为什么推荐DAO? 因为EJB中有一个事务机制,这个事务机制从一个方面说是比较耗费时间的,对于读操作,事务机制就是多余的了。在weblogic中好像好像有个针对大批读read的优化,实际就是去除事务机制。

那么在通用容器中,我们使用DAO模式来处理这种情况。

CMP不只是读操作 还有写 删除,这些操作都是有容器的事务机制支持的,如果你的系统负载很大,使用集群cluster可以帮助你对付大批量的,无
规则的访问。

2003-06-13 23:32

多谢板桥的解答:)

2003-06-15 02:23

个人感觉大量的查询,还有报表系统应该单独设计,独立于主业务系统,如果以cmp方式产生报表,特别是大量报表是不可想象的。但这样带来一个问题,就是系统的维护也是分离的,业务对象的改变,不能直接反映到报表系统中来,因此需要大量的改动来维护报表系统,这个是我困惑的地方

2003-06-17 08:56

我前一段也进行了一个项目,用CMP实现,后来在数百人在线的时候就死掉了,我用工具进行了测试,性能很差,不得又用jsp+bean的方式改写,性能提高了几十倍,第一次用EJB真的让我对EJB大失所望。我用的是jboss3.0

后来曾看过几本书,是老外写的,说的是:如果你不能很好的使用BMP,就用CMP,好象推荐用CMP,因为能使用BMP优化性能的人不多。












2Go 1 2 下一页

赞助商链接

赞助商链接

返回顶部

移动版 关于本站 使用帮助 联系管理员 最佳分辨率1366x768
OpenSource JIVEJDON Powered by JdonFramework Code © 2002-20 jdon.com