Inhalt

Einführung

Datenbanktabellen

Zusammenfassung und Aggregation von Tabellen

Unterschiede zwischen der Berichtsdatenbank CVP 8.x und 9.0

Reporting Server-Überlastung

Fehlerbehebung

Fehler und Wiederherstellung - Teilweise Berichtsserver

Fehler des Berichtsservers

Datenbankverbindungsfehler

Unerledigte Anrufe

Wiederherstellungsmodus

Ablaufverfolgungsebene und Protokolldateien

Aggregator-Debugger und -Protokolle

Probleme mit dem Datenbankspeicherplatz

Einführung

Dieses Dokument gibt einen Überblick über den Berichtsserver für das Cisco Unified Customer Voice Portal (CVP) und enthält Schritte zur Fehlerbehebung.

- Der Reporting-Service empfängt Berichtsdaten vom Cisco Unified IP Interactive Voice Response (IVR)-Service, dem Session Initiation Protocol (SIP)-Service (falls verwendet) und dem Cisco Unified CVP Voice XML (VXML)-Server. Der Service wandelt die Daten dann um und schreibt sie in die Reporting-Datenbank von Informix, die als Verlaufsberichte in einer Callcenter-Umgebung dient.

- Der Berichtsdienst analysiert diese Meldungen, konvertiert sie in Stapel mit entsprechenden SQL-Anweisungen (Structured Query Language) und führt sie über die JDBC-API (Java Database Connectivity) in eine SQL-Datenbank aus.

Datenbanktabellen

CVP-Tabellen werden wie folgt kategorisiert:

- Anruftabellen

- VXML-Tabellen

- Zusammenfassende/aggregierte Tabellen

- Nachschlagen und Verweistabellen

- Courtesy CallBack-Tabellen

Anrufe beginnen in der Anruftabelle und sind durch die Spalte CallGUID mit der VXMLSession-Tabelle verknüpft.

Hinweis: Unified CVP DateTimes werden als UTC-Uhrzeit aufgezeichnet. Die Ausnahme ist dbdatetime, die als lokale Zeit aufgezeichnet wird. Localtimezoneoffset ist eine Spalte in der Anruftabelle, die die Anzahl der Minuten enthält, die von UTC verrechnet werden, um die Local Time abzuleiten. Dies kann als Intervall verwendet werden.

Zusammenfassung und Aggregation von Tabellen

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:

- ApplicationSummary_15

- ApplicationSummary_Daily

- ApplicationSummary_Weekly

- ApplicationSummary_Monatlich

- Anruf_15

- Anruf_Täglich

- Anruf wöchentlich

Die Tabellen werden basierend auf diesem Zeitplan erstellt:

- Tägliche Tische werden einen Tag hinter den 15-minütigen Tischen gefüllt.

- Wöchentliche Tische werden aus Tischen gefüllt, sobald diese für die betreffende Woche vollständig ausgefüllt wurden.

- Monatliche Tabellen werden aus wöchentlichen Tischen ausgefüllt, sobald sie für den betreffenden Monat vollständig ausgefüllt wurden.

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.

Unterschiede zwischen der Berichtsdatenbank CVP 8.x und 9.0

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

- Die Komponente des Berichtsservers kann nicht installiert werden, wenn der Computer bereits Teil der Domäne ist.

- Die Reporting Server-Komponente kann nicht auf einem Server installiert werden, der Teil einer Domäne ist. Die Installation der Komponente erfordert, dass lokale Sicherheitsrichtlinien eine höhere Priorität haben als dieselben Sicherheitsrichtlinien in der Gruppenrichtlinienkonsole. Dies ist nicht möglich, wenn der Server Teil einer Domäne ist. Nach der Installation kann der Server jedoch wieder zur Domäne hinzugefügt werden, da keine lokalen Richtlinien auf dem Server ausgeführt werden müssen.

Nach der Installation können folgende Aufgaben durchgeführt werden:

- 4.x-, 7.x-Reporting-Datenbank - Melden Sie sich als Informix-Benutzer an, und führen Sie die folgenden Batchdateien aus:

- ReportingRunAsInformix.bat.

- ReportingRunAsCVP_DbAdmin.bat.

