با استفاده از تابع IS_FREE_LOCK وضعیت قفل با نام 'daily_job_lock' را بررسی کنید و خروجیای شامل نام قفل و یک ستون متنی ('free' یا 'busy' یا 'unknown') نمایش دهید.
0.0 بازدید آخرین ویرایش در 220 روز قبل ساعت 01:50 0.0
با استفاده از دستور SELECT و تابع سیستمی IS_FREE_LOCK('daily_job_lock') میتوانید بفهمید قفل نامدار آزاد است یا خیر؛ مقدار 1 یعنی آزاد، 0 یعنی درگیر و NULL برای حالت نامشخص. برای نمایش خواناتر از یک CASE یا COALESCE استفاده کنید (مثلاً CASE WHEN IS_FREE_LOCK(...) = 1 THEN 'free' WHEN = 0 THEN 'busy' ELSE 'unknown' END). برای تست میتوانید از GET_LOCK و RELEASE_LOCK برای گرفتن یا آزاد کردن قفل استفاده کنید؛ دقت کنید که قفلهای نامدار در سطح سرور هستند و رفتار آنها وابسته به نشستها و مجوزهاست.
1 پاسخ
جدید ترین قدیمی ترین بالاترین امتیاز پاسخ های من
در حال بارگیری...
برای ارسال پاسخ باید با حساب کاربری وارد شوید.
ورود به حساب کاربری
نکته کلیدی این است که IS_FREE_LOCK('daily_job_lock') خروجی 1 = آزاد، 0 = درگیر، NULL = نامشخص میدهد؛ برای نمایش خوانا از CASE استفاده کنید، مثل CASE WHEN IS_FREE_LOCK(...) = 1 THEN 'free' WHEN IS_FREE_LOCK(...) = 0 THEN 'busy' ELSE 'unknown' END. قفلهای نامدار در سطح سرور هستند و رفتارشان به نشستها و مجوزها وابسته است، بنابراین برای اعتبارسنجی میتوانید از GET_LOCK و RELEASE_LOCK هم استفاده کنید تا تغییر وضعیت را بهطور هماهنگ تست کنید. همچنین به خاطر بسپارید که نقض همزمانی در محیطهای چندنشستی ممکن است باعث خروجیهای ناهمزمان شود.
گزارش