SAP WAS ICM Threads Test
The Internet Communication Manager ensures that communication between the SAP System (SAP Web Application Server) and the outside world via HTTP, HTTPS and SMTP protocols works properly. In its role as a server, the ICM can process requests from the Internet that arrive as URLs with the server/port combination that the ICM can listen to. The ICM then calls the relevant local handler for the URL in question.
The ICM process uses threads to parallel process the load. The following illustration shows a detailed overview of the ICM.
Figure 1 : Detailed overview of the ICM
Besides the pool of worker threads, which process incoming requests, the following ICM components are also implemented as threads:
- Thread Control: This thread accepts the incoming TCP/IP requests and creates (or wakes) a worker thread from the thread pool to process the request. From this point on, thread control initializes the connection info data.
- Worker Threads: These threads handle connection requests and responses. A worker thread contains an I/O handler for the network input and output, diverse plugins for the various supported protocols (HTTP, SMTP,…), which are required to be able to decide when the sent packet is finished (depends on the protocol).
- Watchdog: Usually, a worker thread waits for the response, regardless of whether the worker thread is a server or a client.If a timeout occurs, the watchdog takes on the task of waiting for the response. This makes the worker thread available for other requests. When the watchdog receives the response, it informs the thread control components, which then call a worker thread.
- Signal Handler: This thread processes signals sent from the operating system or from another process (for example, the dispatcher).
- Connection Info: This table contains information about the state of the connection, the memory pipes, and the plug-in data for every existing network connection.
- Memory Pipes: Memory pipes are memory-based communication objects that handle data transfer between the ICM and the work processes. For each connection there are four pipes: for each request and response one data pipe and an OOB (Out Of Band) pipe. The OOB pipe is used for control data.
- Internet Server Cache: The ICM contains another cache to enable repeated requests to be quickly responded to. This cache is not shown in the graphic
If any of these threads is unavailable or is slow, then HTTP/S requests received by the SAP WAS cannot be serviced quickly. Such processing delays can severely hamper the experience of Internet users with the SAP. This is why, it is imperative that SAP administrators proactively detect such slowdowns, accurately identify when the slowdown occurred, and pinpoint the precise thread responsible for it. This is where the SAP WAS ICM Threads test helps! This test auto-discovers the threads that are at work in the ICM and reports the current state of each thread, what type of work each thread is performing presently, and how quickly that thread is doing that work. By closely monitoring the threads, administrators can isolate idle threads and those that are taking too long to process requests.
Target of the test : A SAP NetWeaver Application Server
Agent deploying the test : An internal/remote agent
Outputs of the test : One set of results for every ICM thread.
Parameter | Description |
---|---|
Test period |
How often should the test be executed |
Host |
Specify the server for which the test is to be configured. |
Port |
The port number at which the specified server listens. |
WSDL Port |
This test uses the SAPControl web service to pull metrics on application and service status. To enable the test to communicate with the web service, you need to configure the test with the port number of the web service. Therefore, specify the port number of the SAPControl web service against WSDL Port. To determine the exact port number of the SAPControl web service, you can look up the etc/services file on the SAP WAS being monitored. If the port number is not declared in the etc/services file, you can specify the default port number of the web service against WSDL Port. If the web service is not SSL-enabled, then the default port number of the web service will be: 5<NR>13. Similarly, if the web service is SSL-enabled, then the default port number of the web service will be: 5<NR>14. <NR> in the port number refers to the system number of the SAP server being monitored. The system number is an indicator of the TCP/IP port at which the SAP server listens. For example, for a server that listens at port 3200, the system number will be ‘00’. Similarly, if the SAP server port is 3201, the system number will have to be specified as ‘01’. Accordingly, the default port number of an SSL-enabled SAPControl web service will be 50014 , if the system number is 00, or 50114, if the system number is 01. |
OS Username and OS Password |
To enable the test to access the SAPControl web service and determine component state, you need to configure the OS Username and OS Password parameters of the test with the credentials (i.e., name and password) of an OS user, who fulfills one of the following conditions:
|
Confirm Password |
Confirm the OS Password by retyping it here. |
SSL |
Set this flag to Yes, if the SAPControl web service is SSL-enabled. Set this flag to No, if the SAPControl web service is not SSL-enabled. |
Measurement | Description | Measurement Unit | Interpretation | |||||||||||||||||||||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Status |
Indicates the current status of this thread. |
|
The values that this measure can report, what they mean, and their corresponding numeric values are discussed in the table below:
Note: By default, the test reports the Measure Values in the table above to indicate thread status. In the graph of this measure however, the same is represented using the numeric equivalents only. |
|||||||||||||||||||||||||||||||||||||||||||||
Current operation
|
Indicates the operation that this thread is currently performing.
|
|
The values that this measure can report, what they mean, and their corresponding numeric values are discussed in the table below:
Note: By default, the test reports the Measure Values in the table above to indicate operational status. In the graph of this measure however, the same is represented using the numeric equivalents only. |
|||||||||||||||||||||||||||||||||||||||||||||
Processing rate |
Indicates the rate at which this thread is processing requests. |
Requests/Sec |
A consistent drop in the value of this measure could indicate a processing bottleneck. Compare the value of this measure across threads to know which thread is the slowest. |