KB2876882 - تصحيح: "خطأ داخلي: حدث خطأ غير متوقع" عند تشغيل أمر "عملية" مقابل مكعب TFS SSAS

ينطبق على
SQL Server 2012 Analysis Services

ينطبق هذا الإصلاح الجديد أيضا على Microsoft SQL Server 2014 Analysis Services (SSAS 2014).

الأعراض

لنفترض أن لديك بعض الأبعاد في مكعب Microsoft SQL Server 2012 Analysis Services (SSAS 2012) أو مكعب SQL Server 2014 Analysis Services (SSAS 2014) (Tfs_Analysis) الذي يحتوي على بيانات Microsoft Visual Studio Team Foundation Server (TFS). عند تشغيل أمر عملية مقابل الأبعاد، قد تفشل المعالجة وتتلقى رسالة الخطأ التالية:

ملاحظة

خطأ داخلي: حدث خطأ غير متوقع (الملف 'pfiallocator.cpp'، السطر 822، الدالة 'PFMemoryHolder::RegisterMemoryHolder').

إذا كنت تستخدم SQL Profiler لتتبع المشكلة، يظهر التتبع أن رسالة الخطأ التالية تظهر أثناء الأمر ProcessFull على بعد vDimWorkItemTreeOverlay:

ملاحظة

خطأ داخلي: حدث خطأ غير متوقع (الملف 'pfiallocator.cpp'، السطر 822، الدالة 'PFMemoryHolder::RegisterMemoryHolder'). أخطاء في مشغل تخزين OLAP: حدث خطأ أثناء معالجة السمة 'WorkItemTreeSK' للبعد 'شجرة عناصر العمل' من قاعدة البيانات 'Tfs_Analysis'.

ملاحظة أن فشل المعالجة يؤثر على تصميمات قواعد بيانات Analysis Services التي تملك مصادر بيانات تستخدم موفر بيانات .NET Framework المدار ل SQL Server، وهو System.Data.SqlClient.

السبب

تحدث المشكلة بسبب استخدام قيمة مفتاح بعد مكرر في مصدر البيانات بواسطة معالجة Analysis Services.

الدقة

تم إصلاح المشكلة لأول مرة في التحديث التراكمي التالي ل SQL Server.

التحديث التراكمي 1 ل SQL Server 2014 /en-us/help/2931693

التحديث التراكمي 6 ل SQL Server 2012 SP1 /en-us/help/2874879

حول التحديثات التراكمية ل SQL Server

يحتوي كل تحديث تراكمي جديد ل SQL Server على جميع الإصلاحات العاجلة وجميع إصلاحات الأمان التي كانت مضمنة في التحديث التراكمي السابق. تحقق من آخر التحديثات التراكمية ل SQL Server:

      

المزيد من المعلومات

بعد تطبيق الإصلاح العاجل، ستتم المعالجة وفقا لإعدادات تكوين خطأ المعالجة بدلا من مطابقتها لأعراض الأخطاء الداخلية.

يمكنك التحكم في السلوك باستخدام إعداد مفتاح التكرار عند معالجة أبعاد SSAS. أو، يمكنك التحكم في السلوك عن طريق تكوين الخاصية KeyDuplicate للخاصية ErrorConfiguration كما يلي عند تصميم الأبعاد:

  • عند تعيين الإعداد KeyDuplicate على الإعداد الافتراضي IgnoreError، لا توجد تحذيرات عند مصادفة قيمة مفتاح مكررة، وتستمر المعالجة.
  • عند تعيين الإعداد KeyDuplicate إلى ReportAndContinue، يتم الإبلاغ عن الأخطاء أو التحذيرات. ومع ذلك، لا تزال المعالجة مستمرة.
  • عند تعيين الإعداد KeyDuplicate إلى ReportAndStop، يتم الإبلاغ عن الأخطاء أو التحذيرات ويتم إيقاف المعالجة.

      

الحالة

لقد أكدت Microsoft على أن هذه مشكلة في منتجات Microsoft المُدرجة في القسم "ينطبق على".

الحل البديل

لإيجاد حل بديل لهذه المشكلة، احذف المفتاح المكرر غير الصالح في جداول أبعاد مستودع البيانات في مشغل قاعدة بيانات SQL Server. يمكنك استخدام الاستعلام التالي للبحث عن المفتاح المكرر:SELECT COUNT(WorkItemTreeSK) WorkItemTreeSKCount, WorkItemTreeSK
FROM [Tfs_Warehouse].dbo.vDimWOrkItemTreeOverlay
GROUP حسب WorkItemTreeSK
HAVING COUNT(WorkItemTreeSK) >1

المراجع

لمزيد من المعلومات حول خيارات المعالجة والإعدادات، انتقل إلى موقع MSDN التالي على الويب:

معلومات حول خيارات المعالجة والإعدادات لمزيد من المعلومات حول كيفية معالجة المستودع أو المكعب يدويا، انتقل إلى موقع ويب MSDN التالي:

معالجة مستودع البيانات ومكعب Analysis Services يدويا لخادم Team Foundation