PDA

View Full Version : اطمینان از برقراری ارتباط با سرور



ali_mnkt
جمعه 15 خرداد 1388, 14:36 عصر
سلام به دوستان

با چه کدی می تونم از برقراری ارتباط با پایگاه داده در یک برنامه تحت شبکه اطلاع پیدا کنم ؟

چون در نظر بگیرید یه برنامه اجرا شده و بعد از یه مدتی به هر دلیلی ( از جمله hibernate شدن

سرور و یا خاموش شدن اون ) ارتباط client ها با سرور قطع بشه . و در این هنگام کاربر

بخواد مثلا به پایگاه دسترسی داشته باشه در لحظه ای که به کد مثلا

sqlconnection1.execute nounquery برسه خطا می ده که ارتباط با sql برقرار نیست. حالا برای

جلوگیری از این مشگل چیکار باید بکنم ؟

anooshiran
جمعه 15 خرداد 1388, 21:15 عصر
سلام دوست عزيز

ساده ترين راه براي كنترل online بودن server روش ping كردن آن است. از كد زير براي ping سرور خود ميتوانيد استفاده كنيد.
البته لازم است به عرض برسانم كه يا قبل از برقراي ارتباط با server مي توانيد آنرا ping كنيد يا در يك thread در فواصل زماني تعيين شده اين كار را انجام دهيد.
timeout پيش فرض براي در خواست ping حدود 500ms ميباشد




If My.Computer.Network.Ping(ServerIp) Then
MsgBox("The Server is responding")
Else
MsgBox("The Server is Not responding")
End If

ali_mnkt
شنبه 16 خرداد 1388, 02:12 صبح
مرسی دوست عزیز از توجه و راهنماییت من قبلا هم از ping استفاده کرده بودم ولی ping

زمانی که server خاموش باشه جواب می ده اما وقتی که server در حالت hibernate باشه

تشخیص نمی ده و ارتباط رو برقرار فرض می کنه در صورتی که دستور

sqlcommand1,execute noun query ارتباط رو در این حالت قطع در نظر می گیره و خطا می ده.

نظرتون در مورد exception ها چیه یعنی دستور هایی از قبیل دستور بالا رو توی یه try قرار بدیم

و در catch بر حسب خطا پیغام بدیم اما exception مربوط به این نوع خطا ها چیه ؟ یعنی چطوری

باید تعریف بشن ؟