PDA

View Full Version : پیاده سازی Two phase Commit در SQL Server



sepide77
یک شنبه 25 تیر 1391, 17:13 عصر
با سلام و خسته نباشید لطفا کمکم کنید که چگونه two phase commit رو در sql server می توانیم شبیه سازی کنیم ؟
( کامیت دوفازی در سیستم توزیع شده است که یک سرور مرکزی یا هماهنگ کننده به بقیه سرورها تقاضایی رو میفرستد بعد که از همه پاسخ هارا دریافت کرد به همه میگوید کامیت کنند ودوباره همه پیغام ok رو به سرور مرکزی میفرستند حال ازمن خواسته شده این را در sql شبیه سازی کنم خواهش میکنم زودتر کمکم کنید چون فقط یک روز به من وقت داده)
باتشکر

حمیدرضاصادقیان
دوشنبه 26 تیر 1391, 09:56 صبح
سلام.
من عنوان تاپیک رو اصلاح کردم. دفعه بعد حذف خواهد شد.دقت کنید لطفا.

در مورد سوالی که مطرح کردید با Replication میتوانید اینو در SQL Server پیاده سازی کنید. میتوانید از این جزوه (http://barnamenevis.org/showthread.php?318803-%D9%85%D9%82%D8%A7%D9%84%D9%87-%D8%A7%DB%8C-%D9%81%D8%A7%D8%B1%D8%B3%DB%8C-%D8%AF%D8%B1-%D9%85%D9%88%D8%B1%D8%AF-%D8%B1%DB%8C%D9%BE%D9%84%DB%8C%DA%A9%DB%8C%D8%B4%D 9%86%D8%9F%D8%9F%D8%9F%D8%9F&highlight=Replication) برای راه اندازی Replication کمک بگیرید.

baktash.n81@gmail.com
دوشنبه 26 تیر 1391, 11:03 صبح
سلام

البته خود مایکروسافت هم یه کارایی در این خصوص انجام داده .. MS DTC ... Distributed Transaction Coordinator
برای راه اندازی این سیستم به طور مختصر باید این چندکار رو امجام بدید ...
1- ایجاد یه Link Server در سروری که می خواین Transaction روش انجام بشه ...
2- نصب و راه اندازی سرویس Distributed Transaction Coordinator در هر دو سرور ... این یک سرویس ویندوزی هست ... یعنی از Services داخل Adminstrative Tools باید بازش کنید ... برای تنظیم کردنش هم در Run تایپ کنید dcomcnfg در قسمت Componnent Services دقت کنید برای اتصال دو DTS باید تنظیماتی رو هر کدوم انجام بدید ... برای سرور مبدا روی Distributed Transaction Coordinator / Local DTS راست کلیک کنید , Propertise رو بزنید در تب مربوط به Security اینها رو فعال کنید Network DTS Aceess و Allow Remot Client و Allow OutBound و No Authentication Required رو هم امتخاب کنید برای سرور مقصد هم همین کار و انجام بدید فقط Allow InBound رو انحاب کنید ...
- یک تراکنش ایجاد کنید از نوع توضیعی ... به این صورت ...


Begin Distributed tran Test2PC
Delete from Test.dbo.T1
Delete from [SSRS\SQLREPORTS].test.dbo.TT1
Commit tran Test2PC


که Delete دوم روی یک لینک سرور انجام می شه ....

اگه خطایی داشتید اینجا قرار بدید تا حل بشه ...