فصل 4. نظارت بر معاملات

  • 2021-06-14

4. 1پیکربندی ورود به سیستم برای زیر سیستم معاملات

شما می توانید میزان اطلاعات ثبت شده در مورد معاملات ، مستقل از سایر تنظیمات ورود به سیستم را در JBOSS EAP کنترل کنید. می توانید تنظیمات ورود به سیستم را با استفاده از کنسول مدیریت یا CLI مدیریت پیکربندی کنید.

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

به پیکربندی زیر سیستم ورود به سیستم بروید.

  1. در کنسول مدیریت ، روی برگه پیکربندی کلیک کنید. اگر از دامنه مدیریت شده استفاده می کنید ، باید نمایه سرور مناسب را انتخاب کنید.
  2. Subsystems → Logging → Configuration را انتخاب کرده و روی مشاهده کلیک کنید.

ویژگی های com. arjuna را ویرایش کنید.

برگه دسته ها را انتخاب کنید. ورود com. arjuna در حال حاضر موجود است. com. arjuna را انتخاب کرده و روی ویرایش کلیک کنید. می توانید سطح ورود به سیستم را تغییر دهید و انتخاب کنید که از دستگیران والدین استفاده کنید یا نه.

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

از دستگیران والدین استفاده کنید:

Handler Parent نشان می دهد که آیا ورودگر باید خروجی خود را به ورود به والدین خود ارسال کند یا خیر. رفتار پیش فرض درست است.

پیکربندی ورودگر معامله با استفاده از CLI مدیریت

برای تنظیم سطح ورود به سیستم از CLI مدیریت از دستور زیر استفاده کنید. برای یک سرور مستقل ، /نمایه = پیش فرض را از دستور حذف کنید.

4. 1. 1. فعال کردن سطح ورود به سیستم

ورود به سطح ردیابی به شما امکان تشخیص مسائل JCA را در JBOSS EAP می دهد. برای فعال کردن ورود به سطح ردیابی برای کلاس com. arjuna می توانید دستور زیر را اجرا کنید:

برای یک سرور مستقل ، /نمایه = پیش فرض را از دستور حذف کنید.

4. 1. 2. فعال کردن لگگر پل معامله

پل معامله لایه ای در بالای اجزای XTS و JTA/JTS مدیر معامله است. با سایر قسمت های سرور JBoss EAP در تعامل است. شما می توانید برای توضیح دقیق عملکرد سیستم ، ورود به سیستم را از این مؤلفه هایی که با مدیر معامله تعامل دارند ، فعال کنید.

پل معامله از زیر سیستم ورود به سیستم استفاده می کند. هنگام اجرای سرور JBOSS EAP ، ورود به سیستم از پیکربندی زیر سیستم ورود به سیستم در پرونده مستقل-x. xml پیکربندی شده است. ورود به سیستم برای Bridge Transaction برای اهداف اشکال زدایی مفید است.

برای پیکربندی org. jboss. jbossts. txbridge logger می توانید از دستور management cli زیر استفاده کنید تا بتوانید ورود به سیستم پل معامله را فعال کنید:

این XML زیر را در پرونده پیکربندی سرور ایجاد می کند:

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

می توانید با استفاده از دستور CLI مدیریت زیر ، logger com. arjuna را پیکربندی کنید تا ورود به سیستم Verbose را فعال کنید:

این XML زیر را در پرونده پیکربندی سرور ایجاد می کند:

4. 1. 3. پیام های ورود به سیستم معامله

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

مدیر تراکنش (TM) زمانی که برای ورود در سطح گزارش TRACE پیکربندی شده باشد، می‌تواند اطلاعات ورود به سیستم زیادی تولید کند. در زیر برخی از متداول ترین پیام ها آمده است. این لیست جامع نیست، بنابراین ممکن است پیام‌هایی غیر از اینها را ببینید.

جدول 4. 1. تغییر وضعیت معامله

هنگامی که یک تراکنش شروع می شود، یک متد Begin از کلاس com. arjuna. ats. arjuna. coordinator. BasicAction اجرا شده و با پیام BasicAction::Begin () برای action-id در لاگ ارائه می شود.

هنگامی که یک تراکنش commit می شود، یک متد Commit از کلاس com. arjuna. ats. arjuna. coordinator. BasicAction اجرا می شود و با پیام BasicAction::Commit () برای action-id در لاگ ارائه می شود.

هنگامی که یک تراکنش به عقب برمی گردد، یک متد Rollback از کلاس com. arjuna. ats. arjuna. coordinator. BasicAction اجرا می شود و در گزارش با پیام BasicAction::Rollback() برای action-id ارائه می شود.

زمانی که یک تراکنش به پایان می رسد، یک روش doCancellations از com. arjuna. ats. arjuna. coordinator. TransactionReaper اجرا می شود و در گزارش به عنوان Reaper Worker در حال تلاش برای لغو ارائه می شود. سپس همان رشته را مشاهده خواهید کرد که تراکنش را همانطور که در بالا نشان داده شده است برمی گرداند.

