Respond needs javascript to run. To find out more click here
Sql Server » Serdar Demir
RSS
 

Archive for the ‘Sql Server’ Category

Failed to generate a user instance of SQL Server due to a failure in starting the process for the user instance. The connection will be closed. Hatası çözümü

19 Tem

Bugun yaptıgım bir e-ticaret sitesinde üye olurken bu hata ile karşılaştım. bu hata yüzünden siteye üye olunamıyordu, uzun süre üye olmayınca bende test yapayım derken aşğıdaki hata mesajı ile karsılaştım.

Failed to generate a user instance of SQL Server due to a failure in starting the process for the user instance. The connection will be closed.

Bu hatayı çözmek için yapmanız gereken şey sadece sql server ın temp dosyalarını error log larını silemeniz bunun için

C:\Users\username\Local Settings\Application Data\Microsoft\Microsoft SQL Server Data\SQLEXPRESS

Yukarıdaki adresi server ınızda bulup SQLEXPRESS folderinin içerisindekileri silip server a reset atmanız gerekiyor. Eğer App_Data folderını göremiyorsanız View /Gürünüm menusunden gizli dosyaları gösteri işaretlemelisiniz.

 

 

SQL Server bağlantı zaman aşımı süresi doldu hatası Sql Pooling

27 Nis

Bugun muhasebe kayıtlarından çıkan bir hata yüzünden bütün kayıtları gğncellemem gerekti acele ile yazdıgım kod kırıldı :)

// Bağlantı oluştur
SqlConnection connection = new SqlConnection(ConnectionService.ConnectionString);
// Bağlantıyı aç
if (connection.State!=ConnectionState.Open)
{
connection.Open();
}
Yukarıdaki kod normal şartlarda problem çıkartmaz bunun altında genelde ya sql sorgusu yada store procedure çalıştırırsınız.  Ama iş büyük çaptaki verilere geldiginde ve bağlantı kopup tekrar açıldığında sql connection pool kapasitesini aşıyor ve SQL Server bağlantı zaman aşımı süresi doldu hatası alıyorsunuz. Bu sorunu düzeltmek için lock yapısını kullanayım dedim ama yine olmadı yapmanız gereken sadece kodu aşağıdaki şekilde değiştiriip Sqlconnection.ClearPool(connection) metodunu çalıştırmak .
SqlConnection connection = new SqlConnection(ConnectionService.ConnectionString);
SqlConnection.ClearPool(connection);
if (connection.State!=ConnectionState.Open)
{
connection.Open();
}
 
 

Store Procedure out parametresi kullanımı

25 Mar

Her ne kadar şu aralar entity framework ile uğraşşsam da store procedure de kullandığım yerler oluyor :) Out parametresi çok kullanışlı bir zellik anlatmadan geçemeyeceğim :)

Bir forum uygulamasında uye kayıt yaparken birden fazla tabloya birbiri ile id  ve unique key uzerinden senkronize bir şekilde kayıt girmem gerekiyordu (User-> Profile->Session->Member vs.)

Örneğin bir üye kayıt edelim ve o kayıt sonucu id yi isteyelim ve o id ile sesion kaydedelim. Ben direk output parametresinin eklenmesinden başlıyorum .

var paramUserKey = new SqlParameter(“UserKey”, SqlDbType.UniqueIdentifier);
paramUserKey.Direction = ParameterDirection.Output;
paramUserKey.Value = null;
komut.Parameters.Add(paramUserKey);

komut.ExecuteNonQuery();

Şimdi yukarıdaki kod parçası ile bana guid bir kayıt donecek şimdi de store procedure tarafına bakalım.
@UserKey nvarchar(64) = null out

IF @UserKey IS NULL
SET @UserKey = NEWID()

// Bu şekilde bir guid donecek eğer id dndürmek isterseniz @@identity ataması yapmanız gerekiyor.

Kodu management studio ya da test ediyoruz .

USE [Forum]
GO

DECLARE    @return_value int,
@UserKey nvarchar(64)

EXEC    @return_value = [dbo].[yaf_prov_createuser]
@UserKey = @UserKey OUTPUT

SELECT    @UserKey as N’@UserKey’

SELECT    ’Return Value’ = @return_value

GO

result: 44A69C35-F879-4195-BCF0-F31F15FA6A0D