Thursday, February 28, 2013

FDR to CSV in 5 simple steps

Well, I have dealing alot with SIG crashes recently. And as we all know as part of investigating these, you need FDR(Flight Data Recorder) file as well. This file gets generated in the bin directory of siebel server for every hard crash.
Problem with FDR is that it is not in readable format and you need to convert it in csv first.

You can find a way to do that on many sites as below :

sarmanalyzer -o <output.csv> -x -f <fdr file>

But, with my own experience, most of you will end up with the below error :

sarmanalyzer: not found

So I am putting down all the steps which are required to perform sequentially to convert a fdr to csv : 
1) Go to bin directory of siebel server
2) cd ..
3) . ./siebenv.sh
4) cd bin
5) sarmanalyzer -o <output.csv> -x -f <fdr file>

Also make sure that the user with which you have logged in unix box have the credentials to create a file in bin directory. If the permission is not there, then give an absolute path for csv file where the user have the permission to create the file.

For detailed information, you can go through Oracle Metalink Id : 473939.1

Hope these steps will save your time and end up debugging the issue for SIG crashes successfully. Happy Exploring !!!



Thursday, February 14, 2013

Invalid operation when not executed

Okay, this title may seem odd. But in case you are in Siebel related project fortunately/unfortunately you might have encountered this error.
One of the cases, when i have encountered this error is when I have called a subprocess from a workflow which is having a Begin Transaction step before this sub-process and its corresponding End Transaction is in that subprocess.
I got this error when i have increased the monitoring level of these workflows and due to some exception the subprocess errored out. Sounds interesting, dosn't it.
Reason you can think from this example is since the Begin and End Transaction are complementary process they need to be performed collectively, and hence the error :

Invalid operation when not executed.(SBL-DAT-00471)

Which now might seem pretty much logical.

Recently, We have came across another issue through which we have observed this error : 
In a BS script, for defensive coding we wanted to get the field value of a current record only in case the present context was having a record.
So for this we initially put the GetFieldValue in a if block having condition as :

if(this.CountRecords()!=0)
{
}

With this, we were getting the mentioned error in the back end i.e.

Invalid operation when not executed.(SBL-DAT-00471)

So after some time of investigation on this issue. We came to know that CountRecords return an integer indicating the number of records returned by the last ExecuteQuery() call.
So in case there is no ExecuteQuery() performed in the context, you will get this error.

Workaround we put is to use FirstRecord(), and it worked like a charm. :)

Hope this post will be helpful. Keep exploring !!!

Sunday, February 3, 2013

Use EnableConfigCxProd only till Siebel 7.7

Issue : While migrating to Siebel 8.1, we were having issues whenever the process involved Order Creation. The processing of Orders were stuck and they are not getting completed successfully.
This behavior was only in case on components where UI context is not supported. For example Workflow Process Manager(WfProcMgr) and Workflow Process Batch Manager(WfProcBatchMgr)
Pre Siebel 7.8, the recommended way of doing to create line item is to use vanilla method 'EnableConfigCxProd' mentioned in Siebel Technote 433
Also as mentioned in one of the siebel forums here :

Reason : On going through oracle web support, we have found that the method "EnableConfigCxProd" relies on some UI functionality, which does not exist in the background process. This is the reason why it crashes in this context.

Workaround : The ideal way is to use LoadInstance, CreateSession, SyncInstance & UnloadInstance. This is the right and supported approach for Siebel version greater than Siebel 7.7

Please drop a comment in case of any further clarification is required. Will happy to help :) Happy exploring !!!