المقدمة
يصف هذا المستند كيفية أستكشاف أخطاء مركز الذكاء الموحد (CUIC) من Cisco وإصلاحها عندما لا يكون قادرا على الاتصال بإدارة وخادم قاعدة البيانات (ADS) لمركز الاتصال للمؤسسة (CCE).
معلومات خلفية الجسم
يتصل CUIC ب AWDB على خادم ADS. عندما يفشل التوصيل بخطأ معين وتكون قد جمعت سجلات CUIC، ترى هذا الخطأ.
0000177816: 10.10.10.10: Jul 14 2018 00:18:21.816 -0700: %CCBU___________CUIC-6-INFO: Checking if it's ok to switch the DS nodes based on exception thrown: Invalid sub-protocol Invalid sub-protocol: 'sqlserver'
java.sql.SQLException: Invalid sub-protocol Invalid sub-protocol: 'sqlserver'
at com.informix.util.IfxErrMsg.getLocSQLException(IfxErrMsg.java:493)
at com.informix.jdbc.IfxDriver.checkURL(IfxDriver.java:560)
at com.informix.jdbc.IfxDriver.connect(IfxDriver.java:208)
at java.sql.DriverManager.getConnection(DriverManager.java:571)
at java.sql.DriverManager.getConnection(DriverManager.java:215)
هذا خطأ عام يشير إلى فشل الوصول إلى مصدر بيانات SQL Server. يرجع أحد الأسباب الشائعة لهذا الخطأ إلى فشل عملية مصافحة أمان طبقة النقل (TLS) بين CUIC وخادم ADS.
المشكلة
عندما لا يتمكن CUIC من الاتصال بقاعدة البيانات وبالتالي لا يتم تقديم أي معلومات عندما يتم إنشاء تقرير، تحت الصفحة الرئيسية CUIC > مصادر البيانات، سترى مصدر البيانات دون اتصال (Red X) كما هو موضح في الصورة.
عند تحرير مصدر البيانات، إذا تم تحديد زر إختبار الاتصال، سترى هذا الخطأ، كما هو موضح في الصورة.
هذا هو الخطأ المحدد الذي تم الإعلام عنه: "لمضيف قاعدة البيانات UCCE.cc.lab بروتوكول فرعي غير صحيح: 'sql server' " كما هو موضح في الصورة.
استكشاف الأخطاء وإصلاحها
الخطوة 1. تجميع سجلات تطبيق CUIC.
الخطوة 2. في سجلات تطبيق CUIC، تجد الاستثناء المتعلق بهذه المشكلة.
0000177816: 10.10.10.10: Jul 14 2018 00:18:21.816 -0700: %CCBU___________CUIC-6-INFO: Checking if it's ok to switch the DS nodes based on exception thrown: Invalid sub-protocol Invalid sub-protocol: 'sqlserver'
java.sql.SQLException: Invalid sub-protocol Invalid sub-protocol: 'sqlserver'
at com.informix.util.IfxErrMsg.getLocSQLException(IfxErrMsg.java:493)
at com.informix.jdbc.IfxDriver.checkURL(IfxDriver.java:560)
at com.informix.jdbc.IfxDriver.connect(IfxDriver.java:208)
at java.sql.DriverManager.getConnection(DriverManager.java:571)
at java.sql.DriverManager.getConnection(DriverManager.java:215)
ملاحظة: يدعم UCCE 11.6 أمان طبقة النقل (TLS) 1.2 للاتصال بالإعلانات التجارية. يتعلق هذا الخطأ بعدم تطابق إصدار TLS حيث إن CUIC 11.5 يدعم TLS 1.0/1.1 فقط. راجع مصفوفة التوافق للحصول على مزيد من المعلومات.
ملخص
يرجع الخطأ في هذا السيناريو إلى حقيقة أن CUIC 11.5 يستخدم TLS 1.0، بينما الإصدار المستخدم من قبل Microsoft SQL Server هو TLS 1.2.
هناك خلل تعزيز متعلق بمشكلة توافق TLS هذه، حيث يتم وصف هذا السلوك بمزيد من التفاصيل: CSCvd35048 .
الحل
يشير الخطأ الموجود في السجلات فقط إلى فشل الاتصال بمصدر البيانات لأي عدد من الأسباب. إذا كانت المشكلة مرتبطة بفشل تفاوض TLS، فهناك خياران يمكن تنفيذهما لحل هذه المشكلة.
خيار 1. يدعم CUIC 11.6 TLS 1.2 بشكل افتراضي. قم بترقية خادم CUIC إلى 11.6 وقم بتثبيت أحدث ملف COP بشكل استباقي.هذا هو الخيار الموصى به.
الخيار 2. كما يمكن إستخدام حل بديل مؤقت. يمكنك تغيير بعض مفاتيح التسجيل على AD للعمل مع TLS 1.0. هذه هي مفاتيح التسجيل التي يجب تغييرها.
[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\TLS 1.0\Server] "Enabled"=dword:00000001(Defaults to 0 and disables by default)
[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\TLS 1.0\Client] "Enabled"=dword:00000001(Defaults to 0 and disables by default)
تحذير: لا يوصى بالخيار 2. استخدمه فقط إذا لم تتمكن من ترقية CUIC إلى الإصدار 11.6.