Problem
Attempted deletion of an Archive by the Enterprise Vault Administrator or after using the 'Move Archive' utility, the old archive will not delete.
Error Message
Event Type: Error
Event Source: Enterprise Vault
Event Category: Directory Service
Event ID: 13360
Description:
An error was detected while accessing the Vault Database 'EnterpriseVaultDirectory' (Internal reference: .\ADODataAccess.cpp (CADODataAccess::ExecuteSQLCommand) [lines {1388,1390,1405,1423}] built Jul 3 19:52:25 2009):
Description:
The DELETE statement conflicted with the REFERENCE constraint "FK_VaultInterest_VaultEntryId". The conflict occurred in database "EnterpriseVaultDirectory", table "dbo.VaultInterest", column 'VaultEntryId'.
SQL Command:
DeleteArchive
V-437-13360
Event Type: Error
Event Source: Enterprise Vault
Event Category: Directory Service
Event ID: 8453
Description:
The EnterpriseVault.DirectoryService object reported an error.
The error code was 0x80040e2f
V-437-8453
Event Type: Error
Event Source: Enterprise Vault
Event Category: Storage Delete
Event ID: 6643
Description:
Delete Vault failed
Reason: <0x80040e2f>
Vault Name: John Smith
Vault Store: MBXS01
Vault Id: 1799D2FE5224AA4498A90F8BEA0A17C921110000evsite
V-437-6643
Cause
An entry is added to the EnterpriseVaultDirectory database table named VaultInterest when an Accelerator product conducts a search against an Archive (aka: Vault). To maintain the integrity of a Discovery Accelerator (DA) Case or Compliance Accelerator (CA) / Veritas Advanced Surveillance (VAS) Department search, the archive cannot be deleted until all Accelerator interest in the archive has been removed.
Solution
In the event where it is not a feasible concept to delete all Cases/Departments/Research Folders holding an interest in the Archive, several items must be understood and agreed upon by a company authority, before support will assist in removing the vault interest.
1. No items captured from the Archive(s) of interest can be reviewed after the Archive is deleted.
2. No items captured from the Archive(s) of interest can be exported after the Archive is deleted.
3. Disabling of the 'Enable Archive registration task' in order to remove the Vault Interest, will prevent future archives from acquiring this protective feature.
4. Deletion of the archive requires removing Legal Holds through Discovery Accelerator, if applicable.
5. The Discovered evidence within the case or department will be compromised if any of the applicable archives are deleted, causing production exports to fail on producing items from said archives for use by legal counsel or any other third party. A full audit trail will therefore need to be maintained which is outside the scope of Enterprise Vault, if the need arises.
In order to obtain a list of Cases/Departments/Research Folders that have an interest in an Archive to be deleted, obtain the VaultID from the Event ID 6643 entry and follow these steps:
1. Edit the VaultID in the query below and run the query against the EnterpriseVaultDirectory database to obtain the names of the CA/DA Customer databases that have an interest in the archive:
USE EnterpriseVaultDirectory;
DECLARE @VaultEntryID nvarchar(250) = '119064F99FDB2EB4D98A45AE2B2B116AC1110000EV';-- Edit VaultID here
SELECT vi.VaultEntryID
, r.RootIdentity
, a.ArchiveName
, a.ArchiveDescription
, vi.ConsumerName AS 'Accelerator application: Customer database name'
FROM VaultInterest AS vi
JOIN Root AS r ON vi.VaultEntryID = r.VaultEntryID
JOIN Archive AS a ON r.RootIdentity = a.RootIdentity
WHERE vi.VaultEntryID = @VaultEntryID;
2. Then edit the VaultID in the query below and run the query against each of the CA/DA Customer database(s) to list the Cases/Departments/Research Folders that have run Searches against the Archive:
DECLARE @KVSVaultEntryID nvarchar(250) = '119064F99FDB2EB4D98A45AE2B2B116AC1110000EV';-- Edit VaultID here
;WITH VaultInterestCaseID AS (
SELECT tc0.CaseID
FROM tblSearchVault AS tsv0 WITH (NOLOCK)
JOIN tblVaults AS tv0 ON tsv0.VaultId = tv0.VaultID
JOIN tblIntSearches AS tis0 WITH (NOLOCK) ON tsv0.SearchID = tis0.SearchID
JOIN tblCase AS tc0 WITH (NOLOCK) ON tis0.CaseID = tc0.CaseID
WHERE tv0.KVSVaultEntryID = @KVSVaultEntryID
UNION
SELECT tc1.CaseID
FROM tblSearchVaultsArchived AS tsva1 WITH (NOLOCK)
JOIN tblVaults AS tv1 ON tsva1.VaultId = tv1.VaultID
JOIN tblIntSearches AS tis1 WITH (NOLOCK) ON tsva1.SearchID = tis1.SearchID
JOIN tblCase AS tc1 WITH (NOLOCK) ON tis1.CaseID = tc1.CaseID
WHERE tv1.KVSVaultEntryID = @KVSVaultEntryID
UNION
SELECT DISTINCT tc2.CaseID
FROM tblIntDiscoveredItems AS tidi2 WITH (NOLOCK)
JOIN tblVaults AS tv2 WITH (NOLOCK) ON tidi2.VaultID = tv2.VaultID
JOIN tblCase AS tc2 WITH (NOLOCK) ON tidi2.CaseID = tc2.CaseID
WHERE tv2.KVSVaultEntryID = @KVSVaultEntryID
UNION
SELECT DISTINCT tc3.CaseID
FROM tblSearchItems AS tsi3 WITH (NOLOCK)
JOIN tblVaults AS tv3 WITH (NOLOCK) ON tsi3.VaultID = tv3.VaultID
JOIN tblCase AS tc3 WITH (NOLOCK) ON tsi3.CaseID = tc3.CaseID
WHERE tv3.KVSVaultEntryID = @KVSVaultEntryID)
SELECT tc1.CaseID AS 'Case/Dept ID',
tc1.Name AS 'Case/Dept Name',
CASE
WHEN (tc1.FolderType = 330 AND tc1.Type = 101) THEN 'Case'
WHEN (tc1.FolderType = 330 AND tc1.Type = 102) THEN 'Department'
WHEN tc1.FolderType = 331 THEN 'Folder'
WHEN tc1.FolderType = 332 THEN 'Hidden Folder' END AS 'Case/Dept Type',
tp.PrincipalName AS 'Case/Dept Owner',
ts1.Name AS 'Case/Dept Status',
ISNULL(CONVERT(nvarchar(25), tc2.CaseID), '') AS 'Parent CaseID',
ISNULL(tc2.Name, '') AS 'Parent Case/Dept Name',
ISNULL(ts2.Name, '') AS 'Parent Case/Dept Status'
FROM VaultInterestCaseID AS vici
JOIN tblCase AS tc1 WITH (NOLOCK) ON vici.CaseID = tc1.CaseID
INNER JOIN tblStatus AS ts1 ON tc1.StatusID = ts1.StatusID
LEFT JOIN tblPrincipal AS tp ON tc1.OwnerPrincipalID = tp.PrincipalID
LEFT JOIN tblCase AS tc2 WITH (NOLOCK) ON tc1.ParentCaseID = tc2.CaseID
LEFT JOIN tblStatus AS ts2 ON tc2.StatusID = ts2.StatusID
ORDER BY tc1.CaseID, tc2.CaseID;
3. OPTIONAL step as this could return a large result - To list the Searches in the Cases/Departments/Research Folders that have been run against the Archive, edit the VaultID in the query below and run the query against each of the CA/DA Customer database(s):
DECLARE @KVSVaultEntryID nvarchar(250) = '119064F99FDB2EB4D98A45AE2B2B116AC1110000EV';-- Edit VaultID here
;WITH VaultInterestCaseID AS (
SELECT tc0.CaseID, tsv0.SearchID
FROM tblSearchVault AS tsv0 WITH (NOLOCK)
JOIN tblVaults AS tv0 ON tsv0.VaultId = tv0.VaultID
JOIN tblIntSearches AS tis0 WITH (NOLOCK) ON tsv0.SearchID = tis0.SearchID
JOIN tblCase AS tc0 WITH (NOLOCK) ON tis0.CaseID = tc0.CaseID
WHERE tv0.KVSVaultEntryID = @KVSVaultEntryID
UNION
SELECT tc1.CaseID, tsva1.SearchID
FROM tblSearchVaultsArchived AS tsva1 WITH (NOLOCK)
JOIN tblVaults AS tv1 ON tsva1.VaultId = tv1.VaultID
JOIN tblIntSearches AS tis1 WITH (NOLOCK) ON tsva1.SearchID = tis1.SearchID
JOIN tblCase AS tc1 WITH (NOLOCK) ON tis1.CaseID = tc1.CaseID
WHERE tv1.KVSVaultEntryID = @KVSVaultEntryID
UNION
SELECT DISTINCT tc2.CaseID, tidi2.SearchID
FROM tblIntDiscoveredItems AS tidi2 WITH (NOLOCK)
JOIN tblVaults AS tv2 WITH (NOLOCK) ON tidi2.VaultID = tv2.VaultID
JOIN tblCase AS tc2 WITH (NOLOCK) ON tidi2.CaseID = tc2.CaseID
WHERE tv2.KVSVaultEntryID = @KVSVaultEntryID
UNION
SELECT DISTINCT tc3.CaseID, tsi3.SearchID
FROM tblSearchItems AS tsi3 WITH (NOLOCK)
JOIN tblVaults AS tv3 WITH (NOLOCK) ON tsi3.VaultID = tv3.VaultID
JOIN tblCase AS tc3 WITH (NOLOCK) ON tsi3.CaseID = tc3.CaseID
WHERE tv3.KVSVaultEntryID = @KVSVaultEntryID)
SELECT tis.CaseID
, tc.Name AS 'Case/Dept Name'
, tp1.PrincipalName AS 'Case/Dept Owner'
, CASE WHEN (tc.FolderType = 330 AND tc.Type = 101) THEN 'Case'
WHEN (tc.FolderType = 330 AND tc.Type = 102) THEN 'Department'
WHEN tc.FolderType = 331 THEN 'Folder'
WHEN tc.FolderType = 332 THEN 'Hidden Folder'
ELSE 'Other' END AS 'FolderType'
, tc.StatusID AS 'Case StatusID'
, ts2.Name AS 'Case Status'
, tis.SearchID
, tis.Name AS 'Search Name'
, ISNULL(tp2.PrincipalName,'Not available') AS 'Search Submitter'
, tis.CreateDate
, tis.RunDate
, ts.StatusID AS 'Search StatusID'
, ts.Name AS 'Search Status'
, tis.Type AS 'Search Type ID'
, ts3.Name AS 'Search Type'
, tis.NumIndexVolsSearch
, tis.NumIndexVolsTotal
, tis.SampleResultSize AS 'Hit Count'
, CASE tis.OnlyNew WHEN 0 THEN 'Yes' WHEN 1 THEN 'No' END AS 'Include items already in review'
, CASE tis.AutoAccept WHEN 0 THEN 'No' WHEN 1 THEN 'Yes' END AS 'Automatically accept search results'
FROM VaultInterestCaseID AS vici
JOIN tblIntSearches AS tis WITH (NOLOCK) ON vici.SearchID = tis.SearchID
JOIN tblCase AS tc WITH (NOLOCK) ON tis.CaseID = tc.CaseID
JOIN tblStatus AS ts2 ON ts2.StatusID = tc.StatusID
LEFT JOIN tblPrincipal AS tp1 ON tc.OwnerPrincipalID = tp1.PrincipalID
LEFT JOIN tblPrincipal AS tp2 ON tis.CreatedByID = tp2.PrincipalID
LEFT JOIN tblStatus AS ts WITH (NOLOCK) ON tis.StatusID = ts.StatusID
JOIN tblStatus AS ts3 WITH (NOLOCK) ON tis.Type = ts3.StatusID
LEFT JOIN tblSearchResults AS tsr WITH (NOLOCK) ON tis.SearchID = tsr.SearchID
LEFT JOIN tblSearchItems AS tsi WITH (NOLOCK) ON tis.SearchID = tsi.SearchID
ORDER BY tis.CaseID, tis.SearchID;
Customer Action
The issue described in this Article 'Cannot Delete Archive Because of Vault Interest' is caused by the inability to delete an Archive in Enterprise Vault (EV) due to Vault Interest. When Compliance Accelerator/Veritas Advanced Surveillance (CA/VAS) or Discovery Accelerator (DA) conduct a search against an Archive, an entry for the Archive is added to the the VaultInterest table in the EnterpriseVaultDirectory database. This entry indicated an Accelerator interest in the Archive and prevents the deletion of the Archive until all Accelerator interest in the Archive has been removed. To remove the Vault Interest, all Cases/Departments/Research Folders that have conducted a search involving the Archive must be deleted.
If it is not feasible to delete all Cases/Departments/Research folders holding an interest in the Archive, certain conditions must be agreed upon before Technical Support can assist in removing the Vault Interest. These conditions include the removal of all Legal Holds from items in the Archive prior to being deleted and the inability to Review or Export items captured from the Archive after it is deleted. Note that deleting Archives has the potential to compromise discovered evidence within the Case or Department within such Archives, thus causing Exports and/or Productions to fail on items within such Archives.
In addition, there is the option to disable Vault Interest from being applied to Archives in the future where it has not already been applied. This can be effected by disabling the 'Enable Archive Registration Task' setting under Configuration | Settings | Vault Directory Synchronization for each Customer database.
A list of Cases/Departments/Research Folders that have an interest in an Archive to be deleted can be obtained by executing the SQL queries listed in the Article.
In order to remove any Vault Interest, Technical Support requires an approval email from an authoritative individual stating that the implications outlined above are well understood and that this is what is desired. Please indicate your approval via email reply stating that you have the authority to make this decision on behalf of the company and include the following statement. Please include your title in your email signature.
I am confirming our request for Veritas Technologies LLC to delete the Archives listed below and I am authorised by my company to approve such a request. I understand that all data in these Archives will be permanently and irrevocably deleted. I also understand no data from these Archives will be available for Review or Export/Production and that any Legal Holds on items in these Archives will be removed.
<List of Archives>
<Signature and Title of authorising party>