Showing posts with label CFG Parameters. Show all posts
Showing posts with label CFG Parameters. Show all posts

Thursday, May 19, 2011

Query performance issue : Dedicated Client Vs Thin Client

Very strange behaviour I observed today while working on a performance issue where whenever user do a query in Purchase Order Pick applet, query was taking more than 1 minute to execute in thin client but the same query behaves perfectly fine in dedicated client.

So while working on any performance issue, you always want to see the performance on dedicated client as well, so I did the same.

1. Took the same SRF running in thin client, and connect it to the Dedicated client.
2. Followed the same steps: open the pick applet and queried the Purchase Order#

To my surprise, on dedicated client the PO# query took only 6 seconds which is quite acceptable performance. So, this is the issue I faced first time when the query is running slow in thin client but not in dedicated. Now, lets try to find out what exactly is going on behind the scene.

I referred the spool file and took out the culprit query. Execution time mentioned in the query was same around 6 seconds. I ran the
"Alter Sessions" commands as mentioned in my earlier post and ran the query. It again took only 6 seconds.


***** SQL Statement Execute Time: 6.014 seconds *****


hmmm..... now it looks like everything seems working fine from configuration perspective but why is there a difference in the query execution when run in Dedicated client Vs Thin client???

I was looking into the issue more and found that when I did a query in PO# field with value "1234" and it returned multiple records with PO# like: 1234, 12345, 1234a etc. So, it is quite clear that
"AutomaticTrailingWildCards" parameter in the CFG was not set to False. But, anyways the query should perform similar in both the dedicated and thin client, no matter this parameter is set to False or not. Though, this thought is quite logical but even then I wanted to give a try by disabling it. So, I thought of disabling it only on the "PO#" field on the pick applet, so that whenever user do a query on PO# field, system should not put the "like" keyword in the SQL generated at the backend.

I put the following User Property on the business component:


Name : Disable Automatic Trailing Wildcard Field List
Value : Purchase Order Number
I compiled the SRF, tested it in dedicated client, it worked fine. Now it is the time to test it in thin client as well. At this moment I was not sure how it would behave. I put the same SRF on thin client and performed the same steps for querying the Purchase Order#, I got the result in around 6 seconds. A big smile and relief too, but again I don't have the correct explanation yet for this problem why is it happening, but this user property came as the life saver :)

If you ever faced this kind of performance issue and know the exact reason please comment.

Thursday, February 4, 2010

Siebel Landing Page !!

Any Siebel application, which you might have worked on OR currently working on, come with its own landing page. This is something where user will land once logs into the application, in other words the Home Page of the application. This is completely OOB and already configured in Siebel Tools. I just did a query in Siebel tools and found there are around 56 applications which comes with their own landing page, big number isn't it? But the best part is Siebel allows you to change this and as per your business requirement you can configure the name of the landing page (Home Page) at the application level and system will automatically launches that page once you logged in.

Do you want to configure it? It is very easy, here below are the steps:

1. Open .cfg file and query for the parameter : "ApplicationName".
2. Take the value of this parameter and query in Siebel Tools -> Object Explorer -> Application.
3. Scroll right to see the value for "Acknowledgement Web View" property.
4. This is the view which get launched once you open the application. Just change it as per your need, compile the SRF and see the difference.

But the above change holds good if all the users of your application require to have the same landing page, what if out of all 10 users says, "I don't like the Home Page screen to start with, and since my work always starts with My Service Request view, why should I always do two extra clicks to first reach to Service Request screen and then to My Service Request view. I want to get rid of these two extra clicks". Hmmm, sometimes users provide a genuine reason before asking you to build something and then you find tough time to say No to the user. Well, not to worry, Siebel has the solution for this as well.

No matter if every user want to have his different landing page of his own choice, OOB solution is available for it.

1. Just navigate to "Siebel Client Application -> Tools Menu -> User Preferences -> Behaviour view".
2. Select the View, as per the your need. And the best part is, it displays the user-friendly name in the format : <_screenname> - <_viewname> which makes it very easy for the user to select.


3. Click on Save and you are done. Just re-launch the application again.

