이 문서에서는 CSCvd10535를 가능한 한 수정하는 방법에 대해 설명합니다.
다음 주제에 대한 지식을 보유하고 있으면 유용합니다.
이 문서의 정보는 다음 소프트웨어 및 하드웨어 버전을 기반으로 합니다.
이 문서의 정보는 특정 랩 환경의 디바이스를 토대로 작성되었습니다.이 문서에 사용된 모든 디바이스는 초기화된(기본) 컨피그레이션으로 시작되었습니다.네트워크가 작동 중인 경우 모든 명령의 잠재적인 영향을 이해해야 합니다.
버그에 따르면 CUIC의 OAMP(Operation, Administration and Management) UCCE Sync에서 이 오류가 발생하는 경우 이 문서에서는 이를 수정하는 한 가지 방법에 대해 설명합니다
"수퍼바이저에 대한 doBulkInsert 실패:SQLException:새 행을 삽입할 수 없습니다. UNIQUE INDEX 열에 값이 중복되었습니다(고유 인덱스:). "
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에서도 제거할 수 있습니다.
'실행' 기능을 사용하고 내에서 특정 보고서를 제거할 수도 있습니다.