نمایش نتایج 1 تا 2 از 2

نام تاپیک: اتصال به دیتابیس لوکال در صورت برقرار نشدن ارتباط به سرور

  1. #1

    اتصال به دیتابیس لوکال در صورت برقرار نشدن ارتباط به سرور

    با سلام

    دوستانی که در این مورد کار کرده اند لطف بکنند و یه توضیحی بدند ... آیا یه همچین چیزی ممکنه که اگر سرور در دسترس نبود , کلاینت داده ها رو دیتابیس لوکال خودش بنویسه و در اولین کانکت اون داده ها رو به سرور بفرسته ؟!؟!

    مگر در این حالت یکپارچگی داده به هم نمی خورد ؟ چگونه میشه در این حالت Concurrency زو کنترل کرد ؟ و....

    اگر این موارد ممکن است لطفا در مورد نحوه پیاده سازی یه توضیح مختصری بدین ...


    موفق باشید

  2. #2
    کاربر دائمی آواتار Saeed_m_Farid
    تاریخ عضویت
    تیر 1386
    محل زندگی
    فضای تهی میان دیوارها
    سن
    44
    پست
    1,046

    نقل قول: اتصال به دیتابیس لوکال در صورت برقرار نشدن ارتباط به سرور

    نقل قول نوشته شده توسط SIR_asad مشاهده تاپیک
    با سلام

    دوستانی که در این مورد کار کرده اند لطف بکنند و یه توضیحی بدند ... آیا یه همچین چیزی ممکنه که اگر سرور در دسترس نبود , کلاینت داده ها رو دیتابیس لوکال خودش بنویسه و در اولین کانکت اون داده ها رو به سرور بفرسته ؟!؟!

    مگر در این حالت یکپارچگی داده به هم نمی خورد ؟ چگونه میشه در این حالت Concurrency زو کنترل کرد ؟ و....

    اگر این موارد ممکن است لطفا در مورد نحوه پیاده سازی یه توضیح مختصری بدین ...


    موفق باشید
    سلام
    قبلش بگم که این پست شاید دقیقاً اون چیزی نباشه که مدنظر شماست، یعنی حتماً یه روش استاندارد باید وجود داشته باشه که من هم پیدا نکردم، ولی به هرصورت با این اختلالات گسترده شبکه همیشه باید یه راهکار گریزی واسه این مورد وجود داشته باشه.

    مشکل مورد نظر رو من مجبور شدم به این صورت حل کنم :

    • در اولین فراخوانی وب سرویس برای هر thread تو کلاینت، یه وب متد تست برای hand shaking با وب سرویسم گذاشتم که در صورت برقرار نشدن ارتباط روال برنامه سمت کلاینت برای دریافت اطلاعات ادامه پیدا میکنه و اطلاعات کاربر با درنظر گرفتن ساعت و تاریخ، تو یه دیتابیس محلی ذخیره میشه و فقط در انتها این موضوع به کاربر اطلاع داده میشه که تاخیری تا زمان حل مشکل شبکه ممکنه تو درخواست شما پیش بیاد ...
    • حالا اولین بار که یه thread تونست موفق به ارتباط با وب سرویس بشه، من تمام رکوردهایی که تو دیتابیس local وجود دارن رو برداشته و تو یه صف قرار میدم و برای هر کدوم یه thread بصورت پشت صحنه با یه تاخیر عمدی که وب سرورم رو نخوابونه، ایجاد میکنم و روالهای عملیاتی (از جمله درگیر با دیتابیس) وب سرویس رو برای رکورد موردنظر با در نظر گرفتن یه فلگ که نشان دهنده زمان و تاریخ عملیات برای رکورد مورد نظر هست، انجام میدم.
    • به این صورت هم مطمئن میشم که رکورد روال طبیعی خودش رو طی کرده و هم زمان و تاریخ و همزمانی دیتابیس اصلی بهم نمیخوره.
    • اینم بگم که دیتابیس اصلی اوراکل و محلی Sql-serevr هست که طبیعتاً کلاینت از هیچکدوم اطلاع نداره و فقط با وب متد ها طرف هست.

    امیدوارم کمکی کرده باشم.

قوانین ایجاد تاپیک در تالار

  • شما نمی توانید تاپیک جدید ایجاد کنید
  • شما نمی توانید به تاپیک ها پاسخ دهید
  • شما نمی توانید ضمیمه ارسال کنید
  • شما نمی توانید پاسخ هایتان را ویرایش کنید
  •