Siebel Open Variable Analyzer

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

  1. Analyzes eScript variables that has been opened but not closed (“null” are not assigned to variable) in the script
  2. Searches for objects that has been opened using the following functions such as GetAssocBusComp, GetPicklistBusComp, this.BusObject, ActiveBusObject, GetBusObject, GetService, NewPropertySet but not nullified
  3. Skipped eScript comments in code
  4. 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

  1. 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)
  2. 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
    SIEBDB =
    (DESCRIPTION =
    (ADDRESS_LIST =
    (ADDRESS = (PROTOCOL = TCP)(HOST = siebelqa.server.name)(PORT = 1525))
    )
    (CONNECT_DATA =
    (SERVICE_NAME = QADB)
    )
    )
  3. 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 off
    set ORACLE_HOME=C:\SiebelOVAnalyzer\oraclnt
    set TNS_ADMIN=C:\SiebelOVAnalyzer
    set LOGIN=siebel/password@SIEBDB
    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
    C:\SiebelOVAnalyzer\perl\perl.exe C:\SiebelOVAnalyzer\parselst.pl
  4. Create a folder called tmp inside the SiebelOVAnalyzer folder
  5. Finally edit parselst.pl and change the following line to reflect the path where you extracted the files
  6. 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.

image image

And the out.csv shows following details

image

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)

Download Siebel OVA Utility

Please provide your comments and your experience of using this utility.

27 Responses to Siebel Open Variable Analyzer

  1. Hi Neel,

    Thankyou for posting the content. I ran the batch file as per instructions you mentioned but i can see any data in out.csv file and also in .lst i see all the script dumped. Can you please let me know what could be reason for that

    Thanks
    Kumar

  2. Worked well for me. Thanks for sharing. One thing which can be changed in the sql queries is to search for only those objects (BusComp,Applet,Application,Business Service) which are active in the Siebel Repository. In my case the results conatined variables from the scripts which were present in inactive objects.

  3. I’m running Siebel with SQL Server. I can export my SQL results to a .lst file (‘;’ separated). But my out.csv remains empty. Any sample .lst, so I can compare mine? Maybe a syntx issue in the .lst files.

    • I don’t think it is the syntax… it might be the path in pl that might be causing it.

      If the script is not able to find any files on the path specified it creates blank out.csv file… Double check that …

      • I checked that. I actually put some print statements, within the foreach loops, in the pl script. It does print  a lot of lines while going through the script lst files.

  4. Thanks for the post! I would also like to try the utility, but it is not available for download 🙁
    Is there an alternative download link?

Leave a Reply

Contribute