Introduction
Ce document décrit comment réparer CSCvd10535 d'une manière possible.
Conditions préalables
Conditions requises
Cisco vous recommande de prendre connaissance des rubriques suivantes :
- Cisco Unified Intelligence Center (CUIC)
- Cisco Unified Contact Center Enterprise (UCCE)
Components Used
Les informations contenues dans ce document sont basées sur les versions de matériel et de logiciel suivantes :
The information in this document was created from the devices in a specific lab environment. All of the devices used in this document started with a cleared (default) configuration. Si votre réseau est en ligne, assurez-vous de bien comprendre l’incidence possible des commandes.
Informations générales
Selon le bogue, si vous recevez cette erreur sur l'opération, l'administration et la gestion de CUIC UCCE Sync, ce document explique une façon de la corriger
« doBulkInsert pour Supervisors a échoué : SQLException : Impossible d'insérer une nouvelle ligne - valeur dupliquée dans une colonne INDEX UNIQUE (Index unique : ). "
Dépannage des problèmes de synchronisation CUIC avec UCCE
Vous pouvez le voir dans les journaux CUIC :
0000019503: 10.250.20.56: Aug 28 2019 14:26:19.232 -0700: %CCBU__CUIC_SECURITY-3-EXCEPTION_INFO: %[build_date=Jan 17, 1970 5:01 PM][build_type=rel][exception=java.sql.SQLException: Unique constraint (informix.u121_108) violated.
at com.informix.jdbc.IfxSqli.addException(IfxSqli.java:3176)
at com.informix.jdbc.IfxSqli.receiveError(IfxSqli.java:3458)
at com.informix.jdbc.IfxSqli.dispatchMsg(IfxSqli.java:2369)
at com.informix.jdbc.IfxSqli.receiveMessage(IfxSqli.java:2294)
at com.informix.jdbc.IfxSqli.executeCommand(IfxSqli.java:871)
at com.informix.jdbc.IfxResultSet.executeUpdate(IfxResultSet.java:290)
at com.informix.jdbc.IfxStatement.executeUpdateImpl(IfxStatement.java:1107)
at com.informix.jdbc.IfxStatement.executeUpdateBody(IfxStatement.java:381)
at com.informix.jdbc.IfxStatement.executeUpdate(IfxStatement.java:269)
at com.mchange.v2.c3p0.impl.NewProxyStatement.executeUpdate(NewProxyStatement.java:64)
at com.cisco.ccbu.cuic.businesslogic.usersync.bulkinsert.CuicUserSyncBulkInsertSupervisors.doBulkInsert(CuicUserSyncBulkInsertSupervisors.java:212)
at com.cisco.ccbu.cuic.businesslogic.usersync.CuicUserSyncProcessingCenterWorkerRunnable.run(CuicUserSyncProcessingCenterWorkerRunnable.java:108)
at java.lang.Thread.run(Thread.java:745)
Caused by: java.sql.SQLException: ISAM error: duplicate value for a record with unique key.
at com.informix.util.IfxErrMsg.getSQLException(IfxErrMsg.java:408)
at com.informix.jdbc.IfxSqli.receiveError(IfxSqli.java:3463)
Collecter les sorties de ces commandes :
run sql select id, name, samaccountname from cuic_data:cuicuser where (samaccountname is null or samaccountname = '') and name not like 'CUIC\\%'
run sql update cuic_data:cuicuser set samaccountname=name where (samaccountname is null or samaccountname = '') and name not like 'CUIC\\%
run sql select name, description, alias from cuic_data:cuicuser order by description
Exécutez cette requête pour rechercher le nom/l'ID de l'utilisateur que vous essayez de supprimer de l'interface utilisateur CUIC :
run sql select id, name, description from cuic_data:cuicuser
L'ID utilisateur ressemble à ceci :
6FD44DB6100001620010065A0AFA1438
Une fois que vous avez l'ID, vous pouvez exécuter ces requêtes pour l'utilisateur et remplacer la partie '<userId>' par l'ID que vous avez trouvé dans la commande précédente :
run sql select Id, ScheduledreportName from cuic_data:cuicScheduledReports where UserId = '<userId>'
run sql select Id, name from cuic_data:cuicCategory where Owner = '<userId>'
run sql select Id, name from cuic_data:cuicDashboard where Owner = '<userId>'
run sql select Id, name from cuic_data:cuicReportDefinition where Owner = '<userId>'
run sql select Id, name from cuic_data:cuicReport where Owner = '<userId>'
run sql select Id, name from cuic_data:cuicDatasource where Owner = '<userId>'
run sql select Id, name from cuic_data:cuicValueList where Owner = '<userId>'
run sql select Id, name from cuic_data:cuicCollection where Owner = '<userId>' and ValueListId is not null
Dans cet exemple, 11 utilisateurs n'ont pas pu être supprimés.
À partir de cette requête, recherchez l'ID du compte d'administrateur CUIC :
run sql select id, name, description from cuic_data:cuicuser
C'est généralement celui-ci :
1111111111111111111111111111AAAA
Exécutez ces requêtes pour prendre possession des objets :
run sql update cuic_data:cuicreport set owner = '1111111111111111111111111111AAAA' where owner in ( select id from cuic_data:cuicuser where name in ('Cisco\admin'))
run sql select id,name from cuic_data:cuicscheduledreports where owner in ( select id from cuic_data:cuicuser where name in ('Cisco\admin'))
run sql update cuic_data:cuiccategory set owner = '1111111111111111111111111111AAAA' where owner in ( select id from cuic_data:cuicuser where name in ('Cisco\admin'))
run sql update cuic_data:cuicdashboard set owner = '1111111111111111111111111111AAAA' where owner in ( select id from cuic_data:cuicuser where name in ('Cisco\admin'))
run sql update cuic_data:cuicscheduledreports set userid = '1111111111111111111111111111AAAA' where userid in ( select id from cuic_data:cuicuser where name in ('Cisco\admin'))
Si des dossiers sont créés par les utilisateurs, vous pouvez également les supprimer de l'interface utilisateur CUIC.
Vous pouvez également utiliser la fonction "Exécuter sous" et supprimer des rapports spécifiques de l'intérieur.