- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我有带有 Hibernate 框架(无 spring)的 Java 应用程序连接到 MySQL DB,通过 c3p0 管理连接池
我尝试将我的应用程序配置为从从属数据库读取并写入主数据库,我在某种程度上遵循此链接Master/Slave load balance
假设应用程序已经在池中获得了一个带有连接的 session ,并且需要执行一个只读方法,如下所示
public someReadOnlyMethod()
{
Session session = (get session from current Thread)
//set read-only so that it read from slave db
session.connection().setReadOnly(true);
(...connect to db to do something...)
//set it back in case of this method is followed by write method so that it go to master db
session.connection().setReadOnly(false);
}
池是否创建一个新连接来连接数据库两次以进行只读和写入操作(如果是这样,这将严重影响性能),或者它足够智能地将操作交换到已经存在的只读和可写连接池?
感谢您的建议。
最佳答案
所以这与池无关;这一切都在 mysql 驱动程序中。 c3p0 会将您对 setReadOnly(无论 true 或 false)的调用传递给底层 Connection,并且 Connection 将相应地路由到主站或从站。
如果您不喜欢连接的默认设置(可能默认情况下它们不是只读的),您可以在 c3p0 ConnectionCustomizer 的 onAcquire 方法中设置只读属性,并使用设置的值(true 或 false ) 将成为 c3p0 将连接重置为的默认值。
祝你好运!
关于java - 有关数据库池和 connection.setReadOnly() 方法的行为,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15699758/
我在一次采访中被问到这个问题,但无法回答。也没有找到任何相关信息。 最佳答案 正如 Docker 文档中所述,Docker 注册表是: [...] a hosted service containin
我目前正在为我的应用程序上的所有用户使用单个 mysql 连接。我想开始使用一个池(它应该更优化,对吧?)但我有一个“结构”问题:createPool 方法只适用于回调,我不明白如何通过与 socke
据我所知,“testOnBorrow”和“validationQuery”参数正合我意,但它们似乎没有按预期工作。 我启动应用程序,运行一些查询,一切正常。然后我重新启动 postgres 服务器 -
我需要解决 Entity Framework 核心中的 Multi-Tenancy 问题。每个租户都有自己的数据库(由于历史原因,无法更改)。 我将按照许多地方的建议使用上下文工厂(example 1
我有两个文件: x.py class BF(object) def __init__(): . . def add(self,z): . . y.py from y
我是一名优秀的程序员,十分优秀!