Was this page helpful to you?
Do you have any additional feedback?
Internet Communication Manager (ICM)
The Internet Communication Manager ensures that communication between the SAP System (SAP NetWeaver 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.
You need the ICM if you want your SAP application server to communicate with the Internet via HTTP, HTTPS or SMTP, like Web applications do with Web Dynpro ABAP.
ICM in the NW Application Server
The ICM is a component of the SAP NetWeaver Application Server. It is implemented as a separate process that is started and monitored by the dispatcher. In the profile parameters, you can set whether the ICM is to be started and how it is to be configured.
SAP Web Dispatcher
The ICM and the SAP Web Dispatcher use the same code basis. The main difference between them is that the Web dispatcher performs load balancing, and passes requests to ICMs on the connected application servers rather than to work processes. This relationship makes it possible to share profile parameters and administration options. The structure of the documentation makes it clear what applies to the ICM only and what applies also to the Web dispatcher.
The ICM process uses threads to parallelize the load.
The following illustration shows a detailed overview of the ICM.
ICM: Components and Communication Channels
Besides the pool of worker threads, which process incoming requests, the following ICM components are also implemented as threads:
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.
These threads handle connection requests and responses. A worker thread contains an I/O handler for the network input and output and diverse plug-ins for the various supported protocols (HTTP, SMTP, and so on) that are required to be able to decide when the sent packet is finished (depends on the protocol). You can find more information about processing requests under Processing HTTP Requests.
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.
This thread processes signals sent from the operating system or from another process (for example, the dispatcher).
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 are memory-based communication objects that handle data transfer between the ICM and the work processes. There are four pipes for every connection: One data pipe per request and response and one out-of-band (OOP) pipe. The OOB pipe is used for control data.
Internet Server Cache
The ICM contains another cache to enable a quick response to repeated requests. This cache is not shown in the graphic. For more information, see ICM Server Cache.
The following content is not part of SAP product documentation. For more information, see the following disclaimer .