单个应用程序的两个不同数据库框架可以共享同一个连接对象吗?
Posted
技术标签:
【中文标题】单个应用程序的两个不同数据库框架可以共享同一个连接对象吗?【英文标题】:Can two different database framework for single application share the same connection object? 【发布时间】:2014-12-12 13:47:42 【问题描述】:我有一个应用程序,其中 a.jar 使用 jdbc 框架,b.jar 使用 ibatis 框架进行数据库连接,a.jar 上的数据库操作需要 10 分钟才能执行,因为它有很大的行,所以可以b.jar 上的数据库操作也需要时间?
据我所知,两者都有不同的连接对象,但有时我的意思是非常间歇性的这个问题,在 b.jar 上执行查询将导致等待,因为在 a.jar 中执行大量查询会导致整个 jvm 挂起。
所以我的问题是:两个框架是否因为哪些线程挂起而使用相同的连接对象?请帮助我,我们在生产中面临这些问题。
【问题讨论】:
【参考方案1】:他们可能会共享一个connection pool(这很安全,因为每个应用程序都有自己的实例)。如果您从“a”运行一个长查询,那么来自“b”的查询可能会挂起,直到来自“a”的查询完成,这取决于数据库中的事务isolation level 设置为什么(同样,当您共享一个数据库 - 不是连接 - 您从一个应用程序执行的操作可能会从另一个应用程序获取资源;这似乎已经发生了)。
【讨论】:
感谢您的回复,应用服务器默认最大连接数为64,所以我们都在不同的连接上,我们对这两个jar的数据库进行独立操作,问题我们会很少看到这个问题,比如一个月一次,我们的线程因为这个长时间运行的查询而挂起,所以我们不知道可能是什么原因,以及挂起间歇性发生的场景是什么。 @pankaj 检查隔离级别。您没有提供足够的信息让我们为您调试。 嗨,elliott,我已经从客户那里确认了它的默认设置,你能帮帮我吗。以上是关于单个应用程序的两个不同数据库框架可以共享同一个连接对象吗?的主要内容,如果未能解决你的问题,请参考以下文章
在单个 Web 应用程序中使用两个或多个不同的前端框架是不是正确?