To aid customisation of Siebel 7 web scripts, the possible values for rowids and other dynamic data are automatically parsed. The particular value returned to the server during recording is extracted from the parsed data using the function SiebelTokenApplet. To customise this value you can randomise the second parameter of SiebelTokenApplet which represents the number of the appropriate token within the parsed data (first, second, third etc). An example of working with these values is below: // recorded script var gsRowValArray_001 : string; // 4*Val14*Val24*Val34*Val48*Prospect4*Val6; begin WebParseDataBoundEx(gsRowValArray_001, STRING_COMPLETE, "`v`", 1, "`v`", WEB_FLAG_IGNORE_WHITE_SPACE, 1); // Entries of a combo-box are downloaded and parsed // into the variable gsRowValArray_001: WebPageForm(...); // later on: // The value which occurs in gsRowValArray_001 is used in a form: WebPageForm(..., SALES_ENU_START_SWE033); dclform SALES_ENU_START_SWE033: // more form fields "s_2_1_55_0" := SiebelTokenApplet(gsRowValArray_001, 4), // value: "Prospect" // more form fields In this example, the entries in a combo-box on the page are parsed into gsRowValArray_001 . The values are, in this example: Val1 Val2 Val3 Val4 Prospect Val5 In the form the function SiebelTokenApplet(gsRowValArray_001, 4 ) extracts the 5th token which is "Prospect". Indices are zero-based. To randomise therefore we can change the second parameter of SiebelTokenApplet to a random number: SALES_ENU_START_SWE033: // more form fields "s_2_1_55_0" := SiebelTokenApplet(gsRowValArray_001, RndUniN(0..5) ), // value: "Prospect" // more form fields It is important to check how many combo-box entries are valid to correctly specify the range for RndUniN. In this case we assume that all 6 elements are valid. Note: If you wish, you can replace the function SiebelTokenApplet with a known valid value as follows: SALES_ENU_START_SWE033: // more form fields "s_2_1_55_0" := "Valid value", // value: "Prospect" // more form fields For additional information please review the section Dynamic data in the chapter Loadtesting Siebel 7 in the SilkPerformer Advanced Concepts book: START | PROGRAMS | Silk | SILKPERFORMER x.x | DOC | SILKPERFORMER ADVANCED CONCEPTS BOOK
↧
Wiki Page: How can I customize data returned by the function SiebelTokenApplet within Siebel 7 web scripts?
↧
Wiki Page: How can I customize my script in order to take different actions depending on the page returned?
In order to do this, you will need to implement custom logic in your script. To begin with, perform a verification on some text on the first screen. If this fails, then it must be that the second screen has rendered, therefore perform the actions you want. i.e. In the above example, the ‘Return’ function will cause the transaction to exit if the verification fails. This would be useful if you wish to stop a user when an incorrect page has loaded. Some verification functions, such as the ‘WebVerifyHtml’ do not have a return value (true / false) in the same way that the other verification functions (like WebVerifyTitle) have. Instead they have an optional parameter ‘nResult’ which will receive the number of appearances of the specified content string. You can use this nResult parameter in the same way as the return value to achieve what you want. i.e. In the above example, the ‘While’ statement will continually loop, waiting 10 seconds and then performing the verification again. This would be useful in a scenario where you want to wait until an object has loaded before continuing.
↧
↧
Wiki: Silk Performer Knowledge Base
↧
Wiki Page: How can I customize Session ID"s using the SilkPerformer TrueLog Explorer?
How can I customize Session ID"s using the SilkPerformer TrueLog Explorer? What is session Information and what is it used for? Due to the ever rising complexity of modern Web Applications, many now use dynamic data such as Session ID"s to maintain state or session between a client (e.g. Web Browser) and Server. The maintaining of session enables a Web Application to distinguish between multiple clients when the server is being accessed by multiple users in order to ensure that each individual client is served the expected Web Page. Session IDs are sent to clients in a number of ways. Most often they are included in cookies, hyperlink URLs, URLs of embedded objects, and HTML form fields. Likewise Session ID"s are returned to servers for subsequent client requests within cookies, URLs, and HTTP post. Typically session ID"s will take the form of a unique number, set of characters or a mixture of both. How does session Information affect replay in SilkPerformer? After the record process you will often see session information hard coded in the generated BDF script, either as part of a URL request or more commonly as a form value in the DCL Form section like so: The hard coded session values need to be customized if the BDF script is to replay successfully otherwise during Try-Script the Web Application will often return "Application Level" error messages such as "Session Timed Out" or "Application Error has occurred" among many others. The reason why "Application Level" errors will be thrown during Try-Script is because the same unique value which was sent by the server to the client during the record process cannot be reused when the BDF script is next replayed, therefore this unique value needs to be customized. Customizing Session ID"s using the TrueLog Explorer The TrueLog Explorer provides a "Customize Session Handling" Wizard that is accessible through the Workflow; this wizard allows you to identify session information by comparing the TrueLog generated during Try-Script to the Record TrueLog for any differences between values returned in the HTML source code. Once any differences are found the associated BDL script is also checked to see if it contains any occurrence of the highlighted value; if an occurrence is found in the BDL script then the value is flagged as a Session ID Candidate (by highlighting the value as Orange) and you are thus offered the opportunity to customise the value. The actual value is customized by the TrueLog Explorer by using left and right boundaries to capture the data which is returned by the server during each iteration of the BDF script and then assigning this captured data to a variable. The variable is then used to replace the hard coded session id value in the BDF script, so that during every iteration of the script the unique value returned by the server will be submitted by the client in order to maintain session. To customize Session ID"s using the TrueLog Explorer you will need to implement the following steps: Launch the TrueLog Explorer generated during a Try-Script Select "Customize Session Handling" from the Workflow and then select "Find Differences Use the "Step through Truelog" feature and press "Find Next" until some differences are found between the Record TrueLog and the Try-Script TrueLog Note that the highlighted data in the "In-data" tab is the dynamic session information which needs to be parsed. The highlighted value in the "Source Differences" tab can be customized by performing a double click action or by right-clicking and selecting "Customize Session Handling" Press "OK" to insert the parsing function into the BDF script, like so: The associated BDF script will now be modified so that it contains a function which is used to parse the Session ID from the server response, like so: and the variable containing the parsed dynamic Session ID will now be used to replace the hard coded value in the DCL form section, like so: Please Note: For further information on using the TrueLog Explorer to customize session information please refer to the "SilkPerformer TrueLog Explorer User Guide" under the section named "Customizing Session Handling - Identifying and Customizing Relevant Session Information For further detailed information on customizing session information please refer to the "Web Load Testing tutorial" under the sections "Comparing Record and Replay TrueLogs and Customizing Session Handling"
↧
Wiki Page: How can I customize the overview report in Silk Performer?
To show or hide individual sections of the overview report and add or remove user-defined graphs, click the "Customize Report" in the Performance Explorer Workflow Bar. This will start the custom overview report wizard. For this button to be enabled an Overview report must first be displayed. Select the sections to add or remove from the report. These include: General Information - Information about the loadtest, graphs for active users, transactions, page times. Summary Tables - The Summary tables contain summarized measurements on a global level. User Types - The User Types section contains detailed measurements on a per user type level. Custom Charts - This section contains charts that the user can define from server and client side results Custom Tables - This section contains reports that the user can define from server and client side results Detailed Charts - All charts that are contained in the report are shown in detailed, larger images Each item that can customised within the Overview Report will have either one or both of the following links displayed in blue Click here to edit text - These links will allow you to customise the text displayed e.g. a description for a graph/report Click here to customize this section - These links will allow you to add a new graph or report to the overview report. If the Overview Report contains data from multiple TSD files (e.g Server Side measures) those files must also exist in the directory that the Overview Report is stored in - if not, the graphs/reports will be empty. If the monitor templates and the graphs in your Overview Report contain measures from TSD files other than the main TSD file, the template stores relative paths to those TSD files. For example, suppose your Overview Report contains graphs from the r@HOST1.tsd file that is stored in your loadtest directory. If you are creating a template and apply this template to another TSD file, the r@HOST1.tsd file will be loaded from the directory where this TSD file is stored. Generating a Template Open the Overview report. Click FILE | SAVE AS TEMPLATE. Apply a Template to Existing Overview Reports Click the "Overview Report" button in the Performance Explorer Workflow Bar. Select the TSD file. Select the template file. To use the same template in all projects for all new Overview Reports generated go to the following within Performance Explorer: SETTINGS | OPTIONS | REPORTING Tab | "Use template when creating a new Overview Report". Browse to the include directory and select the OVT file. To apply an Overview Report template to only the current project go through the following steps within the Silk Performer project in Workbench under SETTINGS | ACTIVE PROFILE | RECORD | RESULTS | TIME SERIES TAB | OVERVIEW REPORT SECTION. Browse to the include directory and select the OVT file. Note: This setting overrides the Performance Explorer "Use template when creating a new Overview Report" setting.
↧
↧
Wiki Page: How can I customize user input when using the Siebel 7 SilkEssential in SilkPerformer?
In Siebel 7 Web Applications user input is normally sent to the server via Java Applets; it is therefore desirable that this user input can be easily identified and customized in the recorded script. The SilkPerformer Web Recorder can detect user input by assuming that form field values are user input when one of the following is true: Values are enclosed in $ symbols Values are enclosed in underscores (_) Values begin with the character sequence "i.". If you are entering data into a field during the record process which you later wish to customize/randomize then you will need to adhere to one of the above three options, the recorder then generates a variable for each user input and uses that variable in a script, in place of the original value. A data input field which was added normally during the record process will look like this in the DCL form section: SALES_ENU_START_SWE023 : "s_2_2_33_0" := "SiebelTokenApplet (, 0), // value: "Hughes" This makes the token "SiebelTokenApplet" uncustomizeable if a user wanted to add random names for this form field. Therefore to work around this problem during the record process you would enter the data input enclosed in "$"; this would appear in the DCL form section like: SALES_ENU_START_SWE023 : "s_2_2_33_0" := gsInput_Hughes, // value: "$Hughes$" A user can then assign a random value to the variable which was generated during the record process in order to input random/customized data, like so: dclrand rRndStream1 : RndStream("Contact.rnd", 15); ... gsInput_Hughes := rRndStream1; For further detailed information on Siebel 7 support in SilkPerformer please read the document entitled "Load Testing Siebel 7" which can be found in the Advanced Concepts Book which ships with SilkPerformer 6.x: START | PROGRAMS | SILKPERFORMER 6.5 | DOC - Advanced Concepts Book
↧
Wiki Page: How can I deal with dynamic Web Links which require customization for successful replay against Oracle Forms Application?
Occasions can arise during replay against an Oracle Forms Application where a dynamic URL has been recorded; this type of URL is often used to generate a Report based on the information residing in the Oracle Forms Application. You can verify if the application is generating a dynamic URL by checking the OraForms BDF script for Web API functions such as: WebUrl("http://server:port/report?reportid=12345b) or WebFormGet("http://server:port/reportb, REPORT_FORM) To avoid potential replay errors such as "HTTP 1060 : Link Not Found" the dynamic URL must be customized. This can be achieved by obtaining the HYPERLINK property from the Oracle App Properties by implementing the following: Go to "SETTINGS | ACTIVE PROFILE | REPLAY | ORACLE FORMS | LOGGING" set the with the LOG-Level set to "Debug" and execute a Try-Script. Explorer the IN-DATA section of the TrueLog prior to the WebUrl statement. This can be done by performing a search using the keyword "HYPERLINK" Modify your script using the "OraFormsGetPropStringArray" function to capture the Hyperlink value and then use the value as a parameter of the WebUrl function call, like so:
↧
Wiki Page: How can I define project specific include files?
Include files are searched for using the directory settings listed in SETTINGS | SYSTEM. The include file search path order is as follows: Default Include directory (system setting) Custom Include directory (system setting) \Include (if existing) \Custom Include (if existing) Project specific include file can be added to the third or fourth location. It may be necessary to create the specified directories. The include file(s) can now be used by all the scripts in the project.
↧
Wiki Page: How can I delete a single cookie from the current cookie database?
In certain cases it may be useful to delete previously set cookies, for example, when they are deleted by Javascript. To do this the cookie’s expiration date should be set to the past. For example: WebCookieSet("name=value; domain=.myCompany.com; path=/; expires=Wed, 31 Mar 1993 13:33:23 GMT", "http://www.myCompany.com/"); A recording rule is also available from Technical Support to automatically script this.
↧
↧
Wiki Page: How can I determine if a patch that was applied to the MMC machine has also been applied to an agent?
Since many of the patches released for a controller also need to be applied to the agent it can be difficult to keep track of which agent machines have the patch applied. In order to determine if the patch is applied on the agent browse to the Silk Performer root directory on the agent and locate the PerfVersion.dll file. Simply look at the properties of this file and compare the date shown with that of the same dll on the controller machine. If they are different then the agent does not have the patch installed. This PerfVersion.dll is updated with every build of Silk Performer.
↧
Wiki Page: How can I determine if an application is suitable for recording using SilkPerformer's Flash Remoting support?
If you are unsure if the application you wish to test in Silk Performer is a Flash Remoting based application the easiest way to determine this is to record in Silk Performer using the normal "web business transaction (HTML/HTTP)" application type. Once the record is complete open the "*.record.log" file (generated for every record performed in Silk Performer). In the log check the Server's Response Header to determine the actual Content type of the application, for example: HttpResponseHeaderFromServer(#640, 190 bytes) { HTTP/1.1 OK\r\n Server: Microsoft-IIS/5.0\r\n Date: Tue, 09 Aug 2005 16:22:02 GMT\r\n Set-Cookie: JSESSIONID=3c30d5cb5095p$C2$3C$;path=/\r\n Content-Type: application/x-amf\r\n Content-Length: 1528\r\n\r\n } Looking at the above snippet taken from a record.log file you can see that the content type is "x-amf"; if the Content-Type is of "x-amf or amf" format then this verifies that the application uses Flash Remoting. To correctly record against a Flash Remoting application in Silk Performer create a new Project, choosing the "Flash Remoting" application type by doing the following: GO TO FILE | NEW PROJECT | APPLICATION TYPE | WEB BROWSER - FLASH REMOTING For further information please review the Load Testing Flash Remoting Applications whitepaper found at: START | PROGRAMS | SILKPERFORMER 7.X | DOCUMENTATION - ADVANCED CONCEPTS
↧
Wiki Page: How can I make my OdbcConnect use Windows Integrated Security authentication?
You can connect to the database being tested using Windows Integrated Security by adding an additional parameter to the OdbcConnect function. A normal connection using SQL authentication would look similar to: OdbcConnect(ghDbc1, "DSN=Test1;UID=sa;PWD=myPassword;"); To allow you to connect using Windows Integrated Security you need to modifiy the OdbcConnect and add "Trusted_Connection=yes" . The connection to the database will now look similar to: OdbcConnect(ghDbc1,"DSN=Test1;Trusted_Connection=yes");
↧
Wiki Page: How can I make my script write results out to a new line of a text file each time?
Adding "\r\n" to the end of the string you wish to output to the text file will allow a new line to be taken before the next entry is output. Note: This is only necessary when writing out to a txt file. If outputting to a Silk Performer .wrt output file you should use the function writeln; to create a new line. Please see Help for more details.
↧
↧
Wiki Page: How can I monitor a dynaTrace server via JMX and integrate dynaTrace measures collected during a load test into Performance Explorer?
As a prerequisite you must have already installed and How can I use the dynaTrace plug-in for SilkPerformer to provide in-depth performance and error diagnostics down to the code level for J2EE and .NET applications? for use with SilkPerformer. SilkPerformer's support for JMX (Java Management Extensions) monitoring enables you to monitor MBean attributes that are exposed by the dynaTrace diagnostics server. Please see the Performance Explorer User Guide for further details on JMX monitoring. To monitor the dynaTrace diagnostics server, click on the "Monitor Server" button in Performance Explorer to display the Data Source Wizard. Select "Custom Data | JMX Data" as shown below: Select "dynaTrace Diagnostics 2.x" as the application. Enter the Hostname and Alias of the machine on which the dynaTrace diagnostics server is installed. Change the port number from the default value of 2020 if necessary. Enter the username and password of the dynaTrace diagnostics server (default: admin / admin). Click "Next". The JMX Connection Configuration dialog will then appear. Specify the Java home directory on the local machine (must be at least Java Runtime (JVM) 1.5). Specify the UNC path of the "lib" folder of the dynaTrace diagnostics server installation. Click "OK". The JMX Data Source Browser will then appear allowing you to select any of the measures that are exposed by the dynaTrace diagnostics server. In the example below, the database measures group has been selected and this displays the available database measures. Expand the node that you are interested in, select a measure and click the "Add" button. This step can then be repeated until all the required measures are added. The Data Source Wizard will then appear where you can confirm which measures are required. These measures can now be displayed in Performance Explorer. This workspace can now be used as part of a monitoring template with which you can correlate these measures with other server/client side measures collected during a load test. Please see the Performance Explorer User Guide for details.
↧
Wiki Page: How can I monitor Linux SNMP without a MIB file?
Performance Explorer provides the option of using a UCD-SNMP interface, if the package is configured on the Linux system under test:- Go to PERFORMANCE EXPLORER | MONITOR | ADD DATA SOURCE | SELECT PREDEFINED | OPERATING SYSTEM DATA | LINUX | UCD SNMP. Available defined measures are:- Swap Size (Available), Swap Size (Total), Total Available Memory, Total shared Memory, Total buffered Memory, Physical Memory size, Average User CPU time, Average Nice CPU time, Average system CPU time, Average Idle CPU time. This is a predefined interface using OIDs specified in the Realtime.INI file for data measure collection. When viewed in Notepad, you will see entries such as:- S= Operating System Data\Linux\System (ucd snmp), SNMP, M= SNMP:1.3.6.1.4.1.2021.4.4.0, System\Memory\Swap Size (Available), eAvgOnlyCounter, 0, kbytes, 0, 1, 2, 3, 4, 5, Available Swap Space on the host. M= SNMP:1.3.6.1.4.1.2021.4.3.0, System\Memory\Swap Size (Total), eAvgOnlyCounter, 0, kbytes, 0, 1, 2, 3, 4, 5, Total Swap Size configured for the host. M= SNMP:1.3.6.1.4.1.2021.4.11.0, System\Memory\Total Available, eAvgOnlyCounter, 0, kbytes, 0, 1, 2, 3, 4, 5, Total Available Memory on the host.
↧
Wiki Page: How can I monitor multiple Oracle instances using V$SYSSTAT?
Firstly, you must ensure that the Oracle Net8 client configuration is setup correctly [Please consult your DBA if unsure]. The following example is for 2 Oracle instances on a Solaris 8 system. The SilkPerformer system has the Oracle client installed and the Net8 client connection names are "OracleSolaris1" and "OracleSolaris2". Ensure SilkPerformer and Performance Explorer are closed. Go to ...Program Files\Segue\SilkPerformer\Working\Monitors.Go to ...Program Files\Segue\SilkPerformer\Working\Monitors. There you will find the OracleMonitoring.sep file [ This sep is a zip file version that contains a specific SilkPerformer project to allow monitoring of Oracle using the V$SYSSTAT process and can be accessed via Winzip] Copy and paste this file in the same folder but rename it e.g to OracleMonitoring2 Open the new file, OracleMonitoring2.sep, with Winzip Open the Monitor.conf file with Notepad Change the Database System\Oracle (v$sysstat)\System Statistics (v$sysstat) line to refer to the 2nd instance Save the change Winzip may show a dialog indicating that Monitor.conf has changed - "Update archive" - select Yes Start Performance Explorer Add Data Source as normal Under Database System you will see an Oracle[v$sysstat] and an Oracle2[v$sysstat] These can then be added in turn, using the different connect strings specified via Net8. i.e. OracleSolaris and OracleSolaris2 with appropriate Username and Password attributes. These can then be graphed, on separate views, in Performance Explorer if needed If you require more instances than two, copy the OracleMonitoring.sep the required number of times, altering the Monitor.conf files in each to be specific to each instance.
↧
Wiki Page: How can I monitor NT system resources on a server if I do not have a SAM license?
The usage of the PerfMonAdd and PerfMonGet functions in a BDF script will allow NT Performance counters to be gained. You will need to know the name of the type of counter and the name of the counter you are monitoring, for example the amount of committed bytes of Memory. PerfMonAdd function Opens a Windows NT performance counter and returns a handle to the counter. Example var hCounter: array [3] of number; dcltrans transaction TInit begin PerfMonAdd(hCounter[1], "localhost", "System", "% Total Processor Time"); PerfMonAdd(hCounter[2], "localhost", "Processor", "% Processor Time", "0"); PerfMonAdd(hCounter[3], "localhost", "Memory", "Committed Bytes"); end TInit; PerfMonGet function Retrieves the value of a Windows NT Performance Monitor counter and writes the value to both report and time series data files. Example var hCounter: array [3] of number; dcltrans transaction TInit begin PerfMonAdd(hCounter[1], "localhost", "System", "% Total Processor Time"); PerfMonAdd(hCounter[2], "localhost", "Processor", "% Processor Time", "0"); PerfMonAdd(hCounter[3], "localhost", "Memory", "Committed Bytes"); end TInit; transaction TMain var i: number; begin ThinkTime(1.0); for i := 1 to 3 do PerfMonGet(hCounter[i]); end; end TMain;
↧
↧
Wiki Page: How can I monitor Real Time measures such as Active Users from a remote machine?
To add an ‘Active Users’ (or similar Real Time measure) monitor for an agent other than localhost do the following: • In the Monitor window, Right click and select ‘Add Data Source’ • Click Next in the Data source Wizard with ‘Select from pre-defined data source’ selected • On the System Selection screen, expand SILK | SILKPERFORMER XX and choose ‘Agent (perfmon)’. Then select Next • On the Connection parameters screen, enter the Hostname of the agent machine (and username / password if required). Then select Next • On the Select Measures screen, select ‘Active Users’. Then select finish You will then have all the same measures for the agent as you have for localhost.
↧
Wiki Page: How can I monitor Server statistics for a Siebel 7 server?
Siebel server stats for each defined Department can be obtained from an "Apache-like" HTML page [ _stats.swe] that can be parsed and obtained by the normal HTML parsing functions. For example, the Siebel test site has the following page available :- [url]http://standardhost.mycompany.com/sales_enu/_stats.swe where standardhost is the servername for the URL. Sample format of page:- SWE: /sales_enu/SWSE Statistics System Stats: Event Value General Stats(count,mean,stddev)Frequency(mean,stddev) Anonymous sessions 48864 1.0000 16.0981 requested from 0.0000 37.9718 the pool Applications: Application Name Totals General Stats(count,mean,stddev)Frequency(mean,stddev) 3342.00003342 1.0000 136.1427 4585.0827 Current Sessions: EventTotal TimeGeneral Stats(count,mean,stddev)Frequency(mean,stddev) This report produced by the Siebel Web Engine (SWE) All times given in seconds. Copyright ) Siebel Systems, Inc. 2001, 2002. All rights reserved. Sample SilkPerformer script that parses values from the _stats.swe page:- Note: The Project Attributes named in this example script will need to be created manually for the newly created project [ In SilkPerformer - Project | Project Attributes ]. benchmark SilkPerformerRecorder use "WebAPI.bdh" dcluser user VUser transactions TInit : begin; NoTrt_TMain : 1; var sHost, App, sPage : string; nPort : number; fOldOpenSessionTime, fOldOpenSessionCount, fOpenSessionTime, fOpenSessionCount : float; fOldResponseTime, fOldResponseCount, fResponseTime, fResponseCount : float; fOldSessionCloseTime, fOldSessionCloseCount, fSessionCloseTime, fSessionCloseCount : float; fOldRequestTime, fOldRequestCount, fRequestTime, fRequestCount : float; fOldAnonSessionRemovedTimeoutetc, fAnonSessionRemovedTimeoutetc : float; dclfunc function QueryValues var sOpenSessionTime, sOpenSessionCount, sResponseTime, sResponseCount : string (100); sSessionCloseTime, sSessionCloseCount, sRequestTime, sRequestCount : string (100); sAnonSessionRemovedTimeoutetc : string (100); begin WebParseDataBoundEx(sOpenSessionTime, sizeof(sOpenSessionTime),"Open Session Time", 1, ""); WebParseDataBoundEx(sOpenSessionCount, sizeof(sOpenSessionCount),"", 5, ""); WebParseDataBoundEx(sAnonSessionRemovedTimeoutetc, sizeof(sAnonSessionRemovedTimeoutetc), "Anon Session Removed (Timeout etc) ", 1, ""); WebParseDataBoundEx(sResponseTime, sizeof(sResponseTime), "Response Time (waiting for service event)", 1, ""); WebParseDataBoundEx(sResponseCount, sizeof(sResponseCount), "", 17, ""); WebParseDataBoundEx(sSessionCloseTime, sizeof(sSessionCloseTime), "Close Session Time", 1,""); WebParseDataBoundEx(sSessionCloseCount, sizeof(sSessionCloseCount), "", 20, ""); WebParseDataBoundEx(sRequestTime, sizeof(sRequestTime), "Request Time (waiting for service method to process)", 1, ""); WebParseDataBoundEx(sRequestCount, sizeof(sRequestCount), "", 23, ""); WebUrl("http://" + sHost + ":" + string(nPort) + "/" + sApp + "/" + sPage); fAnonSessionRemovedTimeoutetc := float(sAnonSessionRemovedTimeoutetc); fOpenSessionTime := float(sOpenSessionTime); fOpenSessionCount := float(sOpenSessionCount); fResponseTime := float(sResponseTime); fResponseCount := float(sResponseCount); fSessionCloseTime := float(sSessionCloseTime); fSessionCloseCount := float(sSessionCloseCount); fRequestTime := float(sRequestTime); fRequestCount := float(sRequestCount); end QueryValues; dcltrans transaction TInit begin AttributeGetString("host", sHost, sizeof(sHost)); nPort := AttributeGetInt("port"); AttributeGetString("application", sApp, sizeof(sApp)); AttributeGetString("pagename", sPage, sizeof(sPage)); MeasureSetBound("Pe_Request Time", MEASURE_COUNTER_CUSTOMCOUNTER, 1, 2.0); MeasureSetBound("Pe_Request Time", MEASURE_COUNTER_CUSTOMCOUNTER, 2, 4.0); MeasureSetBound("Pe_Session Close Time", MEASURE_COUNTER_CUSTOMCOUNTER, 1, 2.0); MeasureSetBound("Pe_Session Close Time", MEASURE_COUNTER_CUSTOMCOUNTER, 2, 4.0); MeasureSetBound("Pe_Response Time", MEASURE_COUNTER_CUSTOMCOUNTER, 1, 2.0); MeasureSetBound("Pe_Response Time", MEASURE_COUNTER_CUSTOMCOUNTER, 2, 4.0); MeasureSetBound("Pe_Open Session Time", MEASURE_COUNTER_CUSTOMCOUNTER, 1, 2.0); MeasureSetBound("Pe_Open Session Time", MEASURE_COUNTER_CUSTOMCOUNTER, 2, 4.0); QueryValues(); fOldOpenSessionTime := fOpenSessionTime; fOldOpenSessionCount := fOpenSessionCount; fOldResponseTime := fResponseTime; fOldResponseCount := fResponseCount; fOldSessionCloseTime := fSessionCloseTime; fOldSessionCloseCount := fSessionCloseCount; fOldRequestTime := fRequestTime; fOldRequestCount := fRequestCount; fOldAnonSessionRemovedTimeoutetc := fAnonSessionRemovedTimeoutetc; end TInit; transaction NoTRT_TMain begin QueryValues(); Print("Request Time: " + string(fRequestTime / fRequestCount)); if (fRequestCount fOldRequestCount) then MeasureIncFloat("Pe_Request Time", (fRequestTime - fOldRequestTime) / (fRequestCount - fOldRequestCount)); end; Print("Session Close Time: " + string(fSessionCloseTime / fSessionCloseCount)); if (fSessionCloseCount fOldSessionCloseCount) then MeasureIncFloat("Pe_Session Close Time", (fSessionCloseTime - fOldSessionCloseTime) / (fSessionCloseCount - fOldSessionCloseCount)); end; if (fResponseCount fOldResponseCount) then MeasureIncFloat("Pe_Response Time", fResponseTime - fOldResponseTime) / (fResponseCount - fOldResponseCount)); end; Print("Open Session Time: " + string(fOpenSessionTime / fOpenSessionCount)); if (fOpenSessionCount fOldOpenSessionCount) then MeasureIncFloat("Pe_Open Session Time", (fOpenSessionTime - fOldOpenSessionTime) / (fOpenSessionCount - fOldOpenSessionCount)); end; if (fAnonSessionRemovedTimeoutetc fOldAnonSessionRemovedTimeoutetc) then MeasureIncFloat("Av_Anon Session Removed (Timeout etc)", fAnonSessionRemovedTimeoutetc - fOldAnonSessionRemovedTimeoutetc); end; fOldOpenSessionTime := fOpenSessionTime; fOldOpenSessionCount := fOpenSessionCount; fOldResponseTime := fResponseTime; fOldResponseCount := fResponseCount; fOldSessionCloseTime := fSessionCloseTime; fOldSessionCloseCount := fSessionCloseCount; fOldRequestTime := fRequestTime; fOldRequestCount := fRequestCount; fOldAnonSessionRemovedTimeoutetc := fAnonSessionRemovedTimeoutetc; end NoTrt_TMain; Notes:- Change the Project Attributes to the following example:- host: standardhost.mycompany.com [your server/domain name for the URL] port : 80 application : sales_enu pagename : _stats.swe Note: Attributes must be case sensitive. SWE = Siebel Web Engine All times given in seconds.
↧
Wiki Page: How can I monitor Websphere application server version 5.0 with Global Security enabled?
If Global Security is enabled on the Websphere server then you may need to make some configuration changes on the server so that monitoring via Performance Explorer is possible. You should change the /properties/soap.client.props file with following entries. com.ibm.SOAP.securityEnabled=true # JMX SOAP connector identity com.ibm.SOAP.loginUserid=youruserid com.ibm.SOAP.loginPassword=yourpassword You should then enter credentials in the datasource wizard.
↧