Questo documento offre una panoramica del server di report Cisco Unified Customer Voice Portal (CVP) e alcune procedure per la risoluzione dei problemi.
Le tabelle CVP sono classificate come:
Le chiamate iniziano dalla tabella Call e sono collegate alla tabella VXMLSession dalla colonna CallGUID.
Il server di reporting CVP unificato include un processo di riepilogo che aggrega i dati delle tabelle Call e VXMLElement in nuove tabelle di riepilogo.
Le tabelle di riepilogo dei report sono:
Le tabelle vengono create in base alla pianificazione seguente:
Vedere l'ID bug Cisco CSCue65248, "Le tabelle di riepilogo dei report CVP non sono popolate". Nel server di report CVP, le tabelle di riepilogo non vengono popolate. Il problema è causato dallo script per il riepilogo mensile, introdotto in CVP 9.0.
Il database di report CVP 9.0(1) unificato è supportato solo sul server Windows 2008 R2. Poiché il database di report CVP 8.x unificato è supportato da Windows 2003, non è disponibile alcun aggiornamento diretto al database di report CVP 9.0(1) unificato.
Per istruzioni sulla migrazione, vedere la guida all'installazione. Si noti che:
Le differenze nelle attività successive all'installazione includono:
Una differenza chiave tra gli utenti è che, con 9.x, non c'è più utente Informix. L'utente cvp_dbadmin è invece il proprietario del database.
I server di reporting Cisco MCS-7845 possono gestire 420 messaggi al secondo.
Utilizzare questa equazione per determinare il numero di messaggi di report generati al secondo per ogni applicazione VoiceXML:
A# = %CPS * CPS * MSG
dove:
Utilizzare questa equazione per aggiungere i messaggi generati da ciascuna applicazione:
A(totale) = A1+ A2+?..+An
dove A(totale) è il numero totale di messaggi di reporting generati al secondo dalle applicazioni VoiceXML.
Il numero di messaggi di reporting per elemento o attività è indicato nella tabella 17 in del Cisco Unified Customer Voice Portal (CVP) Solution Reference Network Design (SRND) release 9.0(1).
Per semplicità, è possibile utilizzare questa query per calcolare il numero medio di messaggi scritti nella tabella vxmlsession per un secondo:
select count(*)/86400 from vxmlsession where dbdatetime between
'2012-12-12 00:00:00' and '2012-12-13 00:00:00'"
Eseguire questa query sulle 14 tabelle seguenti:
Aggiungere i risultati per ottenere il numero medio di messaggi al secondo ricevuti dal server di report.
Se il server di report è sovraccarico, i registri di report contengono i seguenti avvisi:
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]
Esistono diversi scenari in cui il server di report passa al servizio parziale. Tuttavia, il servizio parziale non significa necessariamente che vi sia un problema.
Se si verifica un errore nel server di report, i messaggi destinati al server di report vengono memorizzati nel buffer dal server di chiamata, in memoria, fino a 200.000 messaggi. Una volta raggiunto tale limite, tutte le nuove informazioni dettagliate sui messaggi vengono eliminate.
Eseguire la procedura seguente per impostare il numero di buffer di ricezione nelle impostazioni TCP del server di report su 4096 (max):
Se la connessione al database ha esito negativo, il server di report invia un avviso SNMP (Simple Network Management Protocol) e inizia a memorizzare i messaggi in un file permanente (%CVP_HOME%\tmp\CVPReporting.tmp) fino a un limite specificato dall'utente. Durante questo periodo, il server di report rimane in funzione.Quando viene raggiunto il 75% del limite, viene scritto un avviso nel file di log. Quando viene raggiunto il 100% del limite, viene inviato un avviso SNMP e il server di report entra in servizio parziale. È possibile che i nuovi messaggi vengano eliminati.
Quando viene ripristinata la connessione al database, il server di report entra in modalità di ripristino e cambia il proprio stato in Servizio parziale (se non si trova già in tale stato). Inizia quindi a leggere i messaggi dal file %CVP_HOME%\tmp\CVPReporting.tmp e a eseguirne il commit nel database. A seconda delle dimensioni del file, il commit di tutti i dati nel database potrebbe richiedere ore. I nuovi messaggi ricevuti durante il ripristino vengono memorizzati nel buffer.
Esiste tuttavia un limite al numero di messaggi che il server di report può inserire nel buffer, indipendentemente dalla modalità o dallo stato del server:
Se all'avvio è presente un file permanente, il server di report rimane in modalità di servizio parziale e passa alla modalità di ripristino.
Il server di report può inoltre passare a Servizio parziale durante il recupero di chiamate non completate.
Questo messaggio viene visualizzato nei log del server di report:
%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]
I registri includono inoltre informazioni sul recupero di queste chiamate. Il processo di ripristino può richiedere molto tempo.
%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]
Una volta completate le chiamate non completate, vengono visualizzati questi messaggi e il server di report torna allo stato In servizio:
%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]
È possibile rimuovere il file %CVP_HOME%\tmp\CVPReporting.tmp per evitare il processo di ripristino e riattivare il server di report. In questa procedura viene descritto come ignorare il processo di ripristino:
Vedere l'ID bug Cisco CSCtu43570, "CVPReporting.tmp cresce oltre i limiti delle dimensioni e non viene recuperato tempestivamente." I dati dei rapporti sulle nuove chiamate sono andati persi perché non è stato possibile leggere completamente il file. L'unità disco rigido si stava riempiendo e ciò ha causato la condizione di "spazio su disco insufficiente".
Questo problema è stato risolto nel database di report Unified CVP 8.5(1)SR18 e 8.5(1)SR6.
Modificare il file <dir_installazione>\Cisco\CVP\conf\reporting.properties per impostare il livello di traccia nei log del server di report. Questo è un esempio:
RPT.traceMask = 0x810000
RPT.logLevel = DEBUG
Le summary table utilizzano due tabelle nel database ciscoadmin: agg_schedule e agg_statements.
Il file <CVP_HOME>\logs\reporting.txt mostra se l'aggregazione è stata eseguita.
In questa procedura viene descritto come abilitare la traccia aggiuntiva per il processo aggregator.bat:
echo call sp_sched_agg(); | dbaccess ciscoadmin
a:
echo call sp_sched_agg('D'); | dbaccess ciscoadmin
I log di debug vengono scritti nel file CVP_HOME>\logs\Agg_Debug.out.
In questa procedura viene descritto il processo di risoluzione dei problemi:
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(*)Ma questa tabella non viene creata.
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';La query restituisce 0, quindi la tabella dovrebbe essere stata creata.
CREATE TABLE upg_estimate (Viene visualizzato il messaggio di errore:
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
Questo comando aggiunge 100 MB di spazio DB al server CVP Informix.
In questo esempio viene illustrato come connettersi al database con DBAccess:
Revisione | Data di pubblicazione | Commenti |
---|---|---|
1.0 |
30-Sep-2013 |
Versione iniziale |