Forum

C# TransactionScope...
 
Bildirimler
Hepsini Temizle

C# TransactionScope Sorunu

6 Yazılar
2 Üyeler
0 Reactions
1,717 Görüntüleme
(@omer)
Gönderiler: 27
Eminent Member
Konu başlatıcı
 

Merhaba c# tarafında 2 farklı veri tabanı üzerinde işlem yapılırken olası hatalar durumunda işlemlerin geri alınmasını sağlarken 

"Temel alınan işlem yöneticisiyle iletişim kurulamadı" hatası almaktayım. Konu ile alakalı yardımcı olur musunuz?

 

Kodlar

using (TransactionScope sc = new TransactionScope())
{
using (SqlConnection con = new SqlConnection("Server=192.168..."))
{
con.Open();
using (SqlCommand consorgu = new SqlCommand())
{
consorgu.Connection = con;
consorgu.CommandText = @"INSERT INTO ....";

using (SqlConnection con2 = new SqlConnection("Server=192.168...."))
{
con2.Open();
using (SqlCommand consorgu2 = new SqlCommand())
{
consorgu2.Connection = con2;
consorgu2.CommandText = @"INSERT INTO ....";

try
{
consorgu.ExecuteNonQuery();
consorgu2.ExecuteNonQuery();
sc.Complete();
}
catch (Exception ee)
{
MessageBox.Show(ee.Message);
}
}
}
}
}
}

Bu konu 3 yıl önce 2 defa Gürkan tarafından düzenlendi
 
Gönderildi : 15/01/2022 15:47

(@serkanates)
Gönderiler: 1318
Üye
 

Merhaba;

Veritabanları aynı instance altında mı?

Ayrıca bknz: https://docs.microsoft.com/en-us/sql/t-sql/language-elements/begin-distributed-transaction-transact-sql?redirectedfrom=MSDN&view=sql-server-ver15

 

 
Gönderildi : 15/01/2022 16:54

(@omer)
Gönderiler: 27
Eminent Member
Konu başlatıcı
 

@SerkanAtes Bey merhaba, evet veritabanları aynı instance altında. ConString'ler tamamıyla aynı sadece veri tabanı isimleri farklı.

 
Gönderildi : 15/01/2022 17:16

(@serkanates)
Gönderiler: 1318
Üye
 

Aşağıdaki makale yardımcı olacaktır. Kolay gelsin.

https://docs.microsoft.com/en-gb/dotnet/api/system.transactions.transactionscope?view=net-6.0

 
Gönderildi : 15/01/2022 17:54

(@omer)
Gönderiler: 27
Eminent Member
Konu başlatıcı
 

@SerkanAtes bey yardım ve destekleriniz için çok teşekkür ederim fakat göndermiş olduğunuz linki daha öncede de incelemiştim ama bir sonuç alamadım hata aynı şekilde devam ediyor.

 
Gönderildi : 15/01/2022 18:24

(@serkanates)
Gönderiler: 1318
Üye
 

Merhaba tekrar;

Aslında örnek tam olarak sizin talebinizi yapıyor. Makalenin açıklama alanlarında bu durumu detaylı olarak belirtmişler.

"This function takes arguments for 2 connection strings and commands to create a transaction involving two SQL Servers. It returns a value > 0 if the transaction is committed, 0 if the transaction is rolled back. To test this code, you can connect to two different databases on the same server by altering the connection string, or to another 3rd party RDBMS by altering the code in the connection2 code block."

Bence sıfırdan bir proje oluşturun. Örneği mevcut sql servisinizde yeni oluşturduğunuz test veritabanları üzerinde test projenizle uygulamaya çalışın. Böylece sorunun kaynağını daha iyi analiz edebilirsiniz. Eğer test sisteminde sorun yaşamıyorsanız ancak mevcut projenizde problem devam ediyorsa bu durumda projeye özel danışmanlık gerekir ki buradan bunu sağlayamayız.

İyi çalışmalar.

 

 
Gönderildi : 16/01/2022 23:47

Paylaş: