【发布时间】:2011-07-17 05:51:16
【问题描述】:
如果我们有一个 Web 应用程序具有
- 繁重的 UI(Spring MVC + JQuery 与 JSON)
- Hibernate 使用 JPA 注释作为域模型
- 将 Spring 提供的 DAO 扩展到代码 DAO 层
- JBOSS 是应用服务器,Oracle 作为后端
- 基于数据源 (JNDI) 的连接池(不是 XA 而是本地数据源)
- 还可以访问多个数据源(处理多个 DB)
在行为上,大量数据检索 (70%) 和数据更新为 30%
以下如何有效使用数据库连接并确保连接使用没有太多泄漏的最佳实践是什么?
- 选择基于 Hibernate 模板的 DAO 会更好吗?
- 什么样的事务管理器是值得推荐的,我们应该在哪里进行基于 AOP 的事务管理
- 在哪里实例化会话以及在哪里关闭会话以有效地使用来自连接池的连接。
- 确实,我们需要处理来自服务层的事务,但是会话会发生什么情况,它们会等待更长的时间(我们没有使用任何 opensessioninviewFilter)
- 哪个层更好地处理已检查异常(业务异常)和运行时异常。
抱歉,这个问题有点冗长,但我发现这是一个常见的查询,我尝试将其合并。感谢您的耐心和指导。谢谢你的帮助。
【问题讨论】:
-
如果我们计划在后端使用数据库分区(表范围/哈希分区)怎么办。 Hibernate(或 Shards?尚未投入生产!)是否支持?