4. 1. 4. رمزگشایی فایل های گزارش تراکنش

4. 1. 4. 1. تعیین مکان XID/UID یک تراکنش

رابط javax. transaction. TransactionManager دو راه برای تعیین مکان شناسه تراکنش ارائه می دهد:

    برای چاپ اطلاعات کامل در مورد تراکنش، از جمله شناسه، می توانید متد toString را فراخوانی کنید.

از طرف دیگر، می‌توانید نمونه javax. transaction. Transaction را به یک com. arjuna. ats. jta. transaction. Transaction ارسال کنید و سپس متد get_uid را که نمایش ArjunaCore Uid را برمی‌گرداند، یا متد getTxId را که Xid را برمی‌گرداند فراخوانی کنید. برای شناسه جهانی، که واجد شرایط شاخه نیست.

4. 1. 4. 2. یافتن وضعیت تراکنش و منابع

TransactionStatusConnectionManager

شی TransactionStatusConnectionManager توسط ماژول های بازیابی برای بازیابی وضعیت تراکنش استفاده می شود. مانند یک پروکسی برای اشیاء TransactionStatusManager با نگهداری جدولی از اشیاء TransactionStatusConnector عمل می کند که هر کدام در فرآیند برنامه به یک شی TransactionStatusManager متصل می شوند.

می توانید وضعیت تراکنش را با استفاده از متد getTransactionStatus که یک Uid تراکنش و در صورت موجود بودن، یک نوع تراکنش را به عنوان پارامتر می گیرد، بازیابی کنید.

  1. فیلد Uid فرآیند در پارامتر Uid تراکنش ها برای جستجوی جفت پورت میزبان TransactionStatusManagerItem هدف در ذخیره شی تراکنش استفاده می شود.
  2. جفت پورت میزبان برای ایجاد یک اتصال TCP به شی TransactionStatusManager هدف با استفاده از یک شی TransactionStatusConnector استفاده می شود.
  3. TransactionStatusConnector Uid تراکنش و نوع تراکنش را به TransactionStatusManager ارسال می کند تا وضعیت تراکنش ها را بازیابی کند.

مثال کد زیر نحوه بازیابی TransactionStatusConnectionManager و بررسی وضعیت تراکنش را نشان می دهد:

TransactionStatus Manager

شی TransactionStatusManager به عنوان یک رابط برای Recovery Manager عمل می کند تا وضعیت تراکنش ها را از فرآیندهای برنامه در حال اجرا به دست آورد. یک TransactionStatusManager در هر فرآیند برنامه توسط کلاس com. arjuna. ats. arjuna. coordinator. TxControl ایجاد می شود. یک اتصال TCP برای ارتباط بین Recovery Manager و TransactionStatusManager استفاده می شود. هر پورت رایگان توسط TransactionStatusManager به طور پیش فرض استفاده می شود. با این حال، پورت مورد استفاده را می توان با استفاده از ویژگی زیر ثابت کرد:

  1. در هنگام ایجاد، TransactionStatusManager پورتی را دریافت می‌کند که با میزبان در شی ذخیره‌سازی به‌عنوان TransactionStatusManagerItem ذخیره می‌شود.
  2. یک رشته شنونده شروع می شود که منتظر درخواست اتصال از TransactionStatusConnector است.
  3. هنگامی که اتصال برقرار شد، یک رشته اتصال ایجاد می شود که سرویس AtomicActionStatusService را اجرا می کند. این سرویس یک Uid تراکنش و یک نوع تراکنش را، در صورت وجود، از شی TransactionStatusConnector می پذیرد.
  4. وضعیت تراکنش از جدول تراکنش محلی به دست می آید و به شی TransactionStatusConnector برمی گردد.

4. 1. 4. 3. مشاهده تاریخچه معاملات

به طور پیش فرض، سرویس تراکنش تاریخچه ای را در مورد تراکنش ها حفظ نمی کند. با این حال، می توانید متغیر ویژگی CoordinatorEnvironmentBean. enableStatistics را برای سرویس تراکنش روی true تنظیم کنید تا اطلاعات مربوط به تعداد تراکنش های ایجاد شده و نتایج مربوط به آنها را حفظ کنید.

برای فعال کردن آمار می توانید از دستور مدیریت CLI زیر استفاده کنید:

با استفاده از کلاس com. arjuna. ats. arjuna. coordinator. TxStats می توانید آمار تراکنش های دقیق تری را به صورت برنامه ریزی شده به دست آورید.

مثال: کلاس TxStats

کلاس com. arjuna. ats. arjuna. coordinator. ActionManager اطلاعات بیشتری در مورد تراکنش های فعال خاص با استفاده از روش getNumberOfInflightTransactions ارائه می دهد که لیست تراکنش های فعال فعلی را برمی گرداند.

  • نویسنده : اسماعیل همتی
  • منبع : joinilluminati-society.online
  • بدون دیدگاه

ثبت دیدگاه

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