1.2 Using the Siebel File System Cleanup Utility

advertisement
Siebel File System Cleanup
1
Introduction .......................................................................................................... 2
1.1
The Siebel File System ............................................................................... 2
1.3
Using the SFSMKDIR Utility........................................................................ 5
1.2
2
Using the Siebel File System Cleanup Utility ............................................ 2
Procedure ............................................................................................................ 6
2.1
Stop Siebel Server ....................................................................................... 7
2.3
Report ........................................................................................................... 7
2.2
2.4
2.5
2.6
Backup .......................................................................................................... 7
Repeated Cleanup ....................................................................................... 7
Dividing ......................................................................................................... 8
Start Siebel Server....................................................................................... 8
1
1.1
Introduction
The Siebel File System
The Siebel File System consists of a shared directory, which is network-
accessible to the Siebel Server that contains the physical files used by Siebel
clients. To gain access to files, Web clients connect to the appropriate Siebel
Server to request file uploads or downloads. The Siebel Server then accesses
the Siebel File System using the File System Manager (FSM) component. File
System Manager processes these requests through interaction with the Siebel
File System directory.
Files stored in the Siebel File System are compressed at the Siebel Server-level
and named according to the format
<TABLENAME>_<ROW_ID>_<REVISION#>.SAF. (Siebel Attachment File size
displayed in the GUI represents the size of the compressed .saf file, not the
actual file size.) The Siebel File System storage location of the compressed files
is set by the Siebel Enterprise Server parameter Siebel File System (alias
FileSystem). The files stored in the Siebel File System are not directly
accessible by users and must be decompressed and returned to the user
through the Web client.
1.2
Using the Siebel File System Cleanup Utility
Sometimes, for example due to bad synchronizing, an expected file does not
exist for a database record. On the other hand the File System can contain files
that are not used (anymore) by Siebel, for example files with an old revision
number. These files do not correspond with a database record and are called
orphan files.
The Siebel File System Cleanup Utility can be used to verify the integrity
between database records and files in the Siebel File System, or to remove files
from the Siebel File System that no longer have a corresponding database
record. It is a command-line utility, named sfsutl.exe in Siebel 6 or
sfscleanup.exe in Siebel 7, located in the bin subdirectory within the Siebel
Server root directory. The sfsutl.exe utility processes every file in the file
attachment directory and performs one of several operations to each file
depending on the file type and the parameters that you set. For descriptions of
the run-time parameters that you can set when running sfsutl.exe, see Table 1.
For descriptions of the file types and the associated operation that will be
performed by sfsutl.exe during processing, see Table 2. Run sfsutl.exe after
running siebenv.bat (for setting the Siebel environment variables) and use the
parameters listed in Table 1 as shown in the following example:
sfscleanup /u sadmin /p password /f \\server\files /x \\server\sfscleanup.log
Tabel 1.
sfsutl.exe Parameters
Parameter Value
Description
Required?
/u
Username
Username ID.
Y
/p
Password
Username password.
Y
/c
ODBC data
Set this value to the ODBC data
N
source
source. Default value is set to the
environment variable,
SIEBEL_DATA_SOURCE.
/d
/f
/x
/m
/n
(since
Siebel 7)
Siebel table
owner
Path for file
directory
Set this value to the Siebel table owner. N
Default value is set to the environment
variable, SIEBEL_TABLE_OWNER.
Set this value to the path for the file
attachment directory. Do not append att
to the file attachment directory path.
P ath for output
N
file
Set this value to the path for the output
Path for move
Set this value to the path for the
directory
Remove old
revisions
Y
file.
directory where discarded files will be
N
moved.
Determines if old versions of file
attachments will be removed. To remove
old versions, set this value to Y. Default
N
value is N.
/r
(since
Siebel 7)
/g
(since
Generate report
file only
Set this value to Y to generate only a
report file. If set to Y, the report file will
N
contain only the columns File Name and
File Type. Default value is N.
Garbage files
Siebel 7)
Set this value to remove garbage or
non-Siebel files. Default value is N.
N
If you specified an output file using the /x parameter, sfsutl.exe generates a log
file listing the operations that were performed. The output file is a tab-delimited
text file that contains the following columns:
 File Name
This column lists the name of each file that was processed.
 File Type
This column lists the type of each file that was processed. Table 2 lists the
possible file types and the associated operation that will be performed by
sfsutl.exe during processing.
Tabel 2. File Types and Associated Operation
File Type
Description
Operation
CURRENT The file has a corresponding record in the file attachment KEPT
database table.
NEW
The file is less than one hour old. Sfsutl.exe will not
KEPT
check for the file in the file attachment database table.
ORPHAN
The file does not have a corresponding record in the file
I NVALID
The file (or directory) is not a file attachment. If sfsutl.exe KEPT
attachment database table.
is attempting to delete a subdirectory that is not empty,
the operation will error out. This gives you an opportunity
to review the files contained within the directory before
DELETED
deletion.
ANCIENT
The file has an associated record in the database with a
different revision number.
KEPT
 Operation
This column lists the type of operation that was performed during processing.
Table 3 lists the types of operation that sfsutl.exe may have performed during
processing.
Tabel 3. Operations
Operation
Description
KEPT
The file was kept.
DELETED
The file was deleted.
MOVED
The file was moved to the directory specified by the /m
parameter. Files will only be moved if you used the /m
parameter.
KEPT_DIR
The item was kept because it was a directory and requires
manual processing.
KEPT_ERROR The file was kept because an error occurred while trying to
move or delete the file.
Note that the sfsutl.exe utility removes only a few files at a time, and needs to
be re-run several times in order to remove all orphaned files. This behavior is
being addressed in Product Defect 12-4OI6JS. (Please, refer to Service Request
38-276688359 on Siebel SupportWeb.)
1.3
Using the SFSMKDIR Utility
If the Siebel File System contains a large number of files, a decrease in
performance can be expected. NTFS supports volumes with large numbers of
files and folders, but Microsoft warns us to avoid putting a large number of files
into a folder if you use programs that create, delete, open, or close files quickly
or frequently. They suggest as solution to logically separate the files into folders
so that the workload can be distributed on multiple folders at a time. (See
http://www.microsoft.com/technet/treeview/default.asp?url=/TechNet/prodtechnol/winx
ppro/reskit/prkc_fil_punq.asp.) Microsoft Research and third-party experts were
contacted and they considered 20,000 files per subdirectory as good middle
ground (SupportWeb SR 38-258916951, "Sizing Siebfile Subdirectories".)
The SFSMKDIR utility allows you to create sub-directories in the Siebel File
System (SiebFS) in order that you can avoid the Windows limitations on the
maximium number of files in a given directory. The subdirectories which are
added will also increase the speed of access to files. If your file system
currently consists of a single directory, the SFSMKDIR utility will help you create
a set number of directories underneath this main file system root directory. For
example, if the current file system directory is d:/siebel/FS, running "sfsmkdir
d:/siebel/FS 10" will create 10 sub-directories: d:/siebel/FS/A, d:/siebel/FS/B...
d:/siebel/FS/J. The attachment files will be added across the subdirectories to
keep the sizes balanced.
There is no maximum size for each subdirectory that is set by Siebel - the
directories can grow as large as the operating system allows. The customer
currently does not have any control over which subdirectory is used for which
file. This is strictly controlled by the algorithm generated. The algorithm is stored
in a binary file called siebfile.cfg and is placed in the root directory of the Siebel
File System. This algorithm governs where files are stored and how they are
located, and is solely based on the file names and ROW_IDs contained in the
name. Statistically, each subdirectory will contain about the same number of
files, but there may be some fluctuations.
Having re-configured your file system in this way you can revert to using the
single root directory of the filesystem simply by re-running the sfsmkdir utility but
instead of specifying a number of sub-directories, you set the command
parameter to 0 instead, i.e., "sfsmkdir d:/siebel/FS 0", which will move all of the
files back to the root directory.
2
Procedure
I suggest to use a Siebel File System Cleanup procedure as follows:
2.1
Stop Siebel Server
Before starting the cleanup action it is wise to make the Siebel Application static
by stopping te Workflows and the Siebel Server. This way there is no contact
with the database, which could interfere the cleanup action. Furthermore, you
can note down the Row_ID of some existing Siebel Attachments as test
candidates for later testing.
2.2
Backup
You can consider making a backup of your Siebel File System by copying the
shared directory. A restore can be done by simply copying the shared directory
back. Because this backup step works the same way as the sfsutl.exe with the
Move parameter, it seems unnessessary to me if you trust the sfsutl.exe Utility.
2.3
Report
A report step can be considered, but seems to me unnessessary, because you
can make a report and a cleanup at the same time if you enable logging of the
cleanup. The report step is run as follows:
sfsutl /u sadmin /p password /c Srvr_ent /d siebel /f f:\siebfile
/x sfsutl_report.txt
2.4
Repeated Cleanup
Only the orphan files can be cleaned by moving them to another directory, for
example \siebfile_ discards. Thereby, the number of files decreases which could
increase System performance. In case of mistakes, a restore can be done by
putting back the missing Siebel File. The Cleanup is performed by the following
command:
sfsutl /u sadmin /p password /c Srvr_ ent /d siebel /f \siebfile
/m \siebfile_discards /x sfsutl_move_<move#>.txt
The Cleanup is repeated until the number of removed Siebel Files does not
increase anymore. This can be monitored in the logs by looking at the number
of files with Status "DISCARD" and/or by counting the removed Siebel Files in
their directory.
2.5
Dividing
This step is only needed when the number of files is so high, that it decreases
System performance. (For details, see 1.3 "Using the SFSMKDIR Utility".) When
performed, you can check if the SFSMKDIR Utility did create the file siebfile.cfg
in the root of the Siebel File System. I suggest to divide the Siebel File
Systems in as many subdirectories, that each subdirectory contain about 20,000
files.
2.6
Start Siebel Server
After checking the logs of the previous steps for errors, the Siebel Server and
the Workflows can be restarted. A test that the noted test candidates are still
accessible from the Siebel Server is highly recommended, even as is a test that
a new Siebel Attachment can be made correctly. The latter can be tested by
looking for a new file in the Siebel File System with the format
<TABLENAME>_<ROW_ID>_<REVISION#>.SAF, where the <ROW_ID> is equal
to the Row_ID of the record of the new Siebel Attachment in the Siebel Client.
Download