In the last post we discussed about causes and possible remedies of Memory leaks in Siebel and I gave an overview of the utility that Timur Vafin has created with a combination of SQL queries and perl script to actually go through the scripts and find out variables and object that have not been destroyed. In this post I intend to give details about the utility and how to make it work.
Siebel OVA Utility:
Siebel OVA utility performs following function
- Analyzes eScript variables that has been opened but not closed (“null” are not assigned to variable) in the script
- Searches for objects that has been opened using the following functions such as GetAssocBusComp, GetPicklistBusComp, this.BusObject, ActiveBusObject, GetBusObject, GetService, NewPropertySet but not nullified
- Skipped eScript comments in code
- Takes under consideration multiple variables assignments like : var1 = var2 = var3 = <Something>
How to get it working?
I was not able to make it work out of the box due to problem with paths specified in Perl Script and the batch file. The Path in these files follow Unix Path convention and I had to change it to windows path. Here are the steps to make this utility work
- Download the RAR file and extract it in C Drive (you can extract it anywhere but extracting in root folder makes path simpler in scripts)
- Edit tnsnames.ora file in the folder and add the connection details. You can add any Siebel DB details it will extract the scripts from the DB provided in tnsnames.ora. Your tnsnames should look something like this
(ADDRESS = (PROTOCOL = TCP)(HOST = siebelqa.server.name)(PORT = 1525))
(SERVICE_NAME = QADB)
- Edit run.bat file and change the path to the where you extracted the files. Below is how your run.bat will look like assuming you extracted the files in c:\SiebelOVAAnalyer directory
echo Downloading eScripts from Oracle Database…
echo C:\SiebelOVAnalyzer\oraclnt\sqlplus.exe -s %LOGIN% C:\SiebelOVAnalyzer\getlst.sql
echo Analysing eScripts for open variables…
echo set TERM=dumb
- Create a folder called tmp inside the SiebelOVAnalyzer folder
- Finally edit parselst.pl and change the following line to reflect the path where you extracted the files
- my $dir = “.\\tmp”; —> Change to —–> my $dir = “C:\\SiebelOVAnalyzer\\tmp”;
Now Run the batch file and if everything runs successfully then you should start seeing a set of .lst files in your tmp folder and a out.csv file your root folder.
And the out.csv shows following details
Now,you can start cleaning up your repository. I tested it myself and findings were pretty accurate. It took around 5 mins for this utility to download all the scripts in Siebel repository and create a output CSV file. There were some false positives but those were few and far. I hope you find this really helpful. Thanks to Timur for sharing such a useful tool with us.
You can download it from the link below and the password to extract files is “siebelunleashed.com” (without quotes)
Please provide your comments and your experience of using this utility.