La documentazione per questo prodotto è stata redatta cercando di utilizzare un linguaggio senza pregiudizi. Ai fini di questa documentazione, per linguaggio senza di pregiudizi si intende un linguaggio che non implica discriminazioni basate su età, disabilità, genere, identità razziale, identità etnica, orientamento sessuale, status socioeconomico e intersezionalità. Le eventuali eccezioni possono dipendere dal linguaggio codificato nelle interfacce utente del software del prodotto, dal linguaggio utilizzato nella documentazione RFP o dal linguaggio utilizzato in prodotti di terze parti a cui si fa riferimento. Scopri di più sul modo in cui Cisco utilizza il linguaggio inclusivo.
Cisco ha tradotto questo documento utilizzando una combinazione di tecnologie automatiche e umane per offrire ai nostri utenti in tutto il mondo contenuti di supporto nella propria lingua. Si noti che anche la migliore traduzione automatica non sarà mai accurata come quella fornita da un traduttore professionista. Cisco Systems, Inc. non si assume alcuna responsabilità per l’accuratezza di queste traduzioni e consiglia di consultare sempre il documento originale in inglese (disponibile al link fornito).
Questo documento descrive un processo di risoluzione dei problemi relativi alle pianificazioni duplicate per la funzionalità di report di Cisco Customer Voice Portal (CVP).
Contributo di Mohamed Mohasseb, Aleksey Yankovsky e Alexander Levichev, Cisco TAC Engineers.
Cisco raccomanda la conoscenza dei seguenti argomenti:
Le informazioni di questo documento si basano sulla versione 11.0 di CVP server, ma sono valide anche per le versioni precedenti.
Le informazioni discusse in questo documento fanno riferimento a dispositivi usati in uno specifico ambiente di emulazione. Su tutti i dispositivi menzionati nel documento la configurazione è stata ripristinata ai valori predefiniti. Se la rete è operativa, valutare attentamente eventuali conseguenze derivanti dall'uso dei comandi.
La tabella agg_schedule del database ciscoadmin controlla la frequenza di esecuzione di ogni aggregazione. In alcuni casi, dopo un aggiornamento, la tabella viene ricaricata con una nuova pianificazione, ma esiste ancora quella precedente. In questo modo, ogni aggregazione viene eseguita due volte. Ciò influirà negativamente sull'accuratezza delle tabelle di riepilogo, in quanto ognuna avrà il doppio del numero di righe, e di conseguenza dei conteggi, inserite in essa.
Verificare la presenza di duplicati nella tabella agg_schedule.
Accedere al server di report CVP con l'utente cvp_dbadmin.
Avviare lo strumento CMD di Windows. Digitare il comando dbaccess. Selezionare Connessione scheda > Connetti. Selezionare cvp database server e premere Invio. Verrà richiesto di immettere le credenziali. Utilizzare l'account cvp_dbadmin.
Selezionare ciscoadmin@cvp database. Selezionare Query-language > Nuovo. Eseguire questo comando.
UNLOAD TO schedule.txt SELECT * FROM agg_schedule
Aprire il file schedule.txt. A seconda della versione CVP, può trovarsi nelle cartelle C:\Users\Administrator o C:\db\Informix\etc\sysadmin.
Deve contenere voci univoche di programmazione dei dati CVP. Ad esempio, call_15 o applicationsummary_daily come illustrato in questa immagine.
Verificare che non siano presenti tipi duplicati. Se vengono rilevati duplicati, implementare la soluzione.
Disabilitare il processo di riepilogo (CVPSummary) in Utilità di pianificazione di Windows.
Aprire il file schedule.txt e rimuovere tutte le righe duplicate. Dovrebbero restare solo le prime 10 voci.
Connettersi al database ciscoadmin come descritto in precedenza ed eseguire la query. Con questo comando vengono eliminate tutte le voci dalla tabella agg_schedule.
DELETE FROM agg_schedule WHERE 1=1;
Caricare i nuovi valori dal file schedule.txt che non contiene duplicati nella tabella agg_schedule.
LOAD FROM schedule.txt INSERT INTO agg_schedule;
Verificare che non siano presenti duplicati nella tabella agg_schedule. L'output del file schedule1.txt deve contenere solo 10 voci.
UNLOAD TO schedule1.txt SELECT * FROM agg_schedule;
Poiché la tabella da 15 minuti è la base da cui vengono popolate tutte le altre tabelle, è necessario prima fissarla.
Connettersi al database cvp_data.
Eseguire questi comandi per la tabella call_15.
SELECT distinct * FROM call_15 into temp t1 with no log;
TRUNCATE table call_15;
INSERT into call_15 select * from t1;
DROP table t1;
Ripetere gli stessi passaggi per la tabella applicationsummary_15.
SELECT distinct * from applicationsummary_15 into temp t1 with no log;
TRUNCATE table applicationsummary_15;
INSERT into applicationsummary_15 select * from t1;
DROP table t1;
Nota: Se il problema si verifica più di 60 giorni fa, ripetere i passaggi precedenti per le tabelle giornaliere, settimanali e mensili.
Reimpostare il campo Lastrun per le tabelle da 15 minuti.
Scopri l'ora in cui sono state aggiornate le tabelle da 15 minuti. Eseguire questi comandi sul database cvp_data.
SELECT max(dbdatetime) FROM applicationsummary_15;
SELECT max(dbdatetime) FROM call_15;
Prendere nota del numero di giorni trascorsi dall'ultimo aggiornamento.
Eseguire questa query per reimpostare l'ultima esecuzione per le tabelle da 15 minuti nel database ciscoadmin. In questo esempio le tabelle da 15 minuti sono state aggiornate l'ultima volta 17 giorni fa.
UPDATE ciscoadmin:agg_schedule SET lastrun = (current year to day - 17 units day) WHERE dst_tabname LIKE 'call_15';
UPDATE ciscoadmin:agg_schedule SET lastrun = (current year to day - 17 units day) WHERE dst_tabname LIKE 'applicationsummary_15';
Nota: Sostituire "17" dal comando con il numero di giorni ottenuti dal passaggio per ognuna di queste due tabelle.
Successivamente, le tabelle di 15 minuti verranno corrette.
Poiché le tabelle di 15 minuti conservano i dati degli ultimi 60 giorni, reimpostare il valore di lastrun per le tabelle giornaliere, settimanali e mensili ed eliminare tutti i dati di 60 giorni indietro per queste tabelle. In questo modo, al successivo avvio del processo aggregation.bat, i dati nelle tabelle giornaliere, settimanali e mensili verranno popolati con i valori corretti.
Reimpostare il lastrun per le tabelle giornaliere, settimanali e mensili con questi comandi eseguiti sul database ciscoadmin.
UPDATE ciscoadmin:agg_schedule SET lastrun = (current year to day - 60 units day) WHERE dst_tabname LIKE 'call_daily';
UPDATE ciscoadmin:agg_schedule SET lastrun = (current year to day - 60 units day) WHERE dst_tabname LIKE 'call_weekly';
UPDATE ciscoadmin:agg_schedule SET lastrun = (current year to day - 60 units day) WHERE dst_tabname LIKE 'call_monthly;
UPDATE ciscoadmin:agg_schedule SET lastrun = (current year to day - 60 units day) WHERE dst_tabname LIKE 'applicationsummary_daily;
UPDATE ciscoadmin:agg_schedule SET lastrun = (current year to day - 60 units day) WHERE dst_tabname LIKE 'applicationsummary_weekly;
UPDATE ciscoadmin:agg_schedule SET lastrun = (current year to day - 60 units day) WHERE dst_tabname LIKE 'applicationsummary_monthly;
Elimina tutti i dati nelle tabelle giornaliere, settimanali e mensili per 60 giorni precedenti.
DELETE FROM cvp_data:call_daily WHERE dbdatetime > (current - 60 units day);
DELETE FROM cvp_data:call_weekly WHERE dbdatetime > (current - 60 units day);
DELETE FROM cvp_data:call_monthly WHERE dbdatetime > (current - 60 units day);
DELETE FROM cvp_data:applicationsummary_daily WHERE dbdatetime > (current - 60 units day);
DELETE FROM cvp_data:applicationsummary_weekly WHERE dbdatetime > (current - 60 units day);
DELETE FROM cvp_data:applicationsummary_monthly WHERE dbdatetime > (current - 60 units day);
Abilitare il processo di riepilogo CVPSummary nell'Utilità di pianificazione per riavviare il processo di aggregazione.
Fare riferimento a questa sezione per verificare che la configurazione funzioni correttamente.
Accertarsi che le tabelle di riepilogo vengano aggiornate con questi comandi eseguiti sul database cvp_db.
SELECT MAX(dbdatetime) FROM applicationsummary_15;
SELECT max(dbdatetime) FROM applicationsummary_daily;
SELECT max(dbdatetime) FROM applicationsummary_weekly;
SELECT max(dbdatetime) FROM applicationsummary_monthly;
SELECT MAX(dbdatetime) FROM call_15;
SELECT MAX(dbdatetime) FROM call_daily;
SELECT MAX(dbdatetime) FROM call_weekly;
SELECT MAX(dbdatetime) FROM call_monthly;