概要
このドキュメントでは、可能な方法でCSCvd10535を修正する方法について説明します。
前提条件
要件
次の項目に関する知識があることが推奨されます。
- Cisco Unified Intelligence Center(CUIC)
- Cisco Unified Contact Center Enterprise(UCCE)
使用するコンポーネント
このドキュメントの情報は、次のソフトウェアとハードウェアのバージョンに基づいています。
このドキュメントの情報は、特定のラボ環境にあるデバイスに基づいて作成されました。このドキュメントで使用するすべてのデバイスは、初期(デフォルト)設定の状態から起動しています。本稼働中のネットワークでは、各コマンドによって起こる可能性がある影響を十分確認してください。
背景説明
このバグに基づき、CUICのOperation, Administration and Management(OAMP)UCCE Syncでこのエラーが発生する場合は、このドキュメントで解決策の1つを説明します
スーパーバイザの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からも削除できます。
[Run As] 機能を使用して、から特定のレポートを削除することもできます。