معاملات اتمی

ساخت وبلاگ

ارکسترهای BizTalk می توانند به دنبال مفهوم کلاسیک اسید "یک معامله" ، برای اجرای بخش های گسسته کار طراحی شوند. این واحدهای کار گسسته یا اتمی ، هنگام انجام ، روند کار را از یک حالت مداوم به حالت جدید ، سازگار و با دوام منتقل می کنند که از سایر واحدهای کار جدا شده است. این به طور معمول با استفاده از ساختار دامنه انجام می شود که واحدهای کار را با معناشناسی معاملات محاصره می کند. کل ارکستراسیون همچنین می تواند به عنوان یک معامله اتمی بدون استفاده از Scopes تعریف شود. با این حال ، دامنه ها نمی توانند به عنوان معامله ای مشخص شوند ، مگر اینکه خود ارکستراسیون به عنوان یک نوع معاملات طولانی یا اتمی مشخص شود. معاملات اتمی تضمین می کند که در صورت بروزرسانی در هنگام بروزرسانی معامله ، هرگونه به روزرسانی جزئی به طور خودکار به عقب برگردانده می شود و اثرات معامله پاک می شود (به جز تأثیر هرگونه تماس دات نت که در معامله انجام می شود). معاملات اتمی در ارکسترهای BizTalk مشابه معاملات هماهنگ کننده معامله توزیع شده (DTC) است که به طور کلی کوتاه مدت است و دارای چهار ویژگی "اسید" (اتمی ، قوام ، انزوا و دوام) است:

اتمی

یک معامله یک واحد اتمی کار را نشان می دهد. یا تمام تغییرات موجود در یک معامله انجام می شود ، یا هیچ یک از اصلاحات انجام نمی شود.

ثبات

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

انزوا

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

دوام

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

سطح جداسازی زیر توسط معاملات اتمی مورد استفاده در ارکسترهای BizTalk پشتیبانی می شود:

خواندن متعهد

قفل های مشترک در حالی که داده ها خوانده می شوند برای جلوگیری از خواندن کثیف نگه داشته می شوند ، اما داده ها را می توان قبل از پایان معامله تغییر داد و در نتیجه خواندن غیر قابل تکرار یا داده های فانتوم.

قابل تکرار خواندن

قفل ها در تمام داده هایی که در یک پرس و جو استفاده می شوند قرار می گیرند و از به روز کردن سایر کاربران جلوگیری می کنند. این مانع از خواندن غیر قابل تکرار می شود ، اما ردیف های فانتوم هنوز هم امکان پذیر است.

سریال پذیر

قفل دامنه ای قرار می گیرد که از به روزرسانی سایر کاربران و یا درج ردیف ها در پایگاه داده تا زمان تکمیل معامله جلوگیری می شود.

سرور BizTalk تضمین می کند که در یک معامله اتمی - مانند تغییر در متغیرها ، پیام ها و اشیاء - در خارج از محدوده معامله اتمی قابل مشاهده است و فقط با تعهد معامله قابل مشاهده است. تغییرات حالت میانی از سایر قسمت های یک ارکستراسیون جدا شده است.

اگر یک معامله اتمی حاوی شکل دریافت ، شکل ارسال یا شکل ارکستراسیون شروع باشد ، اقدامات مربوطه تا زمان انجام معامله انجام نمی شود.

اگر به داده های اسید کامل نیاز دارید - به عنوان مثال ، وقتی داده ها باید از سایر معاملات جدا شوند - باید به طور انحصاری از معاملات اتمی استفاده کنید.

هنگامی که یک معامله اتمی انجام نشود ، همه ایالت ها مجدداً تنظیم می شوند که گویی نمونه ارکستراسیون هرگز وارد محدوده نمی شود. قانون BizTalk برای معاملات اتمی این است که همه متغیرها (نه فقط محلی در محدوده) در معامله شرکت می کنند. تمام متغیرها و پیام های غیر قابل استفاده در یک معامله اتمی باید به صورت محلی به دامنه اعلام شوند. در غیر این صورت ، کامپایلر خطای "متغیر را نشان می دهد. به عنوان سریال قابل استفاده نیست". فرض بر این است که همه دامنه های اتمی "هماهنگ" هستند و کامپایلر ارکستراسیون هشدار برای استفاده اضافی را فراهم می کند ، اگر در واقع از کلمه کلیدی هماهنگ برای دامنه های اتمی استفاده شود. هماهنگ سازی برای داده های مشترک از ابتدای دامنه تا زمان تکمیل موفقیت آمیز دامنه (از جمله پایداری دولت در پایان دامنه) یا برای تکمیل کنترل کننده استثنا (در صورت بروز خطا) گسترش می یابد. دامنه هماهنگ سازی به کنترل کننده جبران خسارت نمی رسد.

