- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
这段代码线程安全吗?
public static NpgsqlConnection getConnection()
{
NpgsqlConnectionStringBuilder csb = new NpgsqlConnectionStringBuilder();
csb.Host = ConfigurationManager.AppSettings["server"];
csb.Password = ConfigurationManager.AppSettings["password"];
csb.Pooling = true;
csb.UserName = ConfigurationManager.AppSettings["username"];
csb.Port = Convert.ToInt32( ConfigurationManager.AppSettings["port"]);
csb.Enlist = true;
//csb.Database = ConfigurationManager.AppSettings["databaseName"];
return new NpgsqlConnection(csb.ConnectionString);
}
TimeoutException
.
A timeout has occured. If you were establishing a connection, increase Timeout value in ConnectionString. If you were executing a command, increase the CommandTimeout value in ConnectionString or in your NpgsqlCommand object.
最佳答案
回答您的问题, NpgsqlConnection 不是线程安全的。您不应该与多个线程共享 NpgsqlConnection。
但是关于你的异常,如果你注意到,你会在调用 NpgsqlConnection.Open() 方法时得到它。在您的 getConnection() 方法中,您不会调用 Open。您正在其他地方打开连接。
现在,要在打开连接时获得此异常,您必须已达到最大连接池大小。这意味着您可能没有关闭之前打开的连接。
您必须在 NpgsqlConnection 对象中调用 close 或 dispose 才能将其返回到连接池。如果您让 NpgsqlConnection 实例超出范围,它将不会返回到池中,并将计为已使用的连接。
为了检查这是否是您的问题,您有两种可能性:
关于.net - 这个 NpgsqlConnection 工厂线程安全吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20373282/
这段代码线程安全吗? public static NpgsqlConnection getConnection() { NpgsqlConnectionStringBuild
我有一个 PostgreSQL 数据库,它使用字符编码 WIN1252。 在查询数据库时,有些记录在尝试读取数据时会产生错误,因为它正在尝试将其转换为UTF8。这发生在一些包含某些非拉丁字符的外国名字
我在 Parallel.ForEach 中使用 Npgsqlconnection,循环遍历列表中的内联查询。 当我达到 1400+ 左右的数字时,我得到一个异常提示 'FATAL: 53300: re
这是我在这里的第一个问题。 所以我有一个使用 Npgsql 库连接到远程数据库的应用程序。 我有一个连接到数据库的方法,执行查询,最后关闭连接。可以正常使用,但问题是,如果在程序运行但没有调用方法时,
最近,我在与托管在 CentOS 8 上的 PostgreSQL 13 数据库通信时偶然发现了某些问题。我无法使用 NpgsqlConnection 类中的方法 OpenAsync() 打开连接。同步
我正在使用 Npgsql 连接到我的 PostgreSQL 数据库。当我使用这样的本地地址时: Login = "Server = 10.0.0.5; Port = 5432; User Id = p
前几天,我遇到了一些奇怪的事情,我写了下面的程序,起草了一个用 F# 制作的 SQL Wrapper 的部分: open System open System.Data open System.Tra
.NET 5.6.1 Tasks Parallel Library - 基于应用程序在 NpSql.dll 3.1.6 调用 NpgsqlConnection.Open() 时停止响应。 经过进一步调
我是一名优秀的程序员,十分优秀!