Dieses Dokument gibt einen Überblick über den Berichtsserver für das Cisco Unified Customer Voice Portal (CVP) und enthält Schritte zur Fehlerbehebung.
CVP-Tabellen werden wie folgt kategorisiert:
Anrufe beginnen in der Anruftabelle und sind durch die Spalte CallGUID mit der VXMLSession-Tabelle verknüpft.
Der Unified CVP-Berichtsserver umfasst einen Übersichtsprozess, der die Daten aus den Call- und VXMLElement-Tabellen in neue Übersichtstabellen aggregiert.
Die Zusammenfassungstabellen der Berichtserstellung sind:
Die Tabellen werden basierend auf diesem Zeitplan erstellt:
Siehe Cisco Bug-ID CSCue65248, "Übersichtstabellen des CVP-Berichtes werden nicht ausgefüllt." Im CVP-Berichtsserver werden die Übersichtstabellen nicht ausgefüllt. Das Problem wird durch das Skript für die monatliche Zusammenfassung verursacht, das in CVP 9.0 eingeführt wurde.
Die Unified CVP 9.0(1) Reporting-Datenbank wird nur auf dem Windows 2008 R2-Server unterstützt. Da die Unified CVP 8.x-Reporting-Datenbank von Windows 2003 unterstützt wird, gibt es keine direkte Aktualisierung der Unified CVP 9.0(1) Reporting-Datenbank.
Migrationsanweisungen finden Sie im Installationshandbuch. Beachten Sie, dass
Nach der Installation können folgende Aufgaben durchgeführt werden:
Ein Hauptunterschied bei Benutzern besteht darin, dass es mit 9.x keinen Informix-Benutzer mehr gibt. Stattdessen ist der Benutzer cvp_dbadmin der Besitzer der Datenbank.
Die Cisco MCS-7845 Reporting-Server können 420 Nachrichten pro Sekunde verarbeiten.
Verwenden Sie diese Gleichung, um die Anzahl der pro Sekunde generierten Berichtsmeldungen für jede VoiceXML-Anwendung zu bestimmen:
A# = %CPS * CPS * MSG
wobei:
Verwenden Sie diese Gleichung, um die von jeder Anwendung generierten Meldungen hinzuzufügen:
A(total) = A1+ A2+?..+An
wobei A(total) die Gesamtzahl der von Ihren VoiceXML-Anwendungen pro Sekunde generierten Berichtsmeldungen ist.
Die Anzahl der Berichtsmeldungen pro Element oder Aktivität ist in Tabelle 17 in Cisco Unified Customer Voice Portal (CVP) Solution Reference Network Design (SRND) Version 9.0(1) aufgeführt.
Aus Gründen der Einfachheit können Sie diese Abfrage verwenden, um die durchschnittliche Anzahl der in die vxmlsession-Tabelle geschriebenen Nachrichten für eine Sekunde zu berechnen:
select count(*)/86400 from vxmlsession where dbdatetime between
'2012-12-12 00:00:00' and '2012-12-13 00:00:00'"
Führen Sie diese Abfrage für die folgenden 14 Tabellen aus:
Fügen Sie die Ergebnisse hinzu, um die durchschnittliche Anzahl von Nachrichten pro Sekunde zu erhalten, die der Berichtsserver empfängt.
Wenn der Berichtsserver überlastet ist, enthalten die Berichtsprotokolle folgende Warnmeldungen:
CVP_8_0_RPT-1-REPORTING_DB_ALERT_RAISE ALERT!!!!! The total JDBC messages queue
size has exceeded the critical limit 300000 .... All the JDBC messages will
be dropped. [id:4014]
CVP_8_0_RPT-1-REPORTING_DB_ALERT_RAISE ALERT!!!!! The total JDBC messages queue
size has exceeded the max limit 250000 .... Some of the JDBC messages may be
dropped. [id:4014]
Es gibt mehrere Szenarien, in denen der Berichtsserver zum Partiellen Dienst wechselt. Partielle Dienste bedeuten jedoch nicht notwendigerweise, dass ein Problem vorliegt.
Wenn der Berichtsserver ausfällt, werden Nachrichten, die für den Berichtsserver bestimmt sind, vom Anrufserver im Speicher bis zu 200.000 Nachrichten gepuffert. Nach Erreichen dieses Grenzwerts werden alle neuen Nachrichtendetailinformationen verworfen.
Gehen Sie wie folgt vor, um die Anzahl der Empfangspuffer auf den TCP-Einstellungen des Reporting-Servers auf 4096 (max.) festzulegen:
Wenn die Datenbankverbindung fehlschlägt, sendet der Berichtsserver eine SNMP-Warnung (Simple Network Management Protocol) und speichert die Nachrichten bis zu einem vom Benutzer festgelegten Grenzwert in einer persistenten Datei (%CVP_HOME%\tmp\CVPReporting.tmp). Während dieser Zeit bleibt der Berichtsserver in Betrieb.Wenn 75 % der Obergrenze erreicht ist, wird eine Warnung in die Protokolldatei geschrieben. Wenn 100 % der Obergrenze erreicht ist, wird eine SNMP-Warnung gesendet, und der Berichtsserver geht in den partiellen Dienst über. Alle neuen Nachrichten werden möglicherweise verworfen.
Wenn die Datenbankverbindung wiederhergestellt wird, wechselt der Berichtsserver in den Wiederherstellungsmodus und wechselt seinen Status zu Partieller Dienst (wenn er sich nicht bereits in diesem Zustand befindet). Anschließend werden Meldungen aus der Datei %CVP_HOME%\tmp\CVPReporting.tmp gelesen und in die Datenbank übertragen. Je nach Größe der Datei kann es Stunden dauern, alle Daten in die Datenbank zu übertragen. Neue Meldungen, die während der Wiederherstellung eingehen, werden im Speicher gepuffert.
Die Anzahl der Nachrichten, die der Berichtsserver puffern kann, ist jedoch begrenzt, unabhängig vom Modus oder Status des Servers:
Wenn beim Start eine persistente Datei vorhanden ist, bleibt der Berichtsserver im partiellen Dienst und wechselt in den Wiederherstellungsmodus.
Der Berichtsserver kann auch zum Teildienst wechseln, wenn er noch nicht abgeschlossene Anrufe wiederherstellt.
Diese Meldung wird in den Protokollen des Berichtsservers angezeigt:
%CVP_8_0_RPT-1-REPORTING_STATE_CHANGE: REPORTING Subsystem state changed to
RPT SS RPT1 changes its state to Partial Service cause Unfinished calls
recovery started [id:4001]
Die Protokolle enthalten auch Informationen zur Wiederherstellung dieser Anrufe. Denken Sie daran, dass der Wiederherstellungsvorgang lange dauern kann!
%CVP_8_0_RPT-6-REPORTING_INFO: Recover Uncompleted call: 73
CallGUID:90DAAAC91000013C01075FC253EF37A4 Event Id: 11 CauseId: 0 [id:4000]
...
%CVP_8_0_RPT-6-REPORTING_INFO: Recover Uncompleted call:
129 CallGUID:673A58361000013C087A209E53EF37A5 Event Id: 0 CauseId: 0 [id:4000]
Nach Abschluss noch nicht abgeschlossener Anrufe werden diese Meldungen angezeigt, und der Berichtsserver wechselt wieder in den Betriebszustand:
%CVP_8_0_RPT-6-REPORTING_INFO: Recover CallRegistry finished [id:4000]
%CVP_8_0_RPT-6-REPORTING_INFO: initKeepAliver() -- processed unfinished calls
[id:4000]
%CVP_8_0_RPT-1-REPORTING_STATE_CHANGE: REPORTING Subsystem state changed to RPT
SS RPT1 changes its state to In Service cause Normal Operation [id:4001]
Sie können die Datei %CVP_HOME%\tmp\CVPReporting.tmp entfernen, um den Wiederherstellungsvorgang zu vermeiden und den Berichtsserver wieder in Betrieb zu nehmen. In diesem Verfahren wird beschrieben, wie der Wiederherstellungsprozess umgangen wird:
Siehe Cisco Bug-ID CSCtu43570, "CVPReporting.tmp geht über die Größenbeschränkung hinaus und wird nicht rechtzeitig wiederhergestellt." Neue Anrufberichtsdaten gingen verloren, weil die Datei nicht vollständig eingelesen werden konnte. Die Festplatte füllte sich, was schließlich zu einem Zustand führte, der nicht mehr über genügend Speicherplatz verfügte.
Dieses Problem wurde in der Unified CVP 8.5(1)SR18- und 8.5(1)SR6-Reporting-Datenbank behoben.
Bearbeiten Sie die Datei <install_dir>\Cisco\CVP\conf\reporting.properties, um die Ablaufverfolgungsebene in den Reporting-Serverprotokollen festzulegen. Dies ist ein Beispiel:
RPT.traceMask = 0x810000
RPT.logLevel = DEBUG
In den Zusammenfassungen werden zwei Tabellen in der ciscoadmin-Datenbank verwendet: agg_schedule und agg_statement.
Die Datei <CVP_HOME>\logs\reporting.txt zeigt an, ob die Aggregation-Funktion ausgeführt wurde.
In dieser Prozedur wird beschrieben, wie die zusätzliche Ablaufverfolgung für den Aggregator.bat-Auftrag aktiviert wird:
echo call sp_sched_agg(); | dbaccess ciscoadmin
an:
echo call sp_sched_agg('D'); | dbaccess ciscoadmin
Debug-Protokolle werden in der Datei CVP_HOME>\logs\Agg_Debug.out geschrieben.
Dieses Verfahren beschreibt den Fehlerbehebungsprozess:
call upg_est(); UNLOAD to "c:/temp/upgvars.out" SELECT estimate1,estimate2,
retention,log_space_needed,minlog,maxlog FROM cvp_data:upg_estimate;
23:41:54 Wed Dec 19 2012 : dbaccess cvp_data
C:\Cisco\CVP\informix_frag\upg_est.sql
Database selected.
312: Cannot update system catalog (sysprocbody).
131: ISAM error: no free disk space
Error in line 26
Near character position 11
23:41:54 Wed Dec 19 2012 : dbaccess cvp_data c:/temp/cvpupg.sql 2>NUL
Database selected.
206: The specified table (upg_estimate) is not in the database.
SELECT COUNT(*)Diese Tabelle wird jedoch nicht erstellt.
INTO tmp_int
FROM systables
WHERE tabname='upg_estimate';
IF tmp_int=0 THEN
CREATE TABLE upg_estimate (
estimate1 INTERVAL HOUR TO MINUTE,
estimate2 INTERVAL HOUR TO MINUTE,
retention SMALLINT,
log_space_needed INTEGER,
minlog INTEGER,
maxlog INTEGER
);
SELECT COUNT(*) FROM systables WHERE tabname='upg_estimate';Die Abfrage gibt 0 zurück, daher sollte die Tabelle erstellt worden sein.
CREATE TABLE upg_estimate (Sie erhalten die Fehlermeldung:
estimate1 INTERVAL HOUR TO MINUTE,
estimate2 INTERVAL HOUR TO MINUTE,
retention SMALLINT,
log_space_needed INTEGER,
minlog INTEGER,
maxlog INTEGER
);
261: Cannot Create file for table (informix.upg_estimate).
131: ISAM error: no free disk space
onspaces -a cvp_data_dbspace -
E:\ifmxdata\cvp_db_wp17cvprpt1a\cvp_data_dbspace\new_space -o 0 -s 10240
Durch diesen Befehl wird dem CVP Informix-Server 100 MB an Speicherplatz hinzugefügt.
Dieses Beispiel zeigt, wie Sie mit DBAccess eine Verbindung zur Datenbank herstellen:
Überarbeitung | Veröffentlichungsdatum | Kommentare |
---|---|---|
1.0 |
30-Sep-2013 |
Erstveröffentlichung |