소개
이 문서에서는 CSCvd10535를 가능한 한 수정하는 방법에 대해 설명합니다.
사전 요구 사항
요구 사항
다음 주제에 대한 지식을 보유하고 있으면 유용합니다.
- Cisco CUIC(Unified Intelligence Center)
- Cisco UCCE(Unified Contact Center Enterprise)
사용되는 구성 요소
이 문서의 정보는 다음 소프트웨어 및 하드웨어 버전을 기반으로 합니다.
이 문서의 정보는 특정 랩 환경의 디바이스를 토대로 작성되었습니다.이 문서에 사용된 모든 디바이스는 초기화된(기본) 컨피그레이션으로 시작되었습니다.네트워크가 작동 중인 경우 모든 명령의 잠재적인 영향을 이해해야 합니다.
배경 정보
버그에 따르면 CUIC의 OAMP(Operation, Administration and Management) UCCE Sync에서 이 오류가 발생하는 경우 이 문서에서는 이를 수정하는 한 가지 방법에 대해 설명합니다
"수퍼바이저에 대한 doBulkInsert 실패:SQLException:새 행을 삽입할 수 없습니다. UNIQUE INDEX 열에 값이 중복되었습니다(고유 인덱스:). "
UCCE에서 CUIC 동기화 문제 해결
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)
다음 명령의 출력을 수집합니다.
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
CUIC UI에서 제거하려는 사용자의 이름/ID를 찾으려면 이 쿼리를 실행합니다.
run sql select id, name, description from cuic_data:cuicuser
사용자 ID는 다음과 같습니다.
6FD44DB6100001620010065A0AFA1438
ID가 있으면 사용자에 대해 이러한 쿼리를 실행하고 '<userId>' 부분을 이전 명령에서 찾은 ID로 바꿀 수 있습니다.
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
이 예에서는 삭제할 수 없는 11명의 사용자를 찾았습니다.
이 쿼리에서 CUIC 관리자 계정의 ID를 찾습니다.
run sql select id, name, description from cuic_data:cuicuser
대개 다음과 같습니다.
1111111111111111111111111111AAAA
다음 쿼리를 실행하여 개체의 소유권을 가져옵니다.
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'))
사용자가 만든 폴더가 있으면 CUIC UI에서도 제거할 수 있습니다.
'실행' 기능을 사용하고 내에서 특정 보고서를 제거할 수도 있습니다.