IBM Support

Some users are unable to access Cognos Analytics after an upgrade

How To


Summary

Some users are unable to access Cognos Analytics after the environment was upgraded to CA 12.0.3 or later.

The following SQL executed in the content store returns row(s) with OBJCLASS being namespaceFolder:

select oc.CMID, c.NAME as OBJCLASS, sc.OBJID, nc.NAME, oc.CREATED, oc.PCMID, sp.OBJID as POBJID
from CMOBJECTS oc inner join
CMOBJNAMES nc on oc.CMID=nc.CMID inner join
CMOBJPROPS1 sc on oc.CMID=sc.CMID inner join
CMCLASSES c on oc.CLASSID = c.CLASSID inner join
CMOBJPROPS1 sp on oc.PCMID=sp.CMID
where oc.CMID in (
select d1.CMID
from CMOBJPROPS1 d1 inner join CMOBJPROPS1 d2
on d1.OBJID = d2.OBJID and d1.CMID != d2.CMID
where d1.OBJID is not null
)

Steps

Apply the following steps only if namespaceFolder is in all the rows returned by the above SELECT.
 
1. Stop Cognos
2. Backup content store database
3. Execute SQL commands to update NAME and OBJID columns
4. Commit the changes
5. Start Cognos
 
The SQL commands for DB2 content store database:
 
update CMOBJNAMES set NAME=(NAME CONCAT '---' CONCAT CAST(CMID as VARCHAR)) where CMID in ( select d1.CMID from CMOBJPROPS1 d1 inner join CMOBJPROPS1 d2 on d1.OBJID = d2.OBJID and d1.CMID != d2.CMID where d1.OBJID is not null );
 
update CMOBJPROPS1 set OBJID=(OBJID CONCAT '---' CONCAT CAST(CMID as VARCHAR)) where CMID in ( select d1.CMID from CMOBJPROPS1 d1 inner join CMOBJPROPS1 d2 on d1.OBJID = d2.OBJID and d1.CMID != d2.CMID where d1.OBJID is not null );
 
commit;
 
The SQL commands for Oracle content store database:
 

UPDATE CMOBJNAMES

SET NAME = NAME || '---' || CAST(CMID AS VARCHAR2(30))

WHERE CMID IN (

SELECT d1.CMID

FROM CMOBJPROPS1 d1

INNER JOIN CMOBJPROPS1 d2

ON d1.OBJID = d2.OBJID

AND d1.CMID <> d2.CMID

WHERE d1.OBJID IS NOT NULL

);

 

UPDATE CMOBJPROPS1

SET OBJID = OBJID || '---' || CAST(CMID AS VARCHAR2(30))

WHERE CMID IN (

SELECT d1.CMID

FROM CMOBJPROPS1 d1

INNER JOIN CMOBJPROPS1 d2

ON d1.OBJID = d2.OBJID

AND d1.CMID <> d2.CMID

WHERE d1.OBJID IS NOT NULL

);

 

commit;

 

The SQL commands for SQL Server content store database:

 
UPDATE CMOBJNAMES
SET NAME = NAME + '---' + CAST(CMID AS VARCHAR(30))
WHERE CMID IN (
SELECT d1.CMID
FROM CMOBJPROPS1 d1
INNER JOIN CMOBJPROPS1 d2
ON d1.OBJID = d2.OBJID
AND d1.CMID <> d2.CMID
WHERE d1.OBJID IS NOT NULL
);
 
UPDATE CMOBJPROPS1
SET OBJID = OBJID + '---' + CAST(CMID AS VARCHAR(30))
WHERE CMID IN (
SELECT d1.CMID
FROM CMOBJPROPS1 d1
INNER JOIN CMOBJPROPS1 d2
ON d1.OBJID = d2.OBJID
AND d1.CMID <> d2.CMID
WHERE d1.OBJID IS NOT NULL
);

 

commit;

Additional Information

Background information

For any object from external namespace that is referenced in content store, Content Manager (CM) creates a hidden proxy object. This object is used for storying optional user-defined properties: for example, we support adding description or a policy on any object; and in case of account, proxy is used as a parent for My Folders and other content.

When proxy object is created, we also create proxies for all object’s ancestors (if they didn’t exist). If ancestors of external object change, we adjust ancestors of the proxy object by crating missing or moving existing objects to the right parent.

Product is designed with assumption that external object id – CAMID – is unique.

Most likely issue happened because some time in the past the namespace folders were moved to a different location inside external namespace.

Document Location

Worldwide

[{"Type":"MASTER","Line of Business":{"code":"LOB76","label":"Data Platform"},"Business Unit":{"code":"BU048","label":"IBM Software"},"Product":{"code":"SSEP7J","label":"IBM Cognos Analytics"},"ARM Category":[{"code":"a8m50000000Cl6YAAS","label":"Install-\u003EContent Manager"}],"ARM Case Number":"","Platform":[{"code":"PF025","label":"Platform Independent"}],"Version":"12.0.3;12.0.4;12.1.0"}]

Document Information

Modified date:
01 May 2026

UID

ibm17244521