Skip to Content

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:

/wp-content/uploads/2013/08/icm1_231516.jpg

ICM configuration

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

PSMON

To make this change effective, ICM needs to be restarted. This is done using jsmon with the correct profile as parameter:

jmson pf=/usr/sap/<INST>/SYS/profile/<INST>_J00_<name>

The process related task explains how to restart ICM.

/wp-content/uploads/2013/08/icm2_231517.jpg

The command is: process restart <idx>. To get the ID of ICM, take a look at the process list. Issue the command: process view

/wp-content/uploads/2013/08/icm3_231593.jpg

The ID for ICM is 1 and the current state is running. To trigger a restart: process restart 1

/wp-content/uploads/2013/08/icm4_231594.jpg

Now the new configuration is effective and the telnet server of NW Java can be accessed.

/wp-content/uploads/2013/08/icm5_231595.jpg

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.

/wp-content/uploads/2013/08/icm6_231596.jpg

Kill the icman process: kill -9 <processed>.

Then restart the process with the above shown parameters.

/wp-content/uploads/2013/08/icm7_231597.jpg

This will result in a 503 error message from ICM

/wp-content/uploads/2013/08/icm8_231598.jpg

To report this post you need to login first.

7 Comments

You must be Logged on to comment or reply to a post.

  1. Tom Cenens

    Hi Tobias

    Thanks for sharing.

    Any idea of kill works instead of kill -9? For the Gateway for example kill will do the trick, kill -9 will also really “kill” off the gateway and prevent it from auto restarting.

    Best regards

    Tom

    (0) 
    1. Tobias Hofmann Post author

      I tried several kill parameters, the main problem was to restart the process in a functional way afterwards. The only way it always worked was with psmon.

      (0) 
  2. Isaias Freitas

    Hello Tobias,

    You might not need to restart the ICM, depending on which parameter you want to change.

    You can use the icmon tool (at OS level) or access the ICM Web Administration page.

    You can change the definition of the “icm/server_port_X” parameters on the fly through the admin page, for example ;-).

    Changes made with the icmon tool or with the web admin page are lost if the system is restarted. Thus, you would still need to make the change at the profile as well.

    Cheers!

    Isaías

     

    (0) 

Leave a Reply