Please note here this need to happen for each user separately from the UI only and all these preferences get stored in the .spf file that gets created, in Client/Bin folder on the Siebel Server, separately for each user. And the naming convention for the .spf file is : <_loginname>&<_applicationname>.spf.

.

Monday, January 25, 2010

Issue navigating to Admin Server Management view??

I do like working on dedicated client most of the time, as it helps me getting the SQL spool and the log file, for the dedicated session I am using, very easily in the local drive.

Something strange I observed today when I got the User Id / Password error for the Siebel session while I was trying navigating to "Administration - Server Management" view.

So, here is the sequence of things I observed:

1. I tried navigating to Administration - Server Management View.

2. Recieved an error saying :

3. I clicked on Ok, and found that system is asking for the User Name and Password for connecting to the Gateway.

4. Thought of putting my login name/password, but didn't work.

5. And Siebel client was giving error saying :

An error has occurred creating business component 'Server Component' used by business object 'Server Admin'. Please ask your systems administrator to check your application configuration.(SBL-DAT-00222)

These were the complete set of events happened in my dedicated session and I was not able to navigate to Server Management views. I even tried navigating to the Server Configuration screen but that also didn't work.

Since system was trying accessing the gateway information and it received an error, there is something messed up with the dedicated client cfg file due to which I am not able to qualify for the gateway server information access. To confirm whether CFG is having the correct values or not, just open the CFG and look for : "[GatewayDataSrc]" section. Here below are the parameters for which we need to confirm the values :

[GatewayDataSrc]
ConnectString = <_siebelserver>:<_port>
PrimaryEnterprise = <_enterprise>
DLL = libsscda10.so

Now the question is, from where we need to confirm these values?

To give you the information, "siebns.dat" is the file located at "/siebel/gatewaysrvr/sys" directory which keep all the informatiom regarding the Gateway Server, Siebel Servers, Enterprise Server, Components running on each server with all the parameter details etc.

So, just get this file from the mentioned location and search for the below mentioned strings to check out the value for each parameter:

1. ConnectString :

a) In siebns.dat file search for "GatewayDataSrc/parameters/DSConnectString".

b) Under this section, look for the parameter : "Value" and this is the value for the "ConnectString" parameter in client cfg. (Please note this is the format : <_siebsrvrname>:<_port>)

2. PrimaryEnterprise :

a) In siebns.dat file search for string "GatewayDataSrc/parameters/DSPrimaryEnterprise".

b) Under this section, look for the parameter : "Value" and this is the value for the
"PrimaryEnterprise" parameter in client cfg.

3. DLL :

a) In siebns.dat file search for string "GatewayDataSrc/parameters/DSDLLName".

b) Under this section, look for the parameter : "Value" and this is the value for the "DLL" parameter in client cfg.



After setting all the correct values in the Client's cfg file, just restarted the dedicated session again, it worked fine. Today I know the importance of siebns.dat file, really very useful.

.

Wednesday, January 20, 2010

Creating Server Request from Dedicated Client !!

I was trying simulating a Business Service from Siebel Client thru "Administration - Business Service -> Simulator" view, and this is very basic thing that we do in our daily Siebel life ;)

But this is what I got, a pop message saying:

No server connect string for Siebel Component SRBroker in Siebel Enterprise <_enterprisename>, Siebel Server <_siebelservername>


hmm, this is something new I ever came across and it seems that my business service was trying to create a Request on Siebel Server (because error specifically mentioned for SR Broker) and due to the incorrect Connect String, system is not able to create a Server Request.

I researched for this issue and found something interesting that is worth sharing with you people here.

You will see this error when :

a) You are trying to create a Server Request, no matter it is Synchronous or Asynchronous, from dedicated client.
AND
b) RequestServerName is not correctly mentioned in the Client's cfg file.


SR Broker is the component which is responsible to interact with the various components running on the Siebel Server to assign the respective tasks. So we need to specify the Server Name (Logical) where SR Broker component is running.

So, here is what you need to do :

1. Find out the Logical name of Siebel Server.
a) Navigate to "Administration - Server Management -> Enterprises". And in the second applet check for the Server Name under which "Server Request Broker" component is running.
b) Copy the Siebel Server name.


