PDA

View Full Version : مدیریت کانکشن ها در ASP.NET؟



alex1000
شنبه 10 مهر 1389, 16:09 عصر
سلام.
دوستان من در ASP.NET با مدیریت کانکشن ها مشکل دارم.
یعنی یه sqlconnection.open رو اجرا می کنم و بعد از اجرای یه سری اعمال روی بانک sqlconnection.close و sqlconnection.dispose رو اجرا می کنم. اما sqlserver بلافاصله این کانکشن رو نمی بنده.
می دونید از کجا می فهمم که کانکشن بسته نشده، میرم رو بانک مربوطه و Detach رو میزنم میگه active connection وجود داره؟!!
چرا؟! راهی وجود داره که بلافاصله کانکشن ها رو بست؟!
SqlConnection.ClearAllPools رو هم تست کردم باز نتیجه نگرفتم؟!!!

salehbagheri
شنبه 10 مهر 1389, 20:53 عصر
می دونید از کجا می فهمم که کانکشن بسته نشده

از طريق ConnectionState ها ميتونيد وضعيت كانكشنها رو كنترل كنيد.


if (YourConnection.State == ConnectionState.Open)
YourConnection.Close();

alex1000
یک شنبه 11 مهر 1389, 08:17 صبح
از طريق ConnectionState ها ميتونيد وضعيت كانكشنها رو كنترل كنيد.


if (YourConnection.State == ConnectionState.Open)
YourConnection.Close();



سلام. مسئله چک کردن باز یا بسته بودن نیست، مشکل اینه که بعد فراخوانی close sqlserver کانکشن رو بلافاصله نمی بنده و اون را دقایقی باز نگه می داره که این در مواقعی که ما به تعداد زیاد عمل باز و بستن بانک رو انجام میدیم، مشکل ساز میشه.

salehbagheri
یک شنبه 11 مهر 1389, 09:56 صبح
سلام. مسئله چک کردن باز یا بسته بودن نیست، مشکل اینه که بعد فراخوانی close sqlserver کانکشن رو بلافاصله نمی بنده و اون را دقایقی باز نگه می داره که این در مواقعی که ما به تعداد زیاد عمل باز و بستن بانک رو انجام میدیم، مشکل ساز میشه.

خب دوست عزيز دقت نكرديد!

شما وقتي يك كانكشن رو مي بنديد و اون كانكشن درجا بسته نميشه، براي كارهاي بعدي دوباره ميتونيد از وضعيت اون كانكشن استفاده ببريد.

مثلاً يك كانكشن رو بستيد و پس از چند ثانيه دوباره ميخواهيد همون كانكشن رو باز كنيد. ابتدا چك كنيد ببينيد بسته هست يا خير سپس كار خودتون رو انجام بديد. لازم نيست كه حتماً كانكشن قبلي بسته بشه و سپس كانكشن جديد رو باز كنيد.


if (YourConnection.State == ConnectionState.Open)
{
//TODO:
}