Merhaba arkadaşlar,
başıma geldiği için konuyu açıyorum .net de herhangi bir connection açıp kapatmadığınızda pooling hatası vermektedir.
Bu hata sql serverda sleeping statusuna ait kullanıcı kayıtları oluşturmaktadır.
Belli bir sayıya ulaştığında da yazılımınız hata verir ve patlar.
Mssql server da açık olan kullanıcıları görmek için
sp_who2 veya
sp_who yazmanız yeterli olur.
Açık olan bağlantıyı öldürmek için
kill spid sini yazmanız gerekiyor.
Bir database ye ait tüm bağlantıları görmek için
DECLARE @Table TABLE(
SPID INT,
Status VARCHAR(MAX),
LOGIN VARCHAR(MAX),
HostName VARCHAR(MAX),
BlkBy VARCHAR(MAX),
DBName VARCHAR(MAX),
Command VARCHAR(MAX),
CPUTime INT,
DiskIO INT,
LastBatch VARCHAR(MAX),
ProgramName VARCHAR(MAX),
SPID_1 INT,
REQUESTID INT
)
INSERT INTO @Table EXEC sp_who2
SELECT *
FROM @Table
WHERE DBName ='Bildiklerimiz' -- database adi
Bir database ye ait tüm bağlantıları öldürmek için ise
DECLARE @kill varchar(8000); SET @kill = '';
SELECT @kill = @kill + 'kill ' + CONVERT(varchar(5), spid) + ';'
FROM master..sysprocesses
WHERE dbid = db_id('Bildiklerimiz') --database adi
EXEC(@kill);
Bu işlem sizin hatanısı gidermez sadece görmenizi sağlar.
Şayet pooling hatası alıyorsanız yapmanız gereken tüm kodlarınızı kontrol etmek açık olan connection bağlantılarının kapandığına emin olun.
iyi çalışmalar.