دریافت خطای SQL timeout expired در زمان ثبت، ویرایش، ارجاع (Assign کردن) یا Resolve کردن
در صورتیکه هنگام کار کردن با مایکروسافت سی.آر.ام () با خطای ذکر شده مواجه شدید به این معناست که هنگام کار درخواست دریافت، ویرایش یا ثبت اطلاعات از SQL Server در برنامه به دلایلی با خطای Timeout مواجه شده است.
دلایل زیادی میتواند باعث بروز این مشکل شود، یکی از آنها Fragment نبودن Indexهای دیتابیس میتواند باشد. یا اینکه Query بسیار پیچیده است و به دلیل حجم بالای اطلاعات زمان منتظر ماندن سیستم برای دریافت اطلاعات سپری شده است، بنابراین برنامه این خطا را نمایش میدهد.
«راه حلها»
- در صورتیکه به برنامه SQL Server مسلط هستید، میتوانید به کمک SQL Server Management Studio و Activity Monitor و ابزارهای دیگری که در آن وجود دارد Query خود را مشاهده کنید و به کمک Execution Plan متوجه شوید به چه Indexی نیاز است و آن Index را در جدول مورد نظر ایجاد نمایید.
- افزودن به زمان انتظار برای اجرا شدن Query در نرمافزار به روش ذکر شده در ذیل.
افزودن به زمان انتظار برای اجرای Query در Microsoft CRM
برای افزودن به زمان انتظار اجرا شدن Query میبایست روی سرور اپلیکیشن سی.آر.ام مقدار متغیر OLEDBTimeout را در رجیستری اضافه کنید.
برای انجام آن مراحل ذیل را به ترتیب انجام دهید:
- برنامه Regedit را اجرا کنید.
- به مسیر HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\MSCRM بروید.
- در صورتیکه کلید با نام OLEDBTimeout وجود دارد، فقط کافیست مقدار آنرا افزایش دهید. در صورتیکه وجود ندارد سیستم از مقدار پیشفرض 30 ثانیه استفاده میکند و میبایست یک کلید از نوع DWORD ایجاد کرده و نام آنرا به نام ذکر شده ویرایش کنید.
- مقدار دلخواه را به ثانیه در قسمت Decimal وارد نمایید.
- در cmd که از نوع Run as administrator باز کردهاید دستور iisreset را وارد کنید تا سرویس IIS مجدد راهاندازی شود.
- سرویس Sandbox سی.آر.ام را نیز ریستارت کنید.