معاملات اتمی می تواند با مقادیر زمان بندی همراه باشد که در آن مرحله ارکستراسیون معامله را متوقف می کند و نمونه به حالت تعلیق در می آید. اگر یک معامله اتمی حاوی شکل دریافت ، شکل ارسال یا شکل ارکستراسیون شروع باشد ، اقدامات مربوطه تا زمان انجام معامله انجام نمی شود.

معامله اتمی هنگامی که کاربر عمداً یک retryTransactionException را پرتاب می کند یا اگر یک پایداری در آن زمان که معامله اتمی سعی در انجام آن دارد ، افزایش می یابد. دومی ممکن است اتفاق بیفتد اگر به عنوان مثال ، معامله اتمی بخشی از معامله DTC توزیع شده بود و برخی دیگر از شرکت کنندگان در آن معامله ، معامله را متوقف کردند. به همین ترتیب ، اگر در زمانی که معامله در تلاش برای انجام آن بود ، مشکلات اتصال به پایگاه داده وجود داشته باشد ، یک پایداری نیز مطرح می شود. اگر این اتفاق برای یک محدوده اتمی که دارای آزمایش مجدد = True باشد ، اتفاق بیفتد ، تا 21 بار دوباره امتحان می شود. تأخیر بین هر امتحان به طور پیش فرض دو ثانیه است (اما این قابل اصلاح است). بعد از اینکه 21 ترمیم خسته شد ، اگر معامله هنوز قادر به انجام آن نباشد ، کل نمونه ارکستراسیون به حالت تعلیق در می آید. می توان آن را به صورت دستی از سر گرفت و از ابتدای دامنه اتمی توهین آمیز ، دوباره با یک پیشخوان تازه شروع می شود.

فقط retryTransactionException و PersistisionException می تواند باعث آزمایش مجدد اتمی شود. هر استثنائی دیگر که در یک محدوده اتمی مطرح شده است ، نمی تواند باعث مجدد آن شود ، حتی اگر خاصیت آزمایش مجدد درست باشد. تأخیر پیش فرض دو ثانیه ای بین هر دو ترمیم متوالی می تواند با استفاده از یک ملک عمومی در retryTransactionException (اگر این استثنا باشد که برای ایجاد ترمیم ها استفاده می شود) نادیده گرفته شود.

دامنه های اتمی محدودیت هایی در لانه سازی سایر معاملات دارند که نمی توانند معاملات دیگر را لانه کنند یا شامل بلوک های استثناء شوند.

معاملات DTC

در حالی که معاملات اتمی مانند معاملات DTC رفتار می کند ، آنها به طور پیش فرض معاملات DTC نیستند. شما می توانید به صراحت آنها را معاملات DTC انجام دهید ، مشروط بر اینکه هرگونه اشیاء مورد استفاده در معامله ، اشیاء COM+ به دست آمده از System. EnerpriseService. ServicedComponsents ، و این سطح انزوا بین مؤلفه های معامله موافق باشد.

معامله اتمی نمی تواند شامل معاملات دیگری در آن باشد ، و همچنین نمی تواند حاوی دستگیرندگان استثنا باشد.

معامله اتمی نمی تواند شامل اقدامات ارسال و دریافت باشد-یعنی یک جفت پاسخ درخواست یا ارسال و دریافت آن از همان مجموعه همبستگی استفاده می کند.

اشیاء غیرقانونی

اگر می خواهید از یک شیء غیر قابل استفاده در یک ارکستر استفاده کنید ، باید فقط در یک معامله اتمی از آن استفاده کنید. هرگونه استفاده از چنین شیء خارج از معامله اتمی ، هر زمان که ارکستراسیون توسط موتور ادامه یابد ، از دست دادن داده ها خطر می کند.

هر دامنه اتمی نشان دهنده یک نقطه پایداری است و این بدان معنی است که وضعیت ارکستراسیون در هر نقطه پایداری به پایگاه داده ذخیره می شود. استفاده گسترده از دامنه اتمی باعث افزایش تأخیر در ارکستراسیون می شود. به جای استفاده از دامنه اتمی به منظور ایجاد اشیاء غیر قابل استفاده ، می توانید از تماس های استاتیک استفاده کنید که آنها به آنها نیاز ندارند ، به دامنه اتمی نیاز ندارند ، بنابراین نیاز به نقاط پایداری را از بین می برید.

بازار رمزارزها...
ما را در سایت بازار رمزارزها دنبال می کنید

برچسب : نویسنده : محمود کیانوش بازدید : 29 تاريخ : سه شنبه 26 ارديبهشت 1402 ساعت: 10:10