- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我有一个连接到许多SQL Server数据库的项目。它们都具有相同的架构,但是数据不同。数据本质上是由客户分隔的。当请求进入asp.net应用程序时,它可以告诉需要哪个数据库并建立 session 。
我们现在正在为每个客户数据库创建一个新的SessionFactory。这已经解决了一段时间了,但是随着更多的客户,我们正在创建更多的数据库。我们开始遇到内存问题,因为每个工厂都有自己的QueryPlanCache。 I wrote a post about my debugging of the memory。
我要这样做,以便我们有一个SessionFactory,它使用ConnectionProvider打开到正确数据库的连接。到目前为止,我所拥有的看起来像这样:
public class DatabaseSpecificConnectionProvider : DriverConnectionProvider
{
public override IDbConnection GetConnection()
{
if (!ThreadConnectionString.HasValue)
return base.GetConnection();
var connection = Driver.CreateConnection();
try
{
connection.ConnectionString = ThreadConnectionString.Value;
connection.Open();
}
catch(DbException)
{
connection.Dispose();
throw;
}
return connection;
}
}
最佳答案
我已经确定了解决方法,并在此处列出了它,以防有人再次遇到此问题。
事实证明,我仍然找不到根据 session 更改ConnectionProvider的数据库。它只能现实地取决于当前请求的上下文。
就我而言,95%的时间仅需要一个客户的数据库。我创建了一个SessionFactory和一个ConnectionProvider来处理这个问题。对于其余的极端情况,我创建了第二个SessionFactory,当打开Session时,我传入了一个新的Connection。
缺点是与第二个数据库对话的 session 不能使用第二级缓存,因此我必须确保在请求结束时关闭连接。
到目前为止,这似乎已经足够好了,但是我很好奇它从长远来看将如何站得住脚。
关于NHibernate:创建一个ConnectionProvider来动态选择要连接的几个数据库中的哪个?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9101420/
Spring Boot 应用程序使用 Azure Cosmos DB 启动失败 描述: 试图调用不存在的方法。尝试是从以下位置进行的: com.azure.cosmos.implementation.
要执行一些自定义(黑盒化)SQL 操作,我需要有一个 IDBConnection 实例到我们已经通过 NHibernate 定期访问的数据库。 我不想部署单独的数据库配置(一个本地的,一个 nhibe
我刚刚将应用程序中的 Hibernate 更新到 4.3.4(从 3.X),这导致了一些问题。第一个是我解决的创建 sessionFactory 的新方法。 下一个问题,我什么也没发现,是我现在在 o
如何构建/获取 ConnectionProvider在 Spring(v.3.1.1) + Hibernate(v.4.1.1) + C3P0 环境中? 背景: 在 Spring(v.3.1.1) +
如何从 hibernate 5 中的 session 工厂获取连接提供程序?获取连接的方法不再存在,并且不会被 javadoc 中的任何内容替换。此代码片段在 4.1 中有效,但在 5.1 中无效(具
我正在升级 kotlin Spring Boot 1.x 应用程序以使用 Spring Boot 2.1.6 之前,我使用 EntityManagerFactoryBeanCallback 将 hib
我做错了什么?我认为,问题出在 hibernate-core-3.5.6-Final-patched-play-1.1.1 库中。但我不知道从哪里获得连接包和 ConnectionProvider 的
hibernate .cfg.xml oracle.jdbc.driver.OracleDriver cisadm jdbc:oracle:
我正在尝试将旧版 Web 应用程序从 JBoss 4.2.3GA 迁移到 Wildfly 9。 此迁移的一部分需要从 Hibernate 3.2 升级到 Hibernate 4.3.10 我对 Hib
我是一名优秀的程序员,十分优秀!