2. Update the Server Name in Client cfg file.
a) Open Siebel.cfg file or whichever you are using.
b) Search for section : "[InfraObjMgr]"
c) Change the parameter : "RequestServerName" to the value for Siebel Server Name that we copied in Step 1.b above.

3. Save the Client cfg file and restart the Siebel dedicated client and it should work fine.


Hope it helps.



.




Thursday, August 27, 2009

Error while running blank query on an applet !!

Today while working on one of the issue in UAT env, when I navigated to Assets screen to see list of all assets, ran a blank query, I got the following error :

There were more rows than could be returned. Please refine your query to bring back fewer rows(SBL-DAT-00500).

In the very first sight, it seems query is bringing a large number of records which Siebel can't handle. hmmm... okayy, lets try running a query which will bring less records so I put a query on "Type" field on the applet and ran the query and it worked fine. That means there is some limitation in Siebel while fetching the records and if the number of records goes beyond that limit it gives up. So, one might ask what is that upper limit??

Upper limit for number of records that Siebel can pull from a single query is equal to the value set for "MaxCursorSize" parameter available in your siebel.cfg file. Here below can be the values :

a) 0 : If this parameter set to 0 (zero), that means Siebel can fetch 10,000 records in a single query. This is the recommended value.

b) -1 : it indicates infinite number of records, results in low performance and not recommended by Siebel.

c) >0 : any number greater than 0 will fetch that many records in one query.

So, what happens is if you run a query on UI and you try to scroll the records and crosses the limit what has been set by "MaxCursorSize" parameter, you will get the above mentioned error. Moreover, the parameter is applied for each and every query that Siebel runs with the exception that it might override by "Maximum Cursor Override" property at the business component level.

I checked for the value of "MaxCursorSize" parameter in CFG and it was set to 0. Just to cross verify I also ran a query in the database and confirmed that number of records in S_ASSET records were more than 10,000 records. But, wait a minute, I didn't even scroll once on the Asset Screen and I just tried to navigate on the default view of the screen and still I received this error. This is something else is going on here, isn't it?

One more thing to notice here is that I realized that even I have more than 10,000 Accounts records in the application, but there is no issue when I navigate to All Accounts view. That means something special does exist with Asset business component which is causing this issue. And here below is the reason for it :

"Hierarchy Parent Field" property of business component was set to "Parent Asset Id" and due to this while running a blank query on the Assets UI, resulted in putting a "/*+ ALL_ROWS */" hint in the SQL that Siebel runs in the background. This is the difference I observed when I just removed the "Hierachy Parent Field" and compiled the SRF again and blank query worked fine this time. No issues. But this doesn't mean that this is the solution for the issue, you can't just remove this property to avoid this error because it get reflect in all the applet based on this business component. So here is the solution for this :

Use "Disable Buscomp Hierarchy", a user property available on the applet and set its value to True. Since it is applet based user property, only applies to the applet on which it is used.

Disable Buscomp Hierarchy = True

What it does is : it will just ignore the effect of "Hierarchy Parent Field" on the business component and run the query without "/*+ ALL_ROWS */" hint in the background to bring the records as per the normal process.

I put this user property on the All Assets List Applet and ran a blank query again, everything worked fine.

Hope it helps !!
.

Thursday, July 9, 2009

"Page Cannot be displayed" in Siebel Tools ??

We generally see this error message in Internet Explorer when somehow IE is not able to connect to the URL that user is trying to access. But today when I just see this message in Siebel Tools, it was really a surprise for me as this is something new I am seeing for the first time.

Let me tell you what exactly I was trying to do : I just wanted to place a new Control on "Contact Form Applet". So queried for "Contact Form Applet" and right clicked and select "Edit Web Layout". What generally we see is the new window being opened in the right side with form layout of the applet where all the controls is displayed and we can change their position or add new. But this was not the case with me and I can see "Page Cannot be displayed" message in that window.

Amol Tandon (one of my colleague) found the reason for it. This happens when "WebClientSiteDir" parameter in Tool's CFG is not pointing to the correct path. You can see this parameter in Tool's CFG :

