ICM is the web server for NetWeaver Java >= 7.1. Request directed to the NetWeaver server pass first through ICM. ICM therefore is an additional layer between your application and the end user. From time to time a change to the ICM configuration may be needed to adjust the parameters or enable new access methods.
As an example, the access to port 50008 shall serve to show how to configure ICM and make the change effective.
In a default configuration, access to port 50008 is not enabled. The telnet port itself is active on NW AS Java, but not reachable for external request:
To be able to reach port 50008, ICM needs to be configured to allow remote access to this port. To achieve this, just add the telnet port in the ICM configuration file.
- File location: /usr/sap/<INST>/SYS/profiles/<SYS>_J00_<name>
- Parameter: icm/server_port_3 = PROT=TELNET,PORT=50008
To make this change effective, ICM needs to be restarted. This is done using jsmon with the correct profile as parameter:
The process related task explains how to restart ICM.
The command is: process restart <idx>. To get the ID of ICM, take a look at the process list. Issue the command: process view
The ID for ICM is 1 and the current state is running. To trigger a restart: process restart 1
Now the new configuration is effective and the telnet server of NW Java can be accessed.
Why does ICM not re-read the configuration when it was changed and applies the change on the fly? Don’t ask me why SAP enforces a shutdown for a parameter change. Even worse that ICM is in front of your NetWeaver, so all current HTTP connections get lost and the end-user gets an error message. Hopefully the connection is only for a few seconds down, so the session data should still be valid and the users can continue with their work.
Why use psmon
Do not kill and restart the process like this:
Find the process ID.
Kill the icman process: kill -9 <processed>.
Then restart the process with the above shown parameters.
This will result in a 503 error message from ICM