Performancing Metrics

Performance blog: Siebel
Showing posts with label Siebel. Show all posts
Showing posts with label Siebel. Show all posts

Sunday, April 18, 2010

How to track the Application Session for Call Center and Partner center in Siebel

Here are the steps to check the Application Sessions for Siebel Call Center and Partner center.


1. Login to Call center

2. Click Site Map

3. Go to Administration => Server management

4. Click Components

5. Click Query

6. Query for “eChannel Object Manager (ENU_EIDM)” which is Partner Center Application

7. Running Tasks in the below image will give the current Sessions running against that Component for each Siebel Application Server


Call Center





8. Likewise perform the same query for “Call Center Object Manager (ENU)” which is call center application


9. Running Tasks in the below image will give the current Sessions running against that Component for each Siebel Application Server

Monday, April 12, 2010

Siebel Event logs

To tune performance in Siebel, you first need to get detailed events for the suspected component.


Set ‘Event Log Level’ to 5 for proper component:

1) In Call Center, navigate to Site Map > Administration  Server Configuration > Components > Events

2) Highlight the component for which you wish to turn the tracing on.

3) In the lower applet, select the event type and set the log level to 5.

Siebel Event logs
 
 
 
 
 
 
 
 
 
 
 
 

Sunday, October 25, 2009

Solution to Common Siebel Script Errors in LoadRunner

The following section covers common issues that are most often encountered.

Issues

1. Wrong field values

The server returns an error like the following:

@0`0`3`3``0`UC`1`Status`Error`SWEC`8`0`2`Errors`0`2`0`Level0`0`
ErrMsg` Wrong field values or value types detected in field Request
Type. Please re-enter your field values. If you need additional
assistance, please refer to the documentation.
(SBL-UIF-00299)`ErrCode`21336`2`0`.

Cause
The values (parameters) in Siebel fields of a request are invalid. The reason would be values are hard coded while recording.

Fix
Manually correlate the field values from previous requests.

2. Back or Refresh Error

The Siebel application displays an error applet indicating the following:

We detected an Error which may have occurred for on or more of the following reasons:
We are unable to process your request. This is most likely because you used the
browser BACK or REFRESH button to get to this point.
and fix
Cause
This issue can be caused by the following conditions:
• The SWETS was not parameterized for the current request.
• The SWEC was not correlated correctly for the current request.
• The request was submitted twice to the Siebel server without the SWEC being updated.
• The frame was not created on the server, possibly because the SWEMethod has changed since the script was recorded. A previous request should have set up a frame for the browser to download.
Fix
To resolve this issue, try the following fixes:
• Make sure that SWETS is parameterized.
• Make sure that you reset the SWE Count to the SWEC value of the first request in the iteration
at the beginning of the iteration.
If these fixes do not resolve the issue, rerecord the script.

3. No Content HTTP Response

The server returns an error like the following:

HTTP/1.1 204 No Content
Server: Microsoft-IIS/5.0
Date: Fri, 31 Jan 2003 21:52:30 GMT
Content-Language: en
Cache-Control: no-cache

Cause
The row ID is not properly correlated.

Fix
Manually correlate the row ID.

4. Same Values Error

The server returns an error like the following:

@0`0`3`3``0`UC`1`Status`Error`SWEC`10`0`1`Errors`0`2`0`Level0`0`
ErrMsg`The same values for 'Name' already exist. If you would like to
 enter a new record, pleaseensure that the field values are unique.
`ErrCode`28591`

Cause
One of the values in this request (in the previous code example, it is the value for the Name field)
is the same as a value in another row in the database table.

Fix
You must replace this value with a unique value for each iteration for each user. The recommended
solution is to use the row ID parameter for the value; this causes the value to be unique.

5. Restoring the Context Error

The server returns an error like the following:

@0`0`3`3``0`UC`1`Status`Error`SWEC`9`0`1`Errors`0`2`0`Level0`0`
ErrMsg`An error happened during restoring the context for requested
location`ErrCode`27631`

Cause
The row ID is not properly correlated.

Fix
Manually correlate the row ID.

6. Cannot Locate Record Error

The server returns an error like the following:

