Bağlantı dizgisinde here numaralı bağlantı dizesinde kullanıyorum, çünkü TransactionScope'u zaman aşımı ile de kullanıyorum. Sorun, bağlantıların bertaraf edildikten sonra kapanmayacağı ve nihayetinde bağlantı havuzunda daha fazla bağlantı bulunmadığıdır. TransactionTimeoutIssueDemo değiştirdikten sonra aynı sonucu aldım (bağlantıya bakın) ve TransactionScopeTest() (açık açılmamış bağlantı dizesi ile) bağlantı havuzundaki tüm kullanılabilir bağlantıları kullanmak için bir döngü içinde yeterli zaman çalıştı. Havuzdaki bağlantılar için varsayılan değer 100'dür, ancak bu, örneğin Max Pool Size =10
ayarı kullanılarak değiştirilebilir. SqlConnection ve TransactionScope her ikisi de using
yan tümcesiyle kullanılsa bile, bağlantılar açık açılmadan kullanıldığında bağlantıların yayınlanmayacağı anlaşılıyor. Bunu nasıl halledeceğini bilen var mı?Bağlantılar, İşlem Binding = Explicit Unbind; Bağlantı dizgisinde
5
A
cevap
3
Bağlantılar yalnızca örnekte olduğu gibi bir istisna almanız durumunda havuzda kalıyor ve yeniden kullanılmıyor gibi görünüyor. Zaman aşımını arttırırsanız bağlantı tekrar kullanılacaktır. işlem zaman aşımı süresi içinde tamamlayacak ve her şey ince ve züppe olacaktır
using (SqlConnection con = new SqlConnection(connectionString))
{
con.Open();
try
{
Console.WriteLine("Server is {0}", con.ServerVersion);
Console.WriteLine("Clr is {0}", Environment.Version);
for (int i = 0; i < 5; i++)
{
using (SqlCommand cmd = con.CreateCommand())
{
cmd.CommandText = "insert into TXTEST values (" + i + ")";
cmd.ExecuteNonQuery();
}
Console.WriteLine("Row inserted");
}
Thread.Sleep(TimeSpan.FromSeconds(1));
}
catch
{
SqlConnection.ClearPool(con);
throw;
}
}
Çoğu durumda:
bu sorunun geçici böyle bir istisna olsun durumda bağlantı havuzu temizlemektir. işlemi aslında zaman aşımına uğradığında, yeniden kullanılmayacak kirli bağlantıları temizlemek için havuzu temizlersiniz. Bu elbette havuzda bu problemden etkilenmeyen diğer bağlantıları etkileyecektir.
Bu çirkin bir çözümdür, ancak işe yarıyor gibi görünüyor.
0
Değeri için, bu sorun .Net 4.0'da giderilmiştir.
İlgili konular
- 1. jquery unbind click
- 2. Çoklu bağlantılar
- 3. işlevi ek dizgisinde çalışmıyor
- 4. Python dizgisinde boşluk
- 5. html durum dizgisinde render
- 6. ComboBox SelectedValue veya SelectedItem Binding WPF C#
- 7. ListBox SelectedItems Binding
- 8. Binding Troubles Komutla ViewModel
- 9. TabItem Binding WPF
- 10. TwoWay Binding With ItemsControl
- 11. Binding ToolbarItem Tıklayın Xamarin.Forms
- 12. wpf textbox text binding
- 13. MVVM datagrid binding
- 14. Silverlight DataGridTextColumn Binding Görünürlük
- 15. ÖğelerControl ItemTemplate Binding
- 16. WPF Binding: yolunu
- 17. WPF TextBlock Binding
- 18. Binding FocusAction Davranış Düğme
- 19. Bağlantılar C# metin kutusunda
- 20. Bir Kotlin Dizgisinde $ {something} Kaçış
- 21. C dizgisinde C neden kullanılır?
- 22. Python dizgisinde virgül nasıl yazılır
- 23. Olay işleme jQuery unclick() ve unbind() olayları?
- 24. Safari Uzantısı Popover Bağlantılar
- 25. etiketi içindeki "Bozuk" bağlantılar
- 26. Org modu: Bilgi dosyalarına bağlantılar yerleştirme
- 27. Taşıma bağlantılar
- 28. şekillendirme bağlantılar
- 29. Evrensel Bağlantılar iOS
- 30. ReST/Sphinx'teki bağlantılar içindeki değiştirmeler