- 8.x-Reporting-Datenbank - Melden Sie sich als Informix-Benutzer an, und führen Sie diese Batchdatei aus:

- CVP_Database_Config.bat.

- Reporting-Datenbank 9.x - Nach der Installation sind keine Batch-Dateien erforderlich.

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.

Reporting Server-Überlastung

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:

- %CPS = der Prozentsatz der Anrufe, die diese VoiceXML-Anwendung verwenden

- CPS = die Anzahl der Anrufe pro Sekunde

- MSG = die Anzahl der von dieser Anwendung generierten Berichtsmeldungen

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:

1. Anruf

2. CallEvent

3. CallICMInfo

4. AusgehendECCVariable (CCB-bezogen)

5. VXMLCustomContent

6. VXMLElement

7. VXMLElementDetail

8. VXMLElementFlag

9. VXMLE-Fehler

10. VXMLHotEvent

11. VXMLHotLink

12. VXMLSession

13. VXMLSessionVariable

14. VXMLVoiceInteractDetail

Fügen Sie die Ergebnisse hinzu, um die durchschnittliche Anzahl von Nachrichten pro Sekunde zu erhalten, die der Berichtsserver empfängt.

Fehlerbehebung

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]

Fehler und Wiederherstellung - Teilweise Berichtsserver

Es gibt mehrere Szenarien, in denen der Berichtsserver zum Partiellen Dienst wechselt. Partielle Dienste bedeuten jedoch nicht notwendigerweise, dass ein Problem vorliegt.

Fehler des Berichtsservers

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.

Hinweis: Bei UCS-Plattformen müssen Sie die Einstellung Number of Receive Buffers (Anzahl der Empfangspuffer) auf dem Berichtsserver ändern, um die vollständige Berichterstellung und Anrufbelastung auf der virtuellen Plattform zu maximieren. Wenn diese Einstellung nach der Installation des Betriebssystems nicht geändert wird, werden Nachrichten auf dem CallServer gesichert und Message Queues gefüllt. Anschließend wird eine starke Abnahme der Anrufe pro Sekunde (CPS) festgestellt.

Gehen Sie wie folgt vor, um die Anzahl der Empfangspuffer auf den TCP-Einstellungen des Reporting-Servers auf 4096 (max.) festzulegen:

1. Klicken Sie auf dem Berichtsserver auf Systemsteuerung > Netzwerkverbindung.

2. Klicken Sie mit der rechten Maustaste auf Netzwerkverbindung.

3. Klicken Sie auf die Registerkarte Erweitert.

4. Wählen Sie auf der Registerkarte Eigenschaften die Anzahl der Empfangspuffer aus.

5. Geben Sie im Textfeld Wert 4096 ein.

6. Starten Sie den Berichtsserver neu.

Informationen zu Unified CVP finden Sie unter Virtualisierung: UCS-Netzwerkkonfiguration für zusätzliche Informationen.

Datenbankverbindungsfehler

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 die Anzahl der gepufferten Nachrichten 100.000 erreicht, wird eine SNMP-Warnung als Warnung an den Benutzer gesendet.

- Bei 200.000 Nachrichten wird eine weitere SNMP-Warnung gesendet, Detailinformationen für alle neuen Nachrichten werden verworfen und nur grundlegende Daten wie Anruf, Anrufereignis und Sitzungsinformationen werden gespeichert. Bei 200.000 Nachrichten ändert der Berichtsserver seinen Status auch auf Teildienst (wenn er sich nicht bereits in diesem Zustand befindet).

- Wenn die Gesamtzahl der gepufferten Nachrichten 300.000 erreicht, wird eine weitere SNMP-Warnung gesendet und alle neuen Nachrichten werden von diesem Punkt an weitergeleitet.

- Wenn die Anzahl der Nachrichten im Speicher unter 50.000 zurückgeht, wird eine SNMP-Warnung gesendet, die angibt, dass die Warteschlangengröße wieder normal ist und der Status des Berichtsservers wieder auf In Service (In Service) zurückgeht.

Wenn beim Start eine persistente Datei vorhanden ist, bleibt der Berichtsserver im partiellen Dienst und wechselt in den Wiederherstellungsmodus.

