// ]]>

Tuesday, 7 January 2014



ICM (SMICM) and Gateway (SMGW) Differences and comparison: 

ICM and gateway are two ends of SAP systems communications. Through gateway system communicates with other SAP and Non SAP system e.g. SAP:BW,CRM,SCM: Non SAP : vertex,taxware so on .ICM helps to make communication with internet .So if there is any error in HTTP ,HTTPS and SMTP(Mail )  we always check logs in SMICM.
Always differentiate any issue in two parts when there is communication with user and other systems :
1-   When other systems are not able communicate with your sap system always make sure responsible RFC’s are working fine. Then check Gateway logs .Gateway logs always check with SMGW tcode. Details about logs and SMGW administration will discussion detail

2-   When there is some issue reported by end users  regarding connection issue with SMTP ,HTTP and HTTPS .We always check SMICM(ICM) logs to verify what is the error and how could be verified .
Let’s have some light how SMICM works and what are different influencing factor for the same:

*** Why I have make comparison between SMICM And SMGW because both are communication point to other system and user. Both  are playing very important role for  SAP motive of system integration .If SMICM not working  your end user can’t work and when SMGW  not working  No data can flow from to system . *****

Is the transaction which monitor and administer Internet Communication Manager, Which sends and receive requests to and from the internet.ICM must be up and running to access SMICM .

  • 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 plug-ins 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
    These memory-based communication objects are used to transfer data between the ICM and work processes (AS ABAP), or between the ICM and Java server processes (AS Java). 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. 

Most of the monitor related functions are available in GOTO  menu options .Following is the list of some useful functions :
Goto -> Trace File -> Display Start or Display End.
(Dev_icm : this is the trace file of ICM available at /usr/sap/SID/<Central instance>/work.)
Goto -> Parameters to display or change the ICM profile parameters.
Goto -> Statistics to activate, deactivate, display, and reset the ICM statictics.
GoTo -> Memory Pipes for information on the memory pipes that are used for data exchange between the ICM and the work process.
Goto -> Host Name Buffer ® Display or Reset.
Goto -> Services to monitor and administer the services (ports that are used for the ICM connections
Goto -> Release Info or choose Release Info to display information about the version of the ICM, the release and the patch level of the SAP kernel.
Goto -> HTTP Log you can display the following information about logging HTTP requests. 
Goto -> HTTP Server you can display information on the HTTP application server.

Each instance of an SAP System has a gateway. The gateway enables communication between work processes and external programs, as well as communication between work processes from different instances or SAP Systems.

Gateway Processes

The SAP Gateway is made up of various processes:
·        Gateway read process
·        Gateway monitor
These processes are described in the following topics.
Note :Earlier gateway releases that support DCAM and SNA have additional gateway work processes(gwwpgwwp.exe).

Gateway Read Process

Gateway read (gwrd, gwrd.exe) is the main process in the gateway system.
It is started by the application server (dispatcher) and checked by it periodically.
The gateway reader receives and processes all CPI-C requests.
Note: If the executable gwrd program is called without parameters or with the switch -help, the program outputs a description of the possible command parameters, as well as all the patches

Gateway Monitor

The gateway monitor (gwmon, gwmon.exe) is used to analyze and administer the SAP Gateway.
When you start it, you initially get a list of active CPI-C connections. You can call up all the other monitor functions via a menu.
You can monitor the gateway from the SAP System (transaction SMGW) or from the operating system. 



You can display a list of currently logged on systems via Goto -> Logged on systems .
The following values are displayed for each system that is logged on:
·        LU Name: With CPIC connections via TCP/IP, this field describes the host on which the partner program is running or supposed to run.

Note: The term "logical unit" is a term borrowed from SNA and describes a logical node in an SNA network. The remote partner program is intended to run on this node.

·        TP Name: Name of the transaction program or the name of the program that was started by the gateway.
·        System Type The following values are possible:

·         ¡        NORMAL_CLIENT : Normal client (external program)

·         ¡        LOCAL_R3: Local SAP System

·         ¡        REMOTE_GATEWAY: connection to remote gateway

·         ¡        FROM_REMOTE_GATEWAY: connection from a remote gateway

·         ¡        REGISTER_TP: Registered transaction program

·        Host Name: Name of host client is running on
·        Host Address: All TCP/IP names on the host. If there are several network cards then there may be several entries here. Usually 5 alternative host names are supported.

·        Last Req: Time of last activity
·        Status: Connection status to a client or another gateway at TCP/IP level. The default value is CONNECTED.

In the following cases connections are highlighted in color in the gateway monitor.
·         ¡        Connections with status PENDING (handshake while opening the connection) are colored orange

·         ¡        If the data packets could not be fully written in the network connections, the connection is colored green. If this status lasts for a while, it indicates network problems, or the partner program cannot read any data from the network, because it is busy with other tasks that take time (for example, BRBACKUP).

 Goto -> Logged On Systems, you can either delete a client or display detailed information.  
What would happen if your Gateway is not working?

1-     No RFC is working

2-     No connection with other sap system and non sap systems

3-     In dual stack case : No connection between ABAP instance and JAVA instance. Java instance will go down. But as per new scenarios Netweaver 7.10 Onwards JAVA instance and ABAP instance would be working independently and communicate through JCO rfc connection only. So there is no master slave concept between java instance and ABAP instance (My concept) .Why I have  called ABAP as master instance and Java as slave .Because ABAP start java instance and Java instance can be stopped independently. Without affect ABAP instance .But You can to run java instance without ABAP instance.