You are here

Siebel Admin

Siebel Database Sizing Guidelines

One of the most important factors to determine about the database is its overall size. In the planning, users will need to allocate space for system storage, rollback segments/containers, temporary storage space, log files, and other system files required by the RDBMS, as well as space for Siebel data and indexes. If users allocate too little space for the system, performance will be affected and, in extreme cases, the system itself may be halted. If users allocate too much, they waste space.

The space needed by the database will vary primarily based on the total number and types of users supported. Siebel Systems recommends that users consult the RDBMS technical documentation for more information on these requirements.
The space required for Siebel data and indexes will vary depending on what Siebel functionality users will implement and the amount and nature of data supporting it.

The process for making accurate database size calculations is a complex one involving many variables. The following guidelines will assist users in the process:

Determine the total number, and types, of users of Siebel eBusiness applications (for example, 500 sales representatives and 75 sales managers).

Determine the Siebel functionality that users will implement and the entities required to support them. Typically, the largest entities are as follows:
o Accounts
o Activities
o Contacts
o Forecasts
o Opportunities
o Service Requests

Estimate the average number of entities per user (for example, 100 accounts per sales representative) and calculate an estimated total number of records per entity for the total user base.

Using standard sizing procedures for the specific database, and the Siebel Data Model Reference, calculate the average record size per entity and multiply by the total number of records. Typically, these entities span multiple physical tables, all of which must be included in the row size calculation. This will determine the estimated data sizes for the largest entities.

Users must add additional space for the storage of other Siebel data. A rough guideline for this additional amount would be one-half the storage required for these key entities.

Indexes typically require approximately the same amount of space as data.

Be sure to allow for a margin of error in the total size calculation.

Be sure to factor growth rates into the total size calculation.

Determining the Siebel User id using the Oracle process id to find who is running the longrunning SQLs

This document will explain a procedure that may be used to associate a specific Oracle database session from the V$SESSION table with a specific Siebel user session. This is typically done to troubleshoot specific issues (for example a database process that is using unusually high resources) or to support levels of user auditing not currently available through the Siebel user interface.

The need for this kind of procedure is especially important if using LDAP or Active Directory (ADSI) authentication with shared database credentials. When implementing the LDAPSecAdpt or ADSISecAdpt it is common to used a single shared database account for all Siebel users. This greatly reduces the amount of administrative overhead since you do not have to maintain accounts in the Siebel application, the external directory, and the database server.

The problem with using shared database credentials, however, is that all Siebel user sessions appear as the same user at the database level. This makes it difficult — if not impossible — to match a specific database session with a specific Siebel user session.

Although less of an issue when database authentication is being used with the DBSecAdpt, there are some instances when this procedure might still be helpful. In particular, situations where the same user has logged in multiple times or where a shared userID is being utilized by an outside system through Siebel Enterprise Application Integration (EAI).

Scope
This reference document is intended for system administrators and database administrators working with the Siebel application and Siebel OLTP database. Individuals attempting to utilize this procedure must have adequate rights on both the Oracle database server and the Siebel application. Furthermore, basic Oracle SQL knowledge is required.

Determining which Oracle database session is being used by a specific Siebel user session
IMPORTANT — Please note that the following procedure is only applicable to Siebel implementations using an Oracle database server for their Siebel OLTP database. Furthermore, the Siebel Application Server(s) must be running on Microsoft Windows due to limitations on how the Oracle database client writes information to the V$SESSION table from non-Windows servers. Note that this restriction applies to the Siebel Application Server(s) and not to the Oracle database server which can be on any supported operating system.
In order to associate the Oracle database session with the Siebel user session, you need to use the a combination of SQL*Plus, the session server management screen, and the application object manager logs. The application manager logs provide the key link. If you look at the very beginning of an application object manager log, you will see something similar to:

2021 2009-07-24 14:15:28 0000-00-00 00:00:00 -0600 00000000 001 003f 0001 09 SSEObjMgr_enu 5207 3948 1356

The last three sets of numbers are the ones we care about.

The first (5207 in this case) is the Siebel Session ID.
The second (3948 in this case) is the Server PID.
The third (1356) in this case is the Thread ID.

You can use the Site Map > Administration – Server Management > Sessions view to find the Session ID and then look at the OM login field to see what user is logged into that session.

Alternatively use the srvrmgr command - list sessions for comp SCCObjMgr_enu . - and compare the task id to determine the user.

On the Oracle database side, you can query the V$SESSION table (make sure you are logged in as the tableowner) using the following WHERE clause format:

WHERE PROCESS=’XXXX:YYYY’

XXXX = Server PID
YYYY = Thread ID

For example, the following SQL query (using the specific values from above) would return the most commonly requested information:

select USERNAME, STATUS, TYPE, TERMINAL, PROGRAM, LOGON_TIME
from v$session where PROCESS='3948:1356';

You can also do the process in reverse by examining the PROCESS field in V$SESSION and then using the returned Server PID and Thread ID to find the Siebel Session ID in the application object manager logs.

Why The DEP feature (Data Execution Prevention) must be turned OFF when using the Siebel Applications

The DEP feature (Data Execution Prevention) must be turned OFF when used with Siebel, as Oracle has not yet included the specialized code required to fully implement this feature. This may be done by unchecking the relevant box on the individual client browsers, or by using the Group Policy tools, or by using the relevant Vista control panel. A description of how to turn off DEP with Vista may be found here: http://www.vistax64.com/tutorials/65790-dep-turn-off-programs.html.

DEP can be disabled in the following ways:

1.IE8 > Tools > Internet Options > Advanced tab
2.Starting CMD "As Administrator" and running the command
bcdedit.exe /set {current} nx AlwaysOff
3.IE Group Policy administration tool

In order to support DEP under Windows, a computer's processor must support hardware-enforced DEP. You can determine this by running

wmic OS Get DataExecutionPrevention_Available

in a CMD window; "TRUE" means hardware support exists. The level of DEP running can be determined by running

wmic OS Get DataExecutionPrevention_SupportPolicy

This returns an integer from 0-3.

The default value is "2" in which case only Windows system components and services have DEP applied. A value of "0" means DEP is always off and "1" is always on for all processes.

Setting this value to "3" is a potential work-around. The policy in this case is that DEP is enabled for all processes but Administrators can manually create a list of specific applications which do not have DEP applied.

Implementation of the DEP feature is dependent on using the Microsoft VS 2008 compiler. Siebel is currently compiled with the VS 2003 compiler but plans to move to the VS 2008 compiler in an upcoming release. Until then it is not technically possible for Siebel to support DEP/NX.

It is important to understand that the DEP feature only helps with one kind of security vulnerability - code injection. Siebel software includes protection against this specific mechanism. The ENCODEDATA parameter prevents execution of any code that is in Siebel data, and this is the default setting for Siebel.

What are the new IE 8 features not supported by Siebel 8

Following new IE8 features are not supported in Siebel 8

1.Containers
2.Accessibility
3.Enhanced security (downloads, XSS, DEP - buffer overflow prevention)
4.Tab-level crash recovery.
5.The DEP feature (Data Execution Prevention)

Adding Internet Explorer Support for Siebel 8

The following configuration changes need to be made on the Siebel Application Server for each Siebel installation, so that it knows the capabilities of the IE8 browser. This configuration step is mandatory for all Siebel versions whenever IE8 is used in any environment, regardless of patch level:

