eG Monitoring
 

Measures reported by AsAbapIcmTest

The Internet Communication Manager (ICM) facilitates communication between SAP system(s) and the internet using the HTTP, HTTPS, and SMTP protocols. Requests received from the internet are forwarded to SAP system for processing via the ICM. Likewise, the ICM also sends SAP requests to the internet, gets the feedback and transfers it to the SAP system.

The ICM is implemented as an independent process and is started and monitored by the dispatcher. The ICM process uses a pool of worker threads to parallel process the load. This is why, if a sudden/consistent slow down is noticed in a SAP system's interactons with the internet, the first place administrators need to check for inconsistencies is this thread pool. The absence of adequate threads in the pool can significantly impair the ICM's ability to uniformly distribute the request load across threads, thereby causing one/more threads be ove-utilized; ultimately, this will result in a slowdown! Besides erratic thread pool usage, the sudden unavailability of the ICM and over-utilization of ICM connections can also cause disturbances in a SAP system's internet communications. To ensure that such anomalies are promptly captured and corrected, administrators should keep an eye on the accessibility of the ICM, its thread pool usage, and availability of ICM connections. This is where the AsAbapIcmTest test helps!

This test periodically checks the availability, thread pool usage, and connection utilization of the ICM, and promptly reports the non-availability of the ICM, abnormal usage of worker threads by the ICM, and the over-utilization of ICM connections. This way, the test leads administrators to the probable causes for the breaks / slowness in the communication between the SAP system and the internet.

The measures made by this test are as follows:

Measurement Description Measurement Unit Interpretation
isAvailable Indicates whether/not the ICM is running.   This measure reports the value Yes if the ICM is running, and No if the ICM is not running.

The numeric values that correspond to the above-mentioned measure values are as follows:

Measure Value Numeric Value
Yes 100
No 0

Note:

By default, the test reports the above-mentioned Measure Values to indicate whether/not the ICM is available. However, in the graph of this measure, the same is represented using the numeric equivalents only.

CurrentThreads Indicates the number of threads that were currently created from the pool for processing requests. Number A high value denotes a high level of activity on the ICM.
FreeThreads Indicates the number of threads that can be created from the pool for processing requests. Number  
ThreadUtilization Indicates the percentage of maximum threads (in pool) that have been created currently for processing requests. Percent A value close to 100% denotes over-usage of threads. You may then have to increase the maximum threads in pool configuration to allow more threads to be created for processing requests, so that processing bottlenecks can be eliminated.
PercentageWaitThreads Indicates the percentage of maximum threads (in pool) to that are currently waiting for data to be processed. Percent Threads waiting for data from network or application server / server response / client response are classified as waiting threads. Threads waiting for a long time result in sustained increase in waiting threads and are indicative of a generic network / application server issue.
NumRequestsInQueue Indicates the number of requests waiting for free ICM threads. Number A consistent rise in this value could indicate a potential overload condition, typically caused by insufficient threads in pool. You may hence have to resize the pool to prevent requests from queuing up.
RequestQueueUsage Indicates the percentage of total requests that are in queue currently. Percent A value close to 100% is a cause for concern, as it indicates that almost all requests are being queued. This again points to a load-balancing irregularity, probably caused by the lack of adequate threads in the pool.
ConnectionsUsed Indicates the number of currently open connections. Number The number of simulatenously open connections and their sockets can be deduced from this measure.
ConnectionUsage Indicates the percentage of currently open connections. Percent Each request can create multiple connections. This measure therefore helps to gauge the level activity at the ICM (web dispatcher), so that the system load can be observed and the relevant profile parameters can be tuned accordingly. For instance, a value close to 100% for this measure, may mandate that the icm/max_conn parameter be increased, so that enough connections are always available.
InactiveServices Indicates the number of inactive ICM services. Number The detailed diagnosis of this measure provides details of the inactive services. These details include the service name, keep alive connection status, backend processing timeout, port, hostname and whether/not external bindings are used.