@0`0`3`3``0`UC`1`Status`Error`SWEC`23`0`2`Errors`0`2`0`Level0`0`
ErrMsg`Cannot locate record within view: Contact Detail - Opportunities
View applet: Opportunity List Applet.`ErrCode`27573`

Cause
The input name SWERowId does not contain a row ID for a record on the Web page. This input name
should have been parameterized. The parameter's source value may have changed its location.

Fix
Manually correlate the row ID.

7. End of File Error

The server returns an error like the following:

@0`0`3`3``0`UC`1`Status`Error`SWEC`28`0`1`Errors`0`2`0`Level0`0`
ErrMsg`An end of file error has occurred. Please continue or ask your
systems administrator to check your application configuration if the
problem persists.`ErrCode`28601`

Cause
The input name SWERowId does not contain a row ID for a record on the Web page. This input name
should have been parameterized. The parameter's source value may have changed its location.

Fix
Manually correlate the row ID.

Monday, September 28, 2009

Siebel Correlation with custom code in LoadRunner

“Siebel _Star_Array” is a function generated by LoadRunner for correlating Siebel field values separated by Token "*". A sample format of the server response is given below and these field values are required to pass to the subsequent requests.

"1*N9*1-18506217*GEOFFTH4*Open10*Unassigned3*OEM12*Hardware-OEM14*Administrative1*01*010*Symptom X18*MSE-Perf7*GEOFFTH1*112*Geoff Thomas1*10*6* Normal19*10/16/2002 03:40:127*Sev - 47*1-13NY5"

Last Character/s (Highlighted in Red) in each of the fields denotes the length of the next field values. Because of which left and right boundaries will be dynamic and difficult to correlate.

The below "siebel _Star_Array” function provided with LoadRunner has some limitations and does not work at all times. It is it is tough to debug the errors without the source code

web_reg_save_param("WCSParam96",
"LB/IC=`ValueArray`",
"RB/IC=`",
"Ord=10",
"Search=Body",
"RelFrameId=1",
"AutoCorrelationFunction=flCorrelationCallbackParseStarArray",
LAST);

The sample code I had created can be used to parse the response and use it for correlation when compared to the Loadrunner Automactic Correlation

vuser_init()
{

char str[1024];
char separators[] = "*";
char *token;
char arrValues[50][20];
char arrFinalValues[50][20];
int i;
int j;
int length_old;
int length_new;
char newlength[2];
char actualValue[20];

/****************** Sample Text format****************************** */

strcpy(str, "1*N9*1-18506217*GEOFFTH4*Open10*Unassigned3*OEM12*Hardware-OEM14*Administrative1*01*010*Symptom X18*MSE-Perf7*GEOFFTH1*112*Geoff Thomas1*10*3 - Normal19*10/16/2002 03:40:127*Sev - 47*1-13NY5");

lr_output_message("%s",str);

/***** The following code will be used to split the text into strings based on the token *******/
token = (char *)strtok(str, separators); /* Get the first token */
if(!token) {
lr_output_message("No tokens found in string!");
return( -1 );
}

i=0;
while( token != NULL ) { /* While valid tokens are returned */
strcpy(arrValues[i],token);
lr_output_message("Initial array values is %s",arrValues[i]);
token = (char *)strtok(NULL, separators); /* Get the next token */
i++;
}

/*******************************************************************/
/*************** To remove Trail charecters ***********************/

for (j=0; j less than i; j++) //use lessthan sysmbol
{
if (j==0) {
strcpy(arrFinalValues[j],arrValues[j]);
length_old=strlen(arrValues[j]);
}
else{
length_new=strlen(arrValues[j]);
strncpy(arrFinalValues[j], arrValues[j], length_old);
if(length_new>length_old+1){
sprintf(newlength,"%c%c",arrValues[j][length_old],arrValues[j][length_old+1]);
length_old=atoi(newlength);
}
else{
sprintf(newlength,"%c",arrValues[j][length_old]);
length_old=atoi(newlength);
}//End of Else
}//End of Out Else
}//End of For

/* Final Data in the Array are */
for (j=0; j less than i; j++)//less than symbol
{
lr_output_message("Values after removing tail charecters %s",arrFinalValues[j]);
}
return 0;
}