1.Go to SiteMap (shortcut: control+shift+A)
2.Click on Adminstration > "Web Browser" > Browsers
3.Create a Browser with name : MSIE 8.0
4.For the browser add the following capabilites
oUser-Agent -- Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 6.0)
oParent-- IE 8.0
oAccept-- image/gif, image/x-xbitmap, image/jpeg, image/pjpeg, application/vnd.ms-powerpoint, application/vnd.ms-excel, application/msword, */*
oJumpTab > True
5.Create another browser with name: IE 8.0.
The capabilites for this will be the same as those displayed for the IE 6.0 browser; only the version will change to 8.0
6.Reload all Siebel Application servers

Automatic Logoff from the Siebel Client session, based on specific conditions.

Client Requirement is to automatically logg off Siebel client if an Inactive User/Ex-Employee tries to access the application 

Solution:  

Javascripts can be used to address these kind of requirements. Write the following script in the Browser script method Applet_Load () of Home Page Applet. 

functionApplet_Load ()

{

varEmployeeStatus = TheApplication().GetProfileAttr(“EmpStatus”);

if(EmployeeStatus == “Inactive”)

{

top.location= "start.swe?SWECmd=Logoff";

}

}

 The snipet can be modified to automatically log-off the Siebel Application as per Client requirement. 

Note: - It should be noted that we need to run the Browser Script (Genbscript.bat) batch file since the code is executed in the Applet Browser Script. 

Also note that this code snippet will not only close the Siebel Web Client, but will actually kill the siebel.exe process running on the machine for remote Siebel application.

Performance of SQL Queries

To check the performance of the application we get the spool and run the queries against the database to check the time it is taking. This check does not return the correct value of the time taken by query when executed through Siebel application. The reason being  when the query is executed Siebel application sets certain parameters at each session level.  Until you set the parameters in the database before execution of the query, correct performance cannot be evaluated.

 Solution :

  •  Set the parameters at the logged in Database session with the following commands
    • alter session set optimizer_mode = first_rows_10;
    • alter session set "_hash_join_enabled" = FALSE;
    • alter session set "_optimizer_sortmerge_join_enabled" = FALSE;
    • alter session set "_optimizer_join_sel_sanity_check" = TRUE;
  •  Run the SQL query (Spool file -  SQL query set)
  •  Capture the performance time related to the specific query with different data set.
  • Analyze the bottleneck areas and use Performance optimizer tips to improve the Turn Around time 
Setting Expiry Date on Static Components for Improving Performance
Objective:To improve the performance of the Siebel Application and reduce the load on the Web Server.
 
Problem / Analysis:  The “start.swe” component is the one that has all the data for building any Siebel page. The remaining components are the static components (that is the .gif and .js) that are used for building the Web Page. When a request for a Web page is made, the IE send the request for these components to the web server. However, when to request for a component and when not to, depends on the IE setting as shown below.
 
 
When the setting is “Automatically”, IE will check for the static components in the cache. If it is not found in the cache, the IE will send a request for the static component to the Web Server and the Web server will send the latest copy of that component. The status for such a transaction will be “200 OK” as seen in the trace plus results above. However If the static component is found in the cache, it checks for the expiry date on that static component. If the expire date is not set on these static component, then IE will send a request for those to the Web Server and will generally return a status “304 Not Modified”. This means that the component that is present in the cache is the latest copy and can be used for building the Web Page. If the expiry date is set on the static component and the expiry date is after the system date, when it is requested, then IE will use that component from the cache and won’t send the request for the component to the Web Server.
 
Tools used:The tool “Trace Plus” is used to monitor the components that are requested by the Siebel Application for building the Web page. A sample Object Summary of the tool when the “Recruit Summary View” tab is clicked is shown below. 
Finished
Summary
Name
Requested
Delta
Relative
Size
Elapsed
Bits/Sec
Status
10:02:08.642
 
start.swe
10:02:07.420
1.223
0
9341
1.223
61102.208
200 OK
10:02:08.742
+
buscomp_action.js
10:02:08.652
1.323
1.233
0
0.091
0
304 Not Modified
10:02:08.742
=
(Summary)
10:02:07.420
1.323
1.323
9341
1.323
56483.749
 
10:02:09.193
 
start.swe
10:02:08.802
0.392
1.383
771
0.392
15734.694
200 OK
10:02:09.453
+
arw_bck_1_d.gif
10:02:09.283
0.652
1.864
0
0.171
0
304 Not Modified
10:02:09.573
+
arw_fwd_0_d.gif
10:02:09.283
0.772
1.864
0
0.291
0
304 Not Modified
10:02:09.573
=
(Summary)
10:02:08.802
0.772
2.154
771
0.772
7989.637
 
10:02:09.293
 
start.swe
10:02:08.802
0.492
1.383
6393
0.492
103951.22
200 OK
10:02:09.643
+
main.css
10:02:09.293
0.842
1.874
0
0.351
0
304 Not Modified
10:02:09.763
+
swecommon.js
10:02:09.673
0.962
2.254
0
0.091
0
304 Not Modified
10:02:09.874
+
swecmn_hi.js
10:02:09.783
1.073
2.364
0
0.092
0
304 Not Modified
10:02:09.984
+
view_vb.js
10:02:09.884
1.183
2.465
0
0.101
0
304 Not Modified
10:02:10.314
+
check.gif
10:02:10.234
1.513
2.815
0
0.081
0
304 Not Modified
10:02:10.314
=
(Summary)
10:02:08.802
1.513
2.895
6393
1.513
33803.04
 
 
The Object Summary dialog box consist the following columns:
  • Name - The filename of the object (relative to the URL).
  • Finished - The time when the download of the object was completed.
  • Requested - The time when the HTTP request for the object was sent to the server.
  • Delta Time - The span between the time that this object completed downloading, and the time that the base HTML page was requested.
  • Size - The size of the object in bytes
  • Elapsed - The amount of time in seconds necessary to download the object. The accuracy of this value is 1 millisecond.
  • Bits/Sec - The average data transfer speed in number of bits per second, otherwise known as the baud rate.
  • Status - Displays the HTTP return code found in the HTTP response header for this object.
Solution:An expiry date was set at the Web Server level. By this all components that are downloaded from the Web Server will be having an expiry date attached with it when they come to the client. Any further request made by the IE for the same component, will use the component from the cache and won’t send any request to the Web Server.
 
Results:
From the UI perspective the manual following things were found
  1. The largest improvement was to the login time which was decreased by 37% for the GA connection and 55% for the DA connection.  (GA and DA are NM Client specific network used by the user)
  2. All other transactions tested were decreased on average 25%.
 
 
From the load on the Web Server perspective the web trends report was generated for the comparison of Monday - Thursday the week prior and week following the change. The following things were found.
  1. Total average hit reduction on web server:  34%.
  2. translates to 700,000 fewer hits per day, or nearly 3,000,000 hits for Monday - Thursday
  3. Most of the impact is during the busiest time frame - 8:00am to 3:00pm
 Failed Hit reduction: 86%
  
Hits by Hour of the Day
           
Hits by Day of the Week
Overcome Error while Checkout
A common error encountered while doing an object Checkout/Get is –
Siebel-ERR-1109: Unable to read value from export file (Data length (4) > Column definition (1));
 
Solution :
 
Siebel Tools error during checkout / get are almost associated with the local repository having a different schema. In general,  to resolve this issue, we generate a new database template and do a database extract. Then reinitialize the local database to solve the issue.
 
Alternatively you can perform the below steps to resolve the issue:
 
Go to Windows Start ->Run->Regedit
Go to [HKEY_CURRENT_USER\Software\ODBC\ODBC.INI
 
Add a new key (If not already available) with your Oracle Connections name (example ->DEVSIEBEL, TESTSIEBEL, PFIXSIEBEL etc.)
 
Add the following string values for the new key.
PacketSize = 0
EnableScrollableCursors = 0
ColumnsAsChar = 1
ColumnSizeAsCharacter = 1
 
You are all set & you can do checkout / get without any error. This Registry tweak also enables the Checkout button in case it is greyed out.
Object Locking using Developer logins
Unable to enable object lock with other configured administrator user than SADMIN. For each project you can specify whether or not developers are allowed to check out and check in individual objects within the project. To allow developers to check out and check in objects, you set the project's Allow Object Locking property to TRUE. To modify the Allow Object Locking property, you must use the SADMIN user ID to log in and you must be logged into a server data source. You cannot set the Allow Object Locking property in your local repository and without SADMIN user.
 
OOB Configuration:  
 
Siebel has hard coded the SADMIN value to enable Object Level Check In / Check Out when connected to the server DB. However if your organization wants to pass the control to another user (probably another admin) you can achieve it with a little bit of configuration.
 
Solution:
 
With the help of the following configuration, we can provide access to any user other than the default SADMIN. E.g., please follow the below mentioned steps to give access to QADMIN.
Navigate to Business Component “Repository Project”. Expand it to expose its fields. Query for “OL RO” field. Set the Calculated value for this field to
 
IF(LoginName() = “QADMIN”,”N”,”Y”)
 
Then copy the Siebel.srf file in the tools\Objects\enu folder and compile the changes against the copied file.
Launch Tools connected to the compiled srf. The user should be able to modify the AOL flag now by logging to the Siebel Tools as QADMIN.

Pages

Subscribe to Siebel Admin