Information Governance

Since we've started using Filesystem Archiving back in 2006 i've noticed userfiles appear flagged offline but are in fact not offline. This can be seen, for example, using the (old) MS's RSDIR utility.
Files flagged offline that really are offline are shown bij RSDIR like:
C:\>rsdir P:\studsched.txt

Showing information for <studsched.txt>

Status        Attributes    Physical     Logical        Migrate Time File Name
------        ----------    --------     -------        ------------ ---------
non-HSM      ------OP--Z           0        3149                  NA studsched.txt

                1 File(s)               0 bytes
                0 Dir(s)             3149 bytes required to recall offline files

Not-offline files that are incorrectly flagged offline are shown like:
C:\>rsdir "h:\users\<a-user's-home-folder>\MY DOCUMENTS\Myfiles\PLATO\Vpb2007\vb2007d.cfg"

Showing information for <vb2007d.cfg>

Status        Attributes    Physical     Logical        Migrate Time File Name
------        ----------    --------     -------        ------------ ---------
non-HSM      ------OPR-Z         118         118                  NA vb2007d.cfg

                1 File(s)             118 bytes
                0 Dir(s)                0 bytes required to recall offline files

This is a problem because FSA will not (re-)archive such an incorrectly offline flagged file. Users however can still work normally with these files. This problem still exists in our current version: 8.0 SP2.

I know this problem is caused by incorrectly handling archived files by the user from the FSA perspective:
When a user copies a new version of a file without first opening, and thereby dearchiving the file, Windows will overwrite the archived file with the new version of the file, but leaving the offline flag.

To address this problem I've created a MS Access/VBA program: repairOffline.mdb. This program searches incorrect offline flagged files and clears the offline flag. I've used MS Access/VBA because it's an easy programming environment (to me).
In this program I use the kernel32.dll functions GetFileAttributes, GetCompressedFileSize and SetFileAttributes to find these files, double-check the fault-condition (filesize > 0) and correct this by removing the offline flag.

I attach this program hoping it may be of some use to other users of Enterprise Vault FSA.
Before using this program on user files, I urge you to thoroughly test the program on non-important files. I offer this program as-is, leaving possible problems that arise from using the program to the user. I have been using this program for some time now without problems, having over 10000 files repaired by clearing the offline flag.

Some note's on the program usage:

  • Processing a large number of files will take a long time!
  • On the top of the (VBA) code on the Form resetFiles the Const ROOTFOLDER is used to specify the root-folder path. Files in all subfolders under this root-folder will be checked and on all incorrectly flagged offline files found the offline flag will be cleared. An UNC-path or a physical-path (drive-letter-path local to the PC running repairOffline) may be used in ROOTFOLDER. The VBA code looks like this:

' ROOTFOLDER must contain the rootfolder path for files to check in all subfolders in ROOTFOLDER
' ROOTFOLDER may be a physical path with drive letter (e.g. H:\HomeFolders) or a UNC-path (e.g. \\fserver1\homes)

The program will issue a message and will not run without a correctly specified ROOTFOLDER.

  • The Form resetFiles has a log-listbox. This listbox has a VBA imposed limited nr of entries. When that limit is reached, older entries are removed from the list.
  • The Pause button can be used to pause processing. The Exit button is enabled when processing is done or when Pause is pressed. When exiting the program before all processing is done, the user can choose to keep the folder records, allowing resuming processing later on.

I hope this program will work as good for you as it have done for me and my users!

Kind regards, Paul