Forum
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);
}
}
}
}
}
}
Merhaba;
Veritabanları aynı instance altında mı?
@SerkanAtes Bey merhaba, evet veritabanları aynı instance altında. ConString'ler tamamıyla aynı sadece veri tabanı isimleri farklı.
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
@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.
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.