postgresql 使用两个连接字符串指定同一主机的npgsql连接池

enxuqcxy  于 2024-01-07  发布在  PostgreSQL
关注(0)|答案(1)|浏览(156)

如果我有两个不同的DbContext,它们的连接字符串只在Database字段中不同,但HostUsernamePassword等都是相同的,那么当在同一个线程中使用两个DbContext时,相同的连接会被重用吗?从pgadmin Jmeter 板来看,情况似乎是这样的,但我没有看到任何文档。
此外,我有一些测试代码,我希望 * 不 * 工作,因为它是使用两个不同的DbContext在EF核心6在TransactionScope和AFAIK EF核心6不支持分布式事务在所有。然而,代码 * 做 * 工作,不抛出任何异常。
这里使用的是Npgsql. martyFrameworkCore.PostgreSQL版本6.0.7

1hdlvixo

1hdlvixo1#

在7.0版中,Npgsql引入了对DbDataSource的支持(发行说明)。当使用这个新功能时,DbDataSource对应于一个连接池,因此示例化和使用两个数据源将意味着两个完全独立的池。
但是,当使用直接提供连接字符串的更传统的模式时,(no NpgsqlDataSource),池在Npgsql内部管理,并由连接字符串键控。因此,在这种情况下,使用相同的连接字符串意味着使用相同的连接池。要分离池,你可以改变字符串,例如通过引入一个Application Name参数-但总的来说,建议切换到NpgsqlDataSource。

相关问题