SUMMARY
This technical document covers a know issue with Strategy 10 Enterprise Manager, also affecting versions 10.1 and 10.1 Hotfix 1. The Strategy Enterprise Manager Data Load fails with error: "Violation of PRIMARY KEY constraint CT_EXEC_STATS_PK. Cannot insert duplicate key in object". This issue has been fixed in Strategy 10.2. Take advantage of upgrading for a fix.
Also, a fix has been developed to address this known issue in versions 10, 10.1 and 10.1 Hotfix 1
SYMPTOM
When running a Strategy Enterprise Manager data load from Operations Manager, the data load fails with the following error message:
"Violation of PRIMARY KEY constraint CT_EXEC_STATS_PK. Cannot insert duplicate key in object"
DELETE FROM STG_CT_EXEC_STATS WHERE EXISTS
(
SELECT DISTINCT STG_CT_EXEC_STATS.*
FROM STG_CT_EXEC_STATS
JOIN CT_EXEC_STATS
ON STG_CT_EXEC_STATS.DAY_ID = CT_EXEC_STATS.DAY_ID
AND STG_CT_EXEC_STATS.DEVICEINSTID = CT_EXEC_STATS.DEVICEINSTID
AND STG_CT_EXEC_STATS.CTSESSIONID = CT_EXEC_STATS.CTSESSIONID
AND STG_CT_EXEC_STATS.ACTIONID = CT_EXEC_STATS.ACTIONID
)
;
DELETE FROM STG_CT_MANIP_STATS WHERE EXISTS
(
SELECT DISTINCT STG_CT_MANIP_STATS.*
FROM STG_CT_MANIP_STATS
JOIN CT_MANIP_STATS
ON STG_CT_MANIP_STATS.DAY_ID = CT_MANIP_STATS.DAY_ID
AND STG_CT_MANIP_STATS.DEVICEINSTID = CT_MANIP_STATS.DEVICEINSTID
AND STG_CT_MANIP_STATS.CTSESSIONID = CT_MANIP_STATS.CTSESSIONID
AND STG_CT_MANIP_STATS.ACTIONID = CT_MANIP_STATS.ACTIONID
AND STG_CT_MANIP_STATS.MANIPSEQUENCEID = CT_MANIP_STATS.MANIPSEQUENCEID
AND STG_CT_MANIP_STATS.MANIPVALUESEQ = CT_MANIP_STATS.MANIPVALUESEQ
);
/* RG - 4/19/2002 - Script created */
/* VM - New version for Statistics Version 8.0 */
UPDATE IS_SESSION_STATS
SET DISCONNECTTIME = CONNECTTIME + 1, RECORDTIME = SYSDATE WHERE (SYSDATE - CAST(CONNECTTIME AS DATE)) > 0 AND DISCONNECTTIME IS NULL;
UPDATE IS_PROJ_SESS_STATS
SET DISCONNECTTIME = CONNECTTIME + 1, RECORDTIME = SYSDATE WHERE (SYSDATE - CAST(CONNECTTIME AS DATE)) > 0 AND DISCONNECTTIME IS NULL;
DELETE FROM STG_CT_EXEC_STATS WHERE EXISTS
(
SELECT DISTINCT STG_CT_EXEC_STATS.*
FROM STG_CT_EXEC_STATS
JOIN CT_EXEC_STATS
ON STG_CT_EXEC_STATS.DAY_ID = CT_EXEC_STATS.DAY_ID
AND STG_CT_EXEC_STATS.DEVICEINSTID = CT_EXEC_STATS.DEVICEINSTID
AND STG_CT_EXEC_STATS.CTSESSIONID = CT_EXEC_STATS.CTSESSIONID
AND STG_CT_EXEC_STATS.ACTIONID = CT_EXEC_STATS.ACTIONID
)
;
DELETE FROM STG_CT_MANIP_STATS WHERE EXISTS
(
SELECT DISTINCT STG_CT_MANIP_STATS.*
FROM STG_CT_MANIP_STATS
JOIN CT_MANIP_STATS
ON STG_CT_MANIP_STATS.DAY_ID = CT_MANIP_STATS.DAY_ID
AND STG_CT_MANIP_STATS.DEVICEINSTID = CT_MANIP_STATS.DEVICEINSTID
AND STG_CT_MANIP_STATS.CTSESSIONID = CT_MANIP_STATS.CTSESSIONID
AND STG_CT_MANIP_STATS.ACTIONID = CT_MANIP_STATS.ACTIONID
AND STG_CT_MANIP_STATS.MANIPSEQUENCEID = CT_MANIP_STATS.MANIPSEQUENCEID
AND STG_CT_MANIP_STATS.MANIPVALUESEQ = CT_MANIP_STATS.MANIPVALUESEQ
);
Notes: