use*_*582 10 jboss datasource java-ee jboss7.x wildfly
我已经为JBoss AS 7.4定义了一个数据源,包括最小/最大池大小,跟踪空闲连接等.
我对数据源use-ccm属性感到困惑.
我以为数据源本身管理连接池.
Bal*_*usC 14
它有什么作用?
它只是一个有用的调试工具,通过检查其日志记录来检测手动管理事务(BMT)中的连接泄漏.在调试模式下打开时,它将记录应用程序代码获取和释放的所有连接以及查询.这可用于跟踪应用程序代码中的连接泄漏.
在JBoss AS中5管理指南确实在解释这不是一个更好的工作的JBoss AS 7管理指南和更新.它甚至没有出现在WildFly文档中.以下摘录来自JBoss AS 5指南:
3.1.缓存连接管理器
缓存连接管理器用于调试数据源连接并支持事务中数据源连接的延迟登记,跟踪应用程序是否正确使用和释放它们.以一些开销为代价,它可以提供对使用情况的跟踪,并确保来自数据源的连接不会被应用程序泄露.虽然这似乎是一个优点,但在某些情况下,它被认为是反模式,因此要避免.
[...]
在缺省,标准和所有配置中,
CachedConnectionManager配置为在调试模式下位于servlet容器中.它也在生产配置中配置,但关闭了调试模式.如果您不使用BMT,和/或您没有前面描述的反模式,最好删除CachedConnectionManager.
为什么要用它?
仅在不使用容器管理事务(CMT)时才在调试模式下打开它,但是手动管理事务(BMT)并且您遇到了无法确定的连接泄漏问题.一旦根据CCM的日志记录找到并修复了应用程序代码,最好将其关闭以保存性能.
如果您正在使用CMT,即您在应用程序中无处可手动处理Connection和/或UserTransaction实例,但只是让EJB + JTA进行他们的努力工作,请保持关闭.
我以为数据源本身管理连接池.
它只在服务器和数据库之间进行.它不会在服务器和应用程序代码之间执行此操作.使用CMT时,会自动完成.使用BMT时,应用程序代码开发人员负责.在这种情况下遇到连接泄漏时,可以使用CCM将其固定.
另请参见Mastertheboss.com - 如何使用JBoss和WildFly跟踪JDBC语句.
| 归档时间: |
|
| 查看次数: |
8821 次 |
| 最近记录: |