RTC 2.0.0.2 Is it advisable to delete attachment from MODEL.ATTACHMENTS table RTCMasterDB
RTC 2.0.0.2 Is it advisable to delete attachment from MODEL.ATTACHMENTS table RTCMasterDB
a user inadvertantly attached a file with extremely sensitive information and would like it deleted from our RTC system; removing it, and removing it from comment still leaves it available in HISTORY tab. I can see it in the master database and COULD delete it if this wouldn't cause any system instability or referential integrity issues. Is this a safe operation?
RTC 2.0.0.2 on Microsoft SQL Server 2008
Accepted answer
Hi Dave
But not in RTC 2.0.0.2.
--> For RTC 2.0.0.2, one needs to go through the following jazz.net article on discarding the work item and the Attachment history. This might suffice for the requirement.
http://jazz.net/library/article/193
--> If there is a dire need to delete from the database using the SQL queries, IBM does not support running the queries at the database level, to delete the attachment. Even if tried, it's highly recommended an offline Database backup is taken before each change.
--> For an attachment, there is not just a single entry in the Database for an item.
1) There is an entry for querying (the model.attachment table)
2) There are separate entries for the current state and historic states that contain the serialized EMF XML.
Essentially all these entries will need to be deleted.
--> In a couple of instances for RTC 2.0.0.2 version, following were the guidelines used to remove the attachment, using the SQL queries.
**********
a.
***
delete from MODEL.ATTACHMENT where ITEM_ID = '_6lIm0Qj_EeC-Q9fTUVcnpA';
delete from REPOSITORY.ITEM_CURRENTS where ITEM_UUID = '_6lIm0Qj_EeC-Q9fTUVcnpA';
delete from REPOSITORY.ITEM_STATES where ITEM_UUID = '_6lIm0Qj_EeC-Q9fTUVcnpA';
delete from REPOSITORY.CONTENT_STORAGE where OWNER_ITEM_UUID = '_6lIm0Qj_EeC-Q9fTUVcnpA';
delete from LINKS.AUDITABLE_LINK where TARGET_REF_REFERENCED_ITM_TM_D = '_6lIm0Qj_EeC-Q9fTUVcnpA';
***
This should remove all traces and content for the attachment.
The server needs to be restarted after executing the SQL statements, as the transactional cache may still hold on to the attachment information.
b. To find ITEM_ID from an attachment:
select * from MODEL.ATTACHMENT where ID = 3424;
c. The above commands were for Derby database though and needs to be varied based on the specific database in use.
**********