WebClientSiteDir = C:\Siebel\8.1\Tools_1\public\enu

The reason I was getting this error, I got the Siebel installed in "D Drive" and used the old Tools cfg and forget to change the C: to D: everywhere in the CFG.

So just change the parameter and everything worked fine.

WebClientSiteDir = D:\Siebel\8.1\Tools_1\public\enu

.

Saturday, May 2, 2009

Siebel CFG Parameter : AutoStopDB

Everytime I close the Siebel Tools, I wonder that the Siebel Anywhere database engine (dbeng.exe) keep running in the Task Manager and sometimes it happens that it keeps consuming lot much of system memory, so I use to go to Task Manager and kill the process.

But again the question is, when I don't want to keep the Siebel Tools running anymore, why Database Engine keeps running?

So, here is the answer :
Siebel provides a CFG parameter (both in Client's and Tools's CFG file) under [Local] / [Sample] Section, name is "AutoStopDB" with the default value as "FALSE".
The "False" value of the parameter signifies that the Siebel Anywhere DB engine keeps running if you close the Client / Tools instance. As per the recommendation it should be "FALSE", in case you mostly connect to the same Database via Client and Tools, so that next you open the new instance of Client or Tools, system should not take time to connect to the database again.

So, depending upon the requirement, you can make it TRUE or FALSE. I change it to TRUE, coz I always use to connect to Local DB via Siebel Tools and to Server via Client.

Saturday, February 7, 2009

EnableObjectCOCI : Siebel Tools CFG Parameter

One of my colleague wants to check out an Siebel Object in tools but he was not getting the "Check Out Object" option when do a right-click on that particular object. While he was able to check-out any Project successfully via "Menu -> Tools -> Check Out". But the same thing was not happening with my Siebel Tools, I was able to do the both cases : a) able to check-out a separate object and b) able to check-out a complete project as well.

While working in Development team, a developer not always check out a complete project, if requires only a single object. Checking-out a specific/required object is the right approach to work in a Development team, so that multiple developers can check-out the various objects from a single project as well.

Now the question was why the "Check Out Object" option was not coming when right clicked on any of the Object in Siebel Tools?

And here is the resolution for this kind of behaviour :

Actually what happens is, we have a CFG parameter in Siebel Tool's CFG file with name : "EnableObjectCOCI" which should be TRUE if developer is allowed to Check-out an object in Siebel Tools. otherwise this option will not appear at all.

So, we added this parameter with TRUE value under [Siebel] section of Tool's CFG file and restart the Siebel Tools and "Check Out Object" option start visible now when right clicked on any Object (Provided "Enable Object Locking" flag was checked for that particular project).


Update:

Following registry also needs to be updated to get this resolved.

For 64 Bit -
[HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\ODBC\ODBC.INI\ORACLE_CONNECTION_NAME]
For 32 Bit -
[HKEY_LOCAL_MACHINE\SOFTWARE\ODBC\ODBC.INI\ORACLE_CONNECTION_NAME]
  • PacketSize = 0
  • EnableScrollableCursors = 0
  • ColumnsAsChar = 1
  • ColumnSizeAsCharacter = 1

.

Wednesday, January 28, 2009

Automatic Trailing WildCards : A CFG Parameter

If you do a Query in any View of Siebel application and you observe some performance issue in getting the query result set, then "AutomaticTrailingWildCards" parameter is one of the culprit, which is available in Siebel.CFG under [SWE] section.

What it does
Lets say you want to query on "Name" field of Opportunity List Applet with value "siebelmantra", then system will fetch Opportunities with name like siebelmantra, siebelmantra1, siebelmantra Oppty, etc etc. That means it automatically suffix a "*" (asterick wild card character) after the string being queried. To confirm this, press "Alt + r" (Refine Query), you will see "siebelmantra*" was being queried in Name field, though you never mentioned "*" while querying. This is the effect due to the TRUE value of "AutomaticTrailingWildCards" parameter.

Recommendation
Open Siebel.cfg file and search for "AutomaticTrailingWildCards" parameter under [SWE] section and set its value to "FALSE". Restart the Siebel Servers and observe the difference by again querying on the UI.