In recent days I have been skimming through some technical support documets as well as bookshelf regarding Siebel system monitoring and diagnosis. I realized this is one of the skill that would come in handy for system crash when you really don't have much time to do your research and troubleshoot. There are ofcourse some basic things you always do to start troubleshooting but I think to read the log files and identify the cause of the crash comes with experience.So here are some basic things that you can start with to troubleshoot the component or object manager crash.
change evtloglvl trace=4 for server server_name component SSEObjMgr_enu
change evtloglvl GenericLog=4 for server server_name component SSEObjMgr_enu
change evtloglvl TaskConfig=4 for server server_name component SSEObjMgr_enu
change evtloglvl SQL=4 for server server_name SSEObjMgr_enu
change evtloglvl SQLError=4 for server server_name SSEObjMgr_enu
change evtloglvl SQLParseAndExecute=4 for server server_name component SSEObjMgr_enu
I'm planning to post more basics on Siebel system diagnosis atleast for the next few days. I think this would help me diagnose the crash faster and better.
Sunday, March 14, 2010
Sunday, March 7, 2010
Explain Sql- Part II
In one of my previous post I mentioned about creating a plan table and how to insert the plan of sql execution statement to the table. Bud I really did not get time analyze the plan.
Couple of days back I noticed that one of the sql statements that I had to execute to retrieve data was taking more than 3 minutes. So I created a plan for the same and analyzed the sql. First thing I noticed from the plan was SQL was doing a FULL SCAN on table S_CALL_LST_CON which had millions of records and it was costing more. I was thinking of constraints that would reduce the cost based on the user key of S_CALL_LST_CON ..Hurray!! it did work .Now the time it took to retrieve data was less than a second. That's it for now..Later..
Couple of days back I noticed that one of the sql statements that I had to execute to retrieve data was taking more than 3 minutes. So I created a plan for the same and analyzed the sql. First thing I noticed from the plan was SQL was doing a FULL SCAN on table S_CALL_LST_CON which had millions of records and it was costing more. I was thinking of constraints that would reduce the cost based on the user key of S_CALL_LST_CON ..Hurray!! it did work .Now the time it took to retrieve data was less than a second. That's it for now..Later..
Wednesday, February 10, 2010
Invoke Outbound Webservice
Almost a year back I posted a simple outbound webservice to invoke a program in .net and get the sum of two numbers. To parse the response XML I created a custom business service and that did work as expected. But I read about Lookup method on EAI Dispatch Service recently and thought it'd parse the XML better. To try this I removed custom business service step and added a new EAI Dispatch Service step. It worked great and can update the field for response value with no scritping. Ain't that neat!! 
Here is the link for the workflow..
https://docs.google.com/leaf?id=0B190QnHiknnLYmVhZjVhZjgtMDU3YS00YzhiLWFiYmQtOGViYjQxNDcyODI0&hl=en
Later
Sunday, February 7, 2010
Explain plan basics
In recent times I've been writing sql queries frequently.Sometime adding a constrain or adding a join between the tables based on index would return the results much faster.But this is based on my knowledge in Siebel schema but was wondering how would a DBA analyze an executed sql stament to optmize performance. Then came across a powerful SQL command explain plan. I think going forward I'd use this command to optmize the sql..Here is what I did to start with Explain plan command
> Created a table for explain plan ( you can find the sql statement below $oracle_home\rdbms\admin\utlxplan)
create table PLAN_TABLE (
statement_id varchar2(30),
plan_id number,
timestamp date,
remarks varchar2(4000),
operation varchar2(30),
options varchar2(255),
object_node varchar2(128),
object_owner varchar2(30),
object_name varchar2(30),
object_alias varchar2(65),
object_instance numeric,
object_type varchar2(30),
optimizer varchar2(255),
search_columns number,
id numeric,
parent_id numeric,
depth numeric,
position numeric,
cost numeric,
cardinality numeric,
bytes numeric,
other_tag varchar2(255),
partition_start varchar2(255),
partition_stop varchar2(255),
partition_id numeric,
other long,
distribution varchar2(30),
cpu_cost numeric,
io_cost numeric,
temp_space numeric,
access_predicates varchar2(4000),
filter_predicates varchar2(4000),
projection varchar2(4000),
time numeric,
qblock_name varchar2(30),
other_xml clob
);
> Commit the above change
>Executed a simple sql statment on Siebel tables with explain plan command
explain plan for select * from siebel.s_org_ext accnt,
siebel.s_accnt_postn sap,siebel.s_postn postn
where sap.ou_ext_id = accnt.row_id
and sap.position_id = postn.row_id
> Next step is to see the result in the plan table and Oracle has a sample sql statment to view the plan_table @ $oracle_root\RDBMS\ADMIN\utlxpls
select plan_table_output from table(dbms_xplan.display('plan_table',null,'serial'));
Hurray I could see the results in the plan_table ..Now I just need to learn how to read the plan_table and optmize sql queries. To be Continued... :-)
> Created a table for explain plan ( you can find the sql statement below $oracle_home\rdbms\admin\utlxplan)
create table PLAN_TABLE (
statement_id varchar2(30),
plan_id number,
timestamp date,
remarks varchar2(4000),
operation varchar2(30),
options varchar2(255),
object_node varchar2(128),
object_owner varchar2(30),
object_name varchar2(30),
object_alias varchar2(65),
object_instance numeric,
object_type varchar2(30),
optimizer varchar2(255),
search_columns number,
id numeric,
parent_id numeric,
depth numeric,
position numeric,
cost numeric,
cardinality numeric,
bytes numeric,
other_tag varchar2(255),
partition_start varchar2(255),
partition_stop varchar2(255),
partition_id numeric,
other long,
distribution varchar2(30),
cpu_cost numeric,
io_cost numeric,
temp_space numeric,
access_predicates varchar2(4000),
filter_predicates varchar2(4000),
projection varchar2(4000),
time numeric,
qblock_name varchar2(30),
other_xml clob
);
> Commit the above change
>Executed a simple sql statment on Siebel tables with explain plan command
explain plan for select * from siebel.s_org_ext accnt,
siebel.s_accnt_postn sap,siebel.s_postn postn
where sap.ou_ext_id = accnt.row_id
and sap.position_id = postn.row_id
> Next step is to see the result in the plan table and Oracle has a sample sql statment to view the plan_table @ $oracle_root\RDBMS\ADMIN\utlxpls
select plan_table_output from table(dbms_xplan.display('plan_table',null,'serial'));
Hurray I could see the results in the plan_table ..Now I just need to learn how to read the plan_table and optmize sql queries. To be Continued... :-)
Sunday, January 24, 2010
Respository Export
I've always been wondering how complicated is it to do a repository migration. To experience that I decided to do a repository migration myself in my system. To start with the repository export was pretty straight forward. Here are the steps
Enviroment:Windows XP, Oracle 10g ,Siebel
> Created a batch file with the following set of commands
c:cd "C:\sba80\siebsrvr\BIN"repimexp -a e -c siebel -u sadmin -p sadmin -d siebel -f c:\Repository.dat -l c:\repexpimp.log
-a e repository export
-c Database instance
-u sadmin userid
-p sadmin password
Save the file as batch file and click on it.The process will start and export a repository file Repository.dat to C:\ drive .Now the repository needs to be imported to the destination instance and will post the steps for the same in the next blog. L8r
Enviroment:Windows XP, Oracle 10g ,Siebel
> Created a batch file with the following set of commands
c:cd "C:\sba80\siebsrvr\BIN"repimexp -a e -c siebel -u sadmin -p sadmin -d siebel -f c:\Repository.dat -l c:\repexpimp.log
-a e repository export
-c Database instance
-u sadmin userid
-p sadmin password
Save the file as batch file and click on it.The process will start and export a repository file Repository.dat to C:\ drive .Now the repository needs to be imported to the destination instance and will post the steps for the same in the next blog. L8r
Friday, January 22, 2010
Why Workflows ?
In the last couple of projects I have used more workflow than scripting.Probably scripting has all possible ways to customize siebel application but it's always not the best way to approach. Here are MY reasons why I would not prefer scripting as my first choice for customization.The points listed below are based on what I learnt from Good Siebel folks out there or from siebel knowledge base
> Scripting impacts performance.
Most of the scripting on Business components ,applets and Business service is to create new records or query for existing records to retireve data and all these can be done from the workflow as well. Workflow or workflow policy program would peform better for these..Invoking OOB Business service from workflow always perform better than invoking it from script.
> Deployment
Any change in server side scripting would require a srf deployment and this makes it hard whenever scripting is part of major release. Usually I have seen it take sometime to staibilize big customization or an upgrade. Since workflow is based on XML, it makes small changes deployment to other environment easy.
> Fusion future.
Saw that escripting will be obsolete in Siebel Fusion version and everything will be based on Java Programming. So if you are part of new implementation less scripting would make the client life much easier.
Cons of Workflow
There are few times that you would opt for scripting and here are few reasons to list atleast off the top of my head.
> Cannot retrive the calculated field value from workflow.
>Requirements that needs to create many to many associations. Siebel has the inbuilt PickRecord() method that would establish Many to Many relationship.Same is possible in wokflow as well by having a BC on intersection table and creating the aassociation. But this is not RECOMMENDED by Siebel.
>Some escript or string functions cannot be used on workflows
That's all for now.Rest in next.. Cannot wait to watch the game this week..My favorite is Colts now that Cowboys are out..Let's see.
> Scripting impacts performance.
Most of the scripting on Business components ,applets and Business service is to create new records or query for existing records to retireve data and all these can be done from the workflow as well. Workflow or workflow policy program would peform better for these..Invoking OOB Business service from workflow always perform better than invoking it from script.
> Deployment
Any change in server side scripting would require a srf deployment and this makes it hard whenever scripting is part of major release. Usually I have seen it take sometime to staibilize big customization or an upgrade. Since workflow is based on XML, it makes small changes deployment to other environment easy.
> Fusion future.
Saw that escripting will be obsolete in Siebel Fusion version and everything will be based on Java Programming. So if you are part of new implementation less scripting would make the client life much easier.
Cons of Workflow
There are few times that you would opt for scripting and here are few reasons to list atleast off the top of my head.
> Cannot retrive the calculated field value from workflow.
>Requirements that needs to create many to many associations. Siebel has the inbuilt PickRecord() method that would establish Many to Many relationship.Same is possible in wokflow as well by having a BC on intersection table and creating the aassociation. But this is not RECOMMENDED by Siebel.
>Some escript or string functions cannot be used on workflows
That's all for now.Rest in next.. Cannot wait to watch the game this week..My favorite is Colts now that Cowboys are out..Let's see.
Friday, January 1, 2010
Siebel Essentials - 4
Wow! we are into year 2010 and was good to see that I have 14 posts in the last year. One of my resolutions for this year is to post more regularly . Let me list the resolutions for this year.
-Blog more regularly
-Less TV more books.Ok I hesitated before writing this but would be a hard one.
-Learn swimming
Ok that's a pretty short list , let me see if I keep up to my few resolutions. Getting back to basics in Siebel
There was a requirement to display My Teams view on home page. When queried on supportweb it was listed as Product enhancements. Spent sometime to see if I can find a workaround in tools.There is a visibility over ride property for applets on View Web Template Items. Changed this to Manager and that seems to work . When Sales rep logs in they see My View but when a Manager logs in they see My Team's view on the homepage. So far so good but if it did break some thing will update here for the same. L8r
-Blog more regularly
-Less TV more books.Ok I hesitated before writing this but would be a hard one.
-Learn swimming
Ok that's a pretty short list , let me see if I keep up to my few resolutions. Getting back to basics in Siebel
There was a requirement to display My Teams view on home page. When queried on supportweb it was listed as Product enhancements. Spent sometime to see if I can find a workaround in tools.There is a visibility over ride property for applets on View Web Template Items. Changed this to Manager and that seems to work . When Sales rep logs in they see My View but when a Manager logs in they see My Team's view on the homepage. So far so good but if it did break some thing will update here for the same. L8r
Subscribe to:
Posts (Atom)