Forum Discussion

mrmac's avatar
mrmac
Level 3
7 years ago

Issues with broken placeholders

Hi,

I am having a problem with broken placeholders on a netapp NAS (7-mode) after the files (placeholders) were moved around in the file system.

FSAUtility is unable to recreate the placeholders so I was wondering if there is any way to find out what the share path or URL in SQL was when the file was first archived?

I've tried running FSAUtil but suspect that because the access point share has changed, as a result of the volume and folder moves, the util is unable to correlate the path in SQL

EV Version is 10.5.

Thank you 

  • Hi,

    FSA does not perform moved item reconciliation so items will appear in their original archived location.  The following SQL query can be used to get the folder paths and file names.  Replace the SET @ArchiveName entry with the name of the archive to limit the results.  

    -- Query start 

    DECLARE @ArchiveName nvarchar(75)
    DECLARE @ArchiveID nvarchar(75)
    DECLARE @FolderID nvarchar(75)
    DECLARE @Idtransaction nvarchar(40)

    SET @ArchiveID = NULL
    SET @ArchiveName = 'windowsrecallarchivepoint'
    SET @FolderID = NULL
    SET @Idtransaction = NULL

    Select
    Archive.ArchiveName,
    FolderPath,
    CASE
    WHEN LEFT(sp.properties,2) = '<?' THEN SUBSTRING(properties, (CHARINDEX('<filename>', properties)+10), (CHARINDEX('</filename>', properties)-(CHARINDEX('<filename>', properties)+10)))
    WHEN LEFT(sp.properties,6) = 'FSA/3/' THEN SUBSTRING(properties, 7, CHARINDEX('/', properties, 7)-7)
    WHEN LEFT(sp.properties,6) = '<C v="' THEN SUBSTRING (properties, 7, CHARINDEX('|',properties, 7)-7)

    END as FileName,
    ss.ArchivedDate
    -- SP.Properties
    FROM
    EnterpriseVaultDirectory.dbo.root r1
    JOIN EnterpriseVaultDirectory.dbo.Root r2 on r1.RootIdentity = r2.ContainerRootIdentity
    JOIN EnterpriseVaultDirectory.dbo.archive on r1.RootIdentity = Archive.RootIdentity
    JOIN EnterpriseVaultDirectory.dbo.ArchiveFolder on r2.RootIdentity = ArchiveFolder.RootIdentity
    JOIN Vault on r2.VaultEntryId = Vault.Vaultid
    JOIN Saveset ss on Vault.VaultIdentity = ss.VaultIdentity
    JOIN SavesetProperty sp on ss.savesetidentity = sp.SavesetIdentity
    WHERE
    r1.VaultEntryid= ISNULL(@ArchiveID, r1.VaultEntryid)
    AND ArchiveName = ISNULL(@ArchiveName, ArchiveName)
    AND r2.VaultEntryid = ISNULL(@FolderID, r2.VaultEntryId)
    AND ss.IdTransaction = ISNULL(@Idtransaction, ss.IdTransaction)

    Regards,

    Patrick 

    • mrmac's avatar
      mrmac
      Level 3

      Thank you veyr much Patrick, I don't have direct access to our SQL so have asked our DBA to get this done.

      Once we have the "old" path, is there a SQL script or utility that would let us replace old with new?

      • plaudone1's avatar
        plaudone1
        Level 6

        Hi,

        It would be difficult to change these as it would require manual updates to all of the items that have changed.  You could use the information to restore the items to the alternate folder using FSUtility -t or use EV Search to find the items.  

        Once the full item is in the new path it can be archived and a pointer associated with it in that folder.  The item should be single instanced as it was already archived in the previous folder. 

        Regards,

        Patrick