Wednesday, March 18, 2015

Siebel: How to Analyze FDR output in Siebel

FDR or Flight Data Recorder is a Siebel server framework which collects the data about the siebel application in a buffer and flusher the data into a binary file with .fdr extension in the event of a crash. The file is located in the /bin directory. This binary .fdr file can be processed into a readable csv file to help us analyze and understand the exact prior steps before the crash has happened.

Identifying the correct FDR file when a crash occurs

We can use the information in the file name of the .fdr file to identify the correct file.
The file name has the timestamp and the process id that crashed in the below format:

T<YYYYMMDDHHMM>_P<process id value>.fdr





for example:

T201503130749_P017144.fdr 

Is a file name that is based on a component that was started on March 13, 2015 at 7:49 AM where the process id value was 17144.

If we know the process id that has crashed, we can find the file by it or else we can look at the files at with the timestamp.
If we have the crash_***.txt , we can convert the hexa decimal process id found in the file to a decimal value and then find the correct fdr file.


Process Binary .fdr file to .csv file

  • In UNIX environment, run the environment variables before running the sarmanalyzer.  run the below command from the $SIEBEL_ROOT/siebsrvr directory:
    • . ./siebenv.sh
  • Run the sarmanalyzer by issuing the below command:
                           sarmanalyzer -o <output_csv_file> -x -f <fdr_file>
                             For example:
                               sarmanalyzer -o T201503130749_P017144.csv -x -f T201503130749_P017144.fdr
           The output .csv file will be written to the SIEBSRVR_ROOT\bin directory.


          Analyze output of fdr file

          1. Open the csv file using microsoft excel and add custom filters to the top column as below
          2. Filter the SubAreaDesc column by the value ** CRASHING THREAD **.
          3. Note down the value in the "ThreadID" column. in this case it is 163. This is the crashing process Id.
          4. Now, remove the filter for the "SubAreaDesc" column and filter the "ThreadID" column with the earlier noted down Process Id (pid) which is 163 in this case like below
          5. Now navigate to the end of the document to reach the crashing thread and then we can see the steps that got executed just before the process crashed. you can get more details from SubAreaDesc, UserInt1, UserInt2, UserStr1, UserStr2 columns
          6. The fdr output file created by sarmanalyzer.exe is not sorted in chronological order fro performance reasons. we can sort the csv file on the "FdrID" column to sort in reverse chronological order.

          123Siebel

          Search 123Siebel