Unerledigte Anrufe

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]

Wiederherstellungsmodus

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:

1. Beenden Sie den CVP-Anrufserver-Dienst.

2. Navigieren Sie zu %CVP_HOME%\tmp.

3. Benennen Sie die Datei CVPReporting.tmp um.

4. Starten Sie den CVP-Anrufserver-Service.

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.

Ablaufverfolgungsebene und Protokolldateien

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

Aggregator-Debugger und -Protokolle

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:

1. Warten Sie mindestens 15 Minuten.

2. Bearbeiten Sie die Datei <CVP_HOME>\bin\aggregator.bat. Ändern Sie den Wert der BAT-Datei von diesem Standardwert:

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.

Probleme mit dem Datenbankspeicherplatz

Hinweis: Dieses Platzproblem wurde bei verschiedenen Implementierungen festgestellt. Da die Lösung dieses Problems umfassende technische Kenntnisse von Informix erfordert, wenden Sie sich an das Cisco Technical Assistance Center (TAC), wenn Sie dieses Problem haben.

Dieses Verfahren beschreibt den Fehlerbehebungsprozess:

1. Upgrade auf die Unified CVP 8.0(1) Reporting-Datenbank

2. Führen Sie die Datei CVP_Database_Config.bat aus, und sehen Sie das Problem:

3. Überprüfen Sie die Datei c:\temp\cvpupg.sql. Der Inhalt ist:

call upg_est(); UNLOAD to "c:/temp/upgvars.out" SELECT estimate1,estimate2,

retention,log_space_needed,minlog,maxlog FROM cvp_data:upg_estimate;

4. Herstellen einer Verbindung zur Datenbank. Wenn Sie versuchen, die upg_schätzung-Tabelle zu überprüfen, existiert sie nicht.

5. Überprüfen Sie die Datei c:\Temp\CiscoUnifiedCVPDB.log, und sehen Sie folgende Fehler:

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.

6. Überprüfen Sie upg_est.sql. Der Inhalt der Tabelle upg_schätzung lautet:

SELECT COUNT(*)

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

);
Diese Tabelle wird jedoch nicht erstellt.

7. Stellen Sie eine Verbindung mit DBAccess her, und führen Sie diese Abfrage aus:

SELECT COUNT(*) FROM systables     WHERE tabname='upg_estimate';
Die Abfrage gibt 0 zurück, daher sollte die Tabelle erstellt worden sein.

8. Versuchen Sie, die Tabelle in DBAccess manuell zu erstellen:

CREATE TABLE upg_estimate (

estimate1 INTERVAL HOUR TO MINUTE,

estimate2 INTERVAL HOUR TO MINUTE,

retention SMALLINT,

log_space_needed INTEGER,

minlog INTEGER,

maxlog INTEGER

);
Sie erhalten die Fehlermeldung:

261: Cannot Create file for table (informix.upg_estimate).

131: ISAM error: no free disk space

9. Führen Sie den Befehl onstat - d aus, und überprüfen Sie, ob der letzte Textbaustein nicht über genügend Speicherplatz verfügt:

10. Melden Sie sich als 'Informix'-Benutzer beim CVP Informix an.

11. Erstellen Sie unter E:\ifmxdata\cvp_db_wp17cvprpt1a\ eine neue leere Datei namens new_space. Öffnen Sie eine Eingabeaufforderung, und geben Sie diese Befehle ein. Kopieren und Einfügen nicht:

onspaces -a cvp_data_dbspace -

E:\ifmxdata\cvp_db_wp17cvprpt1a\cvp_data_dbspace\new_space -o 0 -s 10240

Hinweis: -s gibt die Größe des neuen Textbausteins an und wird in KBs angegeben. Für 100 MB ist es 100 * 1024 = 102400.

Durch diesen Befehl wird dem CVP Informix-Server 100 MB an Speicherplatz hinzugefügt.

12. Führen Sie die Datei CVP_Database_Config.bat erneut aus. Es wird nun ordnungsgemäß funktionieren.

Dieses Beispiel zeigt, wie Sie mit DBAccess eine Verbindung zur Datenbank herstellen: