Origin of a Cluttered FRS
Business Objects XI has a way of making more sub-folders than files. Seriously, take a close look at your Input and Output File Repository Servers, or rather your FRS on the disk. You will notice a crazy number of folders. As objects get deleted in Business Objects XI their corresponding files are removed from the FRS; however, their sub-folder is not. Since there is nearly a 1 to 1 ratio of files to folders this lack of folder clean-up leads to a lot of empty folders and an inefficient FRS (and any resulting file system back-up).
Keeping Your FRS House in Order
Since you see the most efficient system, you want to clean up this folder mess. Well, BO has a tool for that and you already own it. You can invoke it merely by putting the command-line parameter “-prune” on the Input FRS and the Output FRS.
Making -prune Work for You
I recommend that before you start you shut down your BOXI system’s web front-end. This will keep users from receiving errors or possibly impacting the prune activity. Yes, this requires downtime to do it properly and only experience will tell you how long it takes (depends on how much mess needs to be cleaned and how fast your servers are). Now in CCM shutdown your FRS servers.
Do the next steps one at a time unless you are in a rush. Modify the command-line parameters by appending the parameter “-prune”, be sure to include a space between it and the final parameter that was present before you started. Also you can add “-trace” as a switch to capture a log of the actions.
Completing your FRS Prune
Now start the FRS that you just modified and you will observe that it maintains a “starting” status until it finishes. You can watch it through your servers task manager, top, or other corresponding process manager. You could also watch it through the log file it creates with the included “-trace” parameter. When it finishes, remove the parameters you added and proceed to the next one. If both have completed the prune then you are done and as long as you removed the parameters that you added you are ready to roll.
I suggest counting sub-folders and files before and after. This will help you understand the impact of what you just did. Please keep in mind that the “PRUNE” command does not clean-up any dead pointers (objects in the CMS that lost the files the point to). Prune only cuts the dead branches and it doesn’t touch a single leaf or leafy branch. Enjoy the analogy 🙂
More FRS Prune Resources
Over at “let’s learn business intelligence” they have a good video walk-through of a real, live FRS prune on a BOXI system. Check it out: http://www.letslearnbi.com/2009/05/business-objects-prune-and-trace.html.
Very useful information. Thanks for sharing it. I just have one query. So can I say, its a good practice to keep -prune switch when we deploy a new BO r2 Server? In that case whenever user deletes a report the subfolder will also get deleted. Is it the same for R3?
Hi Aravind, the FRS is not usuable while the -PRUNE parameter is in the command line so you cannot deploy it this way. You only use this parameter during a maintenance window where you can have downtime.
Really useful tip. Thanks for sharing it.
I don’t understand why BO (SAP) don’t include this kind of information in the Administration’s guide.
Thanks for the provided this article.
I have one query is there any command to identify number of empty folder or delete any particular empty folder.
There is no such command that I know of. Now, BO XI 3.1 has a tool called Repo Scan which fixes errors such as dead pointers and this one will run in 2 modes. The first mode tells you what it will fix and the other mode fixes it.
-prune command will work for me if o want to delete empty folders from Input/output directory ?
Yes Hrishikesh, that is its purpose.
I was find searching option to define number of empty folders we can delete by configuring -purne command . exmp. if i am having 200 empty folder delet 50 folders or delete top 20 empty folder, is there any such parameter available along with -purne command ?
Hi Hrishikesh, there is no such option. Honestly, please explain a valid reason for this requirement; I cannot think of any. Empty folders created by BO are useless and limiting their deletion seems to me to be a worthless action.
For examp. if we are using BOXI R2 for more than Year and if we have created and deleted instances for many time so it may have created empty folders in 1000 of number. To keep the installation path clean and healthy we can perfom this kind of activity
Hi Hrishikesh, that is a good argument for executing the “prune”, but I don’t see any justification for the deletion of a subset of the empty folders as you previously stated as a requirement.
For a Example.
A is Report instance which we get store in input as well as output folder
now it will create folders like a_001->001->00->a.wid
Now when we delete A report instance it will keep a_001->001->00 folders in this technical 00 is empty folder but in real all folders doesn’t carry any BO effecting Sys file.
Hi Hrishikesh, I completely understand the root cause of empty folders, but thanks for your example, others will find it helpful in understanding the origin of the requirement. My question to you was regarding something you said earlier, which obviously I misunderstood. My apologies. It seems that you and I are actually of the same understanding which is in summary:
BO will create sub-folders which it will never delete if they ever become empty. An administrator will need to run the “prune” command as regular housekeeping in order to keep the file system as efficient as possible.
Do you know how to use “-prune” when BO is deployed on a Unix/Linux system?
Hi Marek, since “-prune” is a command line utility I think that it works the same regardless of OS. You just need to adapt to the methods of using CCM on Linux. However, I have never run this on UNIX/Linux, so I am not entirely certain of this.
I have the same issue in the Input & Output folder too. For the quick fix, can I shutdown all the BOXI server and remove the subfolder under the Input and Output folder directly from the server?
Hi Michael, If you are asking if it is acceptable to manually remove empty sub-folders then I would answer, yes, if you do shutdown the FRS servers first (or everything to avoid users receiving errors). However, the folder structure under Business Objects XI’s FRS folders is VERY deep and intense. Manually cleaning these empty folders up would be a HUGE task and it might also be prone to human error. I would not recommend this. An alternate method to BO’s prune would be to use a tool like “rsync” which has an option to remove empty folders, but this would also require you to copy the entire FRS to another location and then reverse the copy with the “remove empty subfolders option” or a similar workflow.
I executed the -purne command in Ouput file repository service but it did not deleted empty folders. following steps i followed
1) stop the output file repository service
2) comfigured -purne and -trace command
3) restart the service
4) removed the command from configuration tab and restarted the service.
5) Also could you please let me know where this trace may have created ?
Does anyone know what these files that starts with ~ce*.* are? We have tons and tons of them in our file repository server? Should it be deleted?
Hi Doua, let me lay down a rule that I think all of us should follow. Never delete anything from the FRS folders directly except possibly an empty folder (a.k.a. prune). You wildcards limit your details, but I will assume you mean a file such as “~ce2be068360f2f34107b.wid”. If this is what you are talking about than this is a Web Intelligence document. All *.wid files are.
If ever you wanted to for example delete all *.pdf documents from your FRS then I highly suggest that unless there is an emergency that you do it through CMC, InfoView, or a custom developed SDK. This would delete the file and the metadata of that file stored in your CMS InfoStore.
Thanks for the clarification. Just wondering what those are.
Can anybody, let me know, what is the exact command for Prune and trace?
Could you please let me know if -prune command works for BOXI 3.1 , If so should i use it in command line of IFRS and OFRS in CMC.
-prune command will definitely work in XI3.1 as well but I suppose there’s an extra parameter called -fg which we need to add along with -prune in the command line of IFRS & OFRS.
I am not aware what this -fg does but I am not sure if this is mandatory or not. You can try using only -prune and check if the empty folders get deleted or not. I am quite sure it will work in 3.1 version.
If anyone involved in this thread knows about it then please share your knowledge.
I am having similar problem. I am using BOXI R2 verison . In my case Filestore folder is increasing in size. I used -prune command earlier but it did not work i can still find empty folders in the BO system path.
Can you please suggest how to use -prune command and to generate log file . Where will this log will get generated .
Could you please provide your suggestion ?
Any solution to trace back the actual location of the report from the path under the FRS?
Since I found some HUGE report in the FRS and want to know the actual location of the report so that I can inform user to check the report.
You may use the Query Builder to track the location of the report using its object id.
Query the CI_InfoObjects table specifying the object id of the report in the where condition. The object id of the report would be the parent folder name in IFRS where this report resides.
For e.g if the report resides in IFRS under a_120\756000\112…. then 7560 would be the object id
If you don’t know where your FRS root folders are located then look at the Input/Output servers in CMC. This will tell you the local drive or file share where the FRS root folders are located. This together with the info from Query Builder will point you to the exact folder where the report file is stored. Be prepared to be shocked by the number of sub-folders that you see. 🙂
I started a prune opeation from the command line on the output FS. It has been running 4 hours. (Not unexpected for a 150GB FS) Can it be interrupted with CNTL-C without doing any damage?
Hi Bill, sorry, this comment reply may be untimely for you now. However, yes, you can stop it. It should not harm anything. Prune is more innocent then a hard drive defrag and you can stop those as well. You will keep any progress made on the prune of course, that can’t be undone.
Julian, Thanks for your reply. It was as timely as needed. This is good to know.
Hi, In my current environment we have two Input FRS and two Output FRS. Can we do the prune activity in parallel on two Input FRS and two Output FRS at the same time. I have limited time to do this activity, so please advise.
Hi Basha, running multiple FRS in a single environment is truly an Active-Passive service, even if all of them appear active in CMC. The CMS sets only one of the FRS services as the active one and rest just wait until they are needed (if the primary becomes unreliable). I would suggest in a prune activity to just run one set, do the prune, and then start all back up again.
Hi Julian, Thank you very much for your suggestion. I understood the purpose of these two services now .
Hello Julian, thanks for this article. I have been running tests in our test environment and it seems like this can take an extremely long time to complete. I have 9,666 files and 35,774 Folders and after 2 hours running it is down to 9661 Files and 35,771 folders. To me it looks like it has a long way to go. Any tips on how to speed it up. Also, do you have any tips or suggestions on what we need to be doing on the sql db side as far as the repository? Thank you.
Hi ccgll01, yeah that seems like a very long time. I am not sure you can do much to speed it up. Perhaps someone else reading this might share any tip they know of.
With regards to “grooming” your CMS repository I recommend having the instance limit set to be as restrictive as possible, this will keep the number of objects down. Inbox documents are the worst though; no BO limits can touch this. The best you can do hear is to either develop some SDK app to remove “old” inbox docs or at least communicate with the users encouraging them to keep their BO inboxes clean and current.
I cant seem to get the -prune command to work with BIXI 4.0 will it also work with 4.0
Hi Carl, I haven’t tried it there. Has anyone else?
Yes the -prune still exists in BI4. I haven’t tried using it, but the switch does still exist for the FRS. Be sure to specify the root frs directory after -prune.
If you enable tracing on the FRS, you’ll see log lines similar to:
“PRUNE: removing: ”
“PRUNE: operation complete. total directories visited: X total directories removed: Y”
I am a bit lost on this -prune command. May anyone help with step by step screen shots. If possible how to run reposcan as well.