الأخطاء الحرجة عند الدخول
يدخل المستخدم إلى النظام، فيظهر له قبل أي شيء رَكْمٌ من الرسائل الحمراء: «يوجد ٣ مستندات فشلت معالجتها…»، و«مجلد النسخ الاحتياطي … غير موجود…»، و«Database transaction isolation level is not correct…». لم يفعل هو شيئاً يسبّبها، ولا يستطيع هو شيئاً يزيلها.
هذه قائمة الأخطاء الحرجة: مجموعة فحوص صحّة يجريها الخادم على نفسه ويعرضها على كل من يدخل. وهي أقرب ما في «نما» إلى لمبة تحذير في لوحة قيادة، وهي عادةً أول ما يُلصق في تذكرة دعم. وكل ما في القائمة حقيقي، ولكل سطر سبب يمكن العثور عليه، ومعظمها إعداد أحدهم لا خلل في المنتج.
هذه ليست حالات رفض
الخطأ الحرج لا يمنع حفظاً أبداً. هو كلام عن الخادم لا عن السجل الذي أمامك. أما الحفظ المرفوض فأسرة أخرى تماماً — الرسائل وحالات الرفض.
كيف تسلك القائمة
تُبنى مرة ثم تُحفظ في الذاكرة. فالفحوص مكلفة — تعدّ سطوراً، وتقرأ مجلدات، وتسأل قاعدة البيانات عن نفسها — فيحسبها الخادم مرة ويعطي القائمة ذاتها لكل دخول بعدها. ولذلك فإصلاح المشكلة لا يُزيل الرسالة.
وأربعة أشياء تعيد بناءها:
- مرة كل ساعة آلياً. ويمكن تغيير الموعد بالمفتاح
critical-errors-refresh-cronفيnama.properties. - عند الطلب، بفتح
utils?refreshcriticalerrors=trueعلى الخادم:http://localhost:8080/erp/utils?refreshcriticalerrors=true وهذا هو «Refresh Critical Errors» الذي تطلبه أجوبة الدعم. - من مهمة مجدولة، بإجراء EARefreshCriticalErrors — وهو ما يجعل التحديث جزءاً من روتين ليلي.
- عند فشل طلب أعمال أو نجاحه، لعدّاد الطلبات الفاشلة وحده. فذلك الرقم يحدّث نفسه، وما عداه ينتظر تحديثاً.
وتُعرض عند الدخول ثلاث مرات في الجلسة على الأكثر. فالقائمة تُدفع إلى المستخدم لحظة دخوله، وإن أغلقها عادت مرتين على الأكثر في جلسة المتصفح تلك ثم توقفت — فليس معنى «اختفت الرسالة» أن المشكلة حُلّت.
من يراها
ليس الجميع، وهذا مقصود — فصفٌّ من الكاشيرات لا يحتاج أن يعرف عن مستوى عزل قاعدة البيانات. وتُخفى القائمة عن مستخدم بإحدى طريقتين:
- عدم إظهار الأخطاء الحرجة لهذا المستخدم في إعدادات المستخدم نفسه، أو
- عدم إظهار الأخطاء الحرجة في ملف صلاحياته، فتُخفى عن دور كامل بضربة واحدة.
والمستخدم admin هو الاستثناء: لا يجوز حجبها عنه. ومحاولة حفظ هذا الإعداد على admin تُرفض برسالة You can not disable critical errors for administrator.
إيقاف الفحوص ليس جواباً عليها
المفتاح disable-critical-errors في nama.properties يوقف الآلية كلها، ويمكن إسكات فحص واحد بمفتاح خاص به. وكلاهما موجود لخوادم يكون فيها فحص بعينه بلا معنى حقاً — كقاعدة بيانات مُدارة لا يرى «نما» نسخها الاحتياطية، ولها خيار مدعوم خاص بها. فاجعلهما آخر ما تلجأ إليه، ولا تلجأ إليهما لفحص النسخ الاحتياطية لمجرد أنه مزعج.
أن تعرض رسالتك الخاصة على مستخدمي عميل
يحتاج الدعم أحياناً أن يخبر الجميع في موقعٍ بشيء — توقف مخطَّط، أو حملة تصحيح بيانات، أو «لا تدخلوا فواتير على الدفتر القديم». وملفٌّ اسمه critical-error-messages.txt في مجلد عمل الخادم يفعل ذلك بالضبط: كل سطر فيه يصير سطراً في قائمة الأخطاء الحرجة، ويُترجم كأي رسالة أخرى. ويمكن تقسيم رسالة طويلة على أسطر عدة بإنهاء كل سطر بشَرطة خلفية \. واحذف الملف فتزول الرسائل عند التحديث التالي.
الفحوص واحداً واحداً
الخادم وقاعدة البيانات
| الرسالة | ما رفعها | ما تفعله |
|---|---|---|
| Database transaction isolation level is not correct, please contact our support team and provide them the following message: TIL is {n} | قاعدة البيانات لا تعمل بعزل read-committed-snapshot. و«نما» يحتاجه؛ وبدونه يتعارض القارئون والكاتبون فيصير النظام كله بطيئاً. بالإنجليزية فقط. | تغييرٌ يجريه مسؤول قاعدة البيانات، لا شيء في «نما». والرقم في الرسالة يخبر الدعم بالمستوى الذي وجده. |
| The background processor is not working, please check the server | الخيط الذي يعالج طلبات الأعمال ليس حياً. ولن يُسجَّل شيء في الحسابات ولا في المخزن حتى يعود. بالإنجليزية فقط. | أعجل ما في هذه الصفحة. راجع سجل الخادم عن الفشل الذي قتله، ثم أعد تشغيل خادم التطبيق. |
| Folder {0} is almost full, remaining space is less than {1} GB | مجلد مراقَب للمساحة الحرة هبط تحت الحدّ. والمجلدات والحدّ يأتيان من المجلدات التي يجب أن يقوم النظام بالتحقق من المساحة المتبقية فيها (CSV) وتحذير المستخدمين عندما تصل المساحة المتبقية لأقل من (GB)؛ ومع ترك الإعداد فارغاً يراقب قرص النظام. بالإنجليزية فقط. | أفرِغ مساحة، أو وجّه المراقبة إلى المجلدات الصحيحة: value.info.foldersToCheckSpace |
| Tomcat logs folder is {0} MB, please review and clean up old log files | تجاوز مجلد سجلات خادم التطبيق ٦ جيجابايت. و«نما» يحذف سجلات خدمة ويندوز الأقدم من خمسة أيام بنفسه، ولا يحذف غيرها في ذلك المجلد. بالإنجليزية فقط. | نظّف السجلات القديمة، واضبط تدوير السجلات على خادم التطبيق. |
| You did not define server id in global configuration, all e-mail, SMS, and Mobile Push notifications will be postponed. | حقل ارسال البريد و الرسائل من الخوادم (CSV) فارغ. وهو يسمّي الخادم المسموح له بالإرسال حتى لا ترسل نسخةٌ تجريبية من قاعدة البيانات بريداً إلى عملاء حقيقيين — وما دام فارغاً فلا يُرسل شيء أصلاً. بالإنجليزية فقط. | املأه بمعرّف هذا الخادم: value.info.sendMailsAndSMSOnlyFromServers |
النسخ الاحتياطية
ثلاث رسائل تأتي من فحص واحد — الفحص الذي يتأكد من وجود نسخة احتياطية حديثة لقاعدة البيانات فعلاً:
- «لم يتم تحديد مجلد النسخ الاحتياطي في الإعدادات العامة، برجاء تعبئة حقل مجلد النسخ الاحتياطي»
- «مجلد النسخ الاحتياطي {0} غير موجود أو لا يمكن الوصول إليه»
- «لا توجد نسخة احتياطية بتاريخ اليوم أو الأمس في مجلد النسخ الاحتياطي {0}»
وكل واحدة ترتبط مباشرة بالإعداد الذي تتحدث عنه، فالضغط عليها يفتح الإعدادات العامة وحقل مجلد النسخ الاحتياطي في بؤرة التركيز:
value.info.backupFolderما يبحث عنه الفحص. يقرأ «نما» المجلد المسمّى في مجلد النسخ الاحتياطي، ومعه مستويان من المجلدات الفرعية تحته، ويبحث عن ملف ينتهي بـ .bak أو .dbak يكون إمّا اسمه يحمل تاريخ اليوم أو الأمس بصيغة YYYYMMDD، أو آخر تعديل عليه بعد بداية الأمس. فإن وجد واحداً لم يرفع شيئاً.
وما تفعله تجاه كل واحدة:
- الأولى — الحقل فارغ. افتح صفحة المرفقات والتخزين من الإعدادات العامة واملأ مجلد النسخ الاحتياطي بالمسار الذي تكتب فيه مهمة النسخ.
- الثانية — المسار مملوء لكن الخادم لا يصل إليه. والمسار يفسّره خادم التطبيق لا جهازك: فتحقّق من الهجاء، وفي المشاركات الشبكية تحقّق أن حساب ويندوز الذي يعمل به الخادم يستطيع فتحها.
- الثالثة — المجلد متاح لكنه لا يحوي شيئاً حديثاً. وهذه هي التي تهم: فهي تعني عادةً أن مهمة النسخ نفسها توقفت أو بدأت تفشل. راجع خطة الصيانة في SQL Server (أو أي أداة تأخذ النسخ) واقرأ سجلها، ثم تأكّد أنها تكتب في هذا المجلد بامتداد
.bakأو.dbak.
لا تُسكِت هذه باستخفاف
الرسالة الثالثة هي بالضبط التحذير الذي تريده يوم يموت خادم. فاعتبرها نسخاً احتياطياً معطوباً حتى تثبت خلاف ذلك — ولا توقف الفحص لتزيلها.
وبعض المواقع تأخذ نسخها بطريقة لا يراها الخادم — لقطة على مستوى التخزين، أو قاعدة بيانات سحابية مُدارة، أو وكيل ينقل الملفات من الجهاز. وهناك لا يجد الفحص شيئاً فيرفع إنذاراً كاذباً دائماً، فأوقفه عن قصد بـ:
value.info.doNotCheckForBackupExistenceوالإعدادان موصوفان في المرفقات والتخزين.
المعالجة والنظافة
| الرسالة | ما رفعها | ما تفعله |
|---|---|---|
| «يوجد {0} مستندات فشلت معالجتها. يرجي التواصل مع الدعم الفني و ابلاغهم بالخطأ التالي: SYSFRQS is {1}» | طلبات أعمال جالسة في فشلت المعالجة أو فشلت باستثناء. أي مستندات حُفظت ولم تحدث آثارها. | افتح قائمة طلبات الأعمال، ورشّح بالحالة، واقرأ الخطأ على السطر، ثم المزيد ← إعادة المعالجة. والعدّاد يحدّث نفسه مع زوال الفشل. |
| There are {0} user notifications which exceeds the limit of {1}, this may affect system performance. Please review and clean up old notifications | تجاوز جدول الإشعارات حدّه — و هو ١٠٠٠٠ إلا إذا قال أقصى عدد لإشعارات المستخدم غير ذلك. والجدول الضخم يبطّئ النظام على الجميع. بالإنجليزية فقط. | احذف القديم منها، واضبط مهمة مجدولة حتى لا تعود (أدناه). أو ارفع الحدّ: value.info.maxUserNotificationCount |
| «لا توجد فترة محاسبية عادية تالية للفترة الحالية , برجاء تعريفها» | لا توجد فترة مالية عادية تبدأ في اليوم التالي لانتهاء الفترة الحالية. والفحص لا يعمل إلا في ديسمبر، تذكيراً بفتح السنة التالية قبل أن يحتاجها أحد. | أنشئ السنة المالية التالية وفتراتها. |
ولكي لا تتراكم الإشعارات من جديد، أنشئ مهمة مجدولة من نوع إجراء تحذفها بحسب عمرها. وهذه تعمل كل ليلة في الثانية والنصف وتحذف كل ما هو أقدم من ٢٥ يوماً:
{
"scheduleType" : "Action",
"scheduleInfo" : {
"timeMinute" : "30",
"timeHour" : "2"
},
"hourInfo" : {
"runOnHour0230" : true
},
"sendAsMail" : true,
"className" : "com.namasoft.infor.domainbase.util.actions.EADeleteNotificationsByDuration",
"title1" : "Duration Days (default is 25 days)",
"title2" : "Delete Type (all, readonly) - Default is all",
"actionDescription" : "Deletes notifications older than specified number of days. Delete type: 'readonly' deletes only viewed notifications, 'all' deletes all notifications."
}وDuration Days هو العمر بالأيام، وDelete Type إمّا all (الافتراضي) أو readonly الذي يحذف ما رآه المستخدم فقط.
خيارات خطيرة بقيت مفعّلة
بعض الخيارات موجودة لعملية إصلاح لمرة واحدة، وتركها مفعّلة خطر. و«نما» يراقب أربعة منها ويشكو ما دامت مفعّلة. وكل هذه بالإنجليزية فقط.
| الرسالة | ما رفعها | ما تفعله |
|---|---|---|
| There are fiscal years with AllowCostProcessingWithClosingEntry set to TRUE | سنة مالية واحدة على الأقل فيها السماح بمعالجة التكاليف والكميات والقيود بعد القيد الختامى معلَّماً. فالنظام بالأصل يرفض تغيير القيود بتاريخ سابق للقيد الختامي، ومع هذا الخيار يسمح بها — فتتغير نتائج القوائم المالية لسنة مقفلة بهدوء. | افتح السنوات المالية، وارفع التعليم عن كل سنة فيها، واحفظ، ثم حدّث الأخطاء الحرجة. واتركه موقوفاً إلا في تصحيح مقصود معتمد. |
| The option {0} in {1} config is enabled, it should be disabled. Please contact our support team. | أحد خياري إعادة المعالجة قبل القيد الختامي في الإعدادات العامة، أو السماح بتغيير تتبع التكلفة والكمية بعد الاستخدام / السماح بالسالب في التحويلات المخزنية في إعدادات سلسلة التوريد، مفعَّل. والرسالة تسمّي الخيار والإعدادات وترتبط بها. | اتبع الرابط، وأوقف الخيار، وحدّث. وإن كان قد فُعِّل لعملية إصلاح فهذه الرسالة هي التذكير بإيقافه بعدها. |
| Debt ages processing of document {0} had to {1} {2} rows; its account/subsidiary debt ages history is huge and slows the ledger queue - consider stopping debt ages tracking for it | تاريخ أعمار المديونية لمستند واحد ضخم إلى حدّ أن معالجته تعطّل طابور الحسابات على الجميع. | فكّر في إيقاف تتبع أعمار المديونية لذلك الحساب أو تلك الذمة — انظر الحسابات. |
سلسلة التوريد والتكلفة
| الرسالة | ما رفعها | ما تفعله |
|---|---|---|
| There are inconsistent transfer costs, please contact customer support - THIS IS URGENT | فحص اتساق على تكاليف التحويلات وجد اختلافاً. ولا يجري إلا حيث لا يكون التكليف FIFO. بالإنجليزية فقط. | هذه موجّهة إلينا لا إلى الموقع: فهي تقول إن بيانات التكلفة نفسها خطأ، وتحتاج إعادة معالجة تكاليف يقررها الدعم. فارفعها. |
| The columns currentNetCost and currentNetQty have errors, please contact customer support - THIS IS URGENT | مجاميع التكلفة والكمية الجارية لا تتفق مع الحركات التي تحتها. و«نما» يطلب إصلاح جانب الكمية بنفسه إلا إذا أُوقف ذلك. بالإنجليزية فقط. | ارفعها إلى الدعم؛ ولا تشغّل أدوات التكلفة بالحدس. |
| There are failed stock ages tasks, please contact customer support | مهمة أعمار مخزون انتهت إلى فشل. وتقارير أعمار المخزون ستكون خطأً أو فارغة حتى تُعاد. بالإنجليزية فقط. | انظر المهمة الفاشلة، وأصلح السبب، وأعد تشغيلها. |
| «يوجد {0} سطور قوائم أسعار مبيعات منتهية منذ أكثر من {1} يوم. يرجى المراجعة» | أكثر من ألف سطر في قوائم الأسعار انتهت منذ أكثر من عدد الأيام المضبوط. وقوائم الأسعار الميتة الكبيرة تبطّئ التسعير. | احذف السطور القديمة أو أرشفها. والحدّ هو عدد الأيام بعد انتهاء قائمة الأسعار لإظهار الأخطاء الحرجة — انظر التسعير وقوائم الأسعار؛ والقيمة السالبة توقف الفحص. |
| You need to recommit the receipt additional cost document {0} because it contains an old bug | مستند تكاليف توريد إضافية مسمّى أنشأته نسخة قديمة توزيعها معروف بالخطأ. بالإنجليزية فقط. | افتح المستند المسمّى في الرسالة وأعد حفظه. |
نقاط البيع والتجارة الإلكترونية
| الرسالة | ما رفعها | ما تفعله |
|---|---|---|
| «يوجد عدد مستندات {0} من النوع {1} بها أخطاء. يرجى معالجتها.» | مستندات نقاط بيع جالسة مسودات. فنقاط البيع تحفظ المستند الذي يفشل تحققه مسودةً بدلاً من أن تخسر البيعة، فالمسودة هنا تعني حركة حقيقية لم تصل إلى الدفاتر. | افتح كل واحد، وأصلح ما يشكو منه، واعتمده. والعدد المتزايد يعني أن السبب ما زال قائماً. |
| «يوجد {0} طلب أونلاين ({1}) منذ أكثر من 12 ساعة لم بتم حذفها بعد. يرجى مراجعتها ومعالجتها.» | سطور طلبات أونلاين لا تُنظَّف. ويرفعها الفحص حين يزيد ما هو أقدم من يوم على تسعة آلاف سطر. | عالج المتراكم، وجدوِل إجراء التنظيف الذي يحذف السطور القديمة. |
| «الخاصية send-ecommerce-data غير مفعلة في nama.properties و مواقع ماجنتو بألاكواد {0} مفعلة» | سجل موقع تجارة إلكترونية مفعَّل لكن هذا الخادم غير مضبوط لإرسال البيانات إليه — فالمتجر والنظام يتباعدان بهدوء. | إمّا تضبط send-ecommerce-data على الخادم الذي يجب أن ينشر، أو توقف سجل الموقع. ورؤيتها على نسخة تجريبية من قاعدة بيانات حقيقية أمر طبيعي. |
اقرأ أيضًا
- الرسائل وحالات الرفض — الرسائل التي ترفض حفظاً، وهذه ليست منها
- طلبات الأعمال — عدّاد الطلبات الفاشلة وكيف يُفرَّغ
- الأسئلة العامة — أسئلة أخرى من الزاوية ذاتها
- nama.properties — مفاتيح الخادم المذكورة هنا
- المرفقات والتخزين — إعدادات النسخ الاحتياطي