Sun Cluster Data Service for SAP Web Application Server Guide for Solaris OS

Installing and Configuring SAP Web Application Server

To enable Sun Cluster HA for SAP Web Application Server to make SAP Web Application Server highly available, additional installation and configuration operations are required. These operations supplement the standard installation and standard configuration of the SAP Web Application Server.

The procedures in this section describe the installation and configuration of the following components of the SAP Web Application Server.

Configuring Your Highly Available Database

SAP supports various databases. You must configure the resource type, the resource group, and the resources for the database that you plan to use so that the database will be highly available. See details in the appropriate Sun Cluster Data Services document for the database that you plan to use.

ProcedureHow to Install and Configure the SAP Web Application Server and the SAP J2EE Engine

Steps
  1. On one node of the cluster, install the SAP Web Application Server software.

    Refer to the SAP installation documentation.

  2. On the same node, if you are using the SAP J2EE engine, install the SAP J2EE engine software.

    Refer to the SAP installation documentation.

  3. Create profiles for the SAP enqueue server and the SAP replica server.

    Refer to the SAP document SAP Web Application Server in Switchover Environments, UNIX Platforms.


    Note –

    The SAPSYSTEM parameter in the SAP enqueue server profile and in the SAP replica server profile must have the same value.


  4. Remove the startup of the SAP enqueue server from the SAP start profile.

    In the Sun Cluster environment, the SAP enqueue server resource starts the SAP enqueue server application. Therefore, if the SAP start profile contains the startup of the SAP enqueue server, remove it. Otherwise, the SAP enqueue server will be started more than once.

  5. If the Process Monitor Facility (PMF) will be used with the SAP web application server component, the saposcol program must be started outside of the cluster environment on all the nodes that will run the SAP Web Application Server.

    The SUNW.sapwebas resource type represents the SAP web application server component in a Sun Cluster configuration. The extension property Webas_Use_Pmf for this resource type determines if PMF will be used with the SAP web application server component.

    If PMF is used, you must start the saposcol program outside of the cluster environment so that PMF does not stop the saposcol program when it stops the resource for the SAP web application server component.

    The saposcol program must be available to all the nodes that are running the SAP Web Application Server. Therefore, the program must be either in a global file system or in the local file system of each node.

    1. If the saposcol program is on the global file system and you want it to be on the local file systems, copy the program to the local file systems by performing the following actions on each node:

      • On the installation node, if the saposcol program was started separately, stop the saposcol program.

      • If the SAP system is running, stop the SAP system.

      • If the file system is not mounted, mount it to the installation node.

      • Copy the saposcol executable file from the installation node to a local directory on the target node.


        # cp /usr/sap/SAPSID/SYS/exe/saposcol destination-directory
        

        Note that SAPSID is the SAP system identification.

    2. Remove the startup of the saposcol program from the SAP start script of the SAP web application server component that will be configured to use PMF. This action is also mentioned in Step 9, together with other modifications to the SAP start and stop scripts.

    3. Start the saposcol program.

      • If the program is on the global file system, start the program from the global location.

      • If the program is on the local file system, start the program from the local directory on each node.

  6. Create a script to return logical host names for the SAP message server and the SAP web application server components.

    Create a script named loghost, which returns the logical host names for each instance of both the SAP message server and the SAP web application server components. The script must be located in the directory $HOME, where $HOME specifies the home directory of the SAP user. The following commands provide an example of the loghost script.


    if [ "$1" = "DVEBMGS00" ]; then
        echo loghost-1;
    fi
    if [ "$1" = "SCS01" ]; then
        echo loghost-2;
    fi
    if [ "$1" = "D02" ]; then
        echo loghost-3;
    fi

    Note –

    If the SAP web application server component is configured as a scalable resource, you will modify this script in a later section, How to Modify the Installation for a Scalable SAP Web Application Server Component.


  7. If you are using the SAP J2EE engine, modify the loghost script to return logical host names for the SAP J2EE engine.

    Modify the script loghost, which was created in Step 6, to return the logical host names for each instance of the SAP J2EE engine. The script is located in the directory $HOME, where $HOME specifies the home directory of the SAP user. The following commands provide an example of the modification of the loghost script.


    if [ "$1" = "JC00" ]; then
        echo loghost-4;
    fi
    if [ "$1" = "SCS02" ]; then
        echo loghost-5;
    fi
    if [ "$1" = "J02" ]; then
        echo loghost-6;
    fi
  8. Set the file permissions for the script so that it is executable.


    # chmod 755 $HOME/loghost
    
  9. Modify the SAP start and stop scripts as follows:

    1. Ensure the uniqueness of the instance names.

      Add a sort -u command to the end of the line that begins with INSTANCE= in the SAP start and stop scripts. This command sorts all the instance names that are found and retains only the unique names.

      The original line is the following, where arg is the argument number, for example, 1 or 2.


      INSTANCE=`echo $arg | awk '/SCS[0-9][0-9]/{print $1}
      /ASCS[0-9][0-9]/{print $1} /DVEBMGS[0-9][0-9]/{print $1} 
      /JC[0-9][0-9]/{print $1} /D[0-9][0-9]/{print $1} 
      /J[0-9][0-9]/{print $1} /G[0-9][0-9]/{print $1}'`

      After you add a pipe to a sort -u command at the end, the line is the following, where arg is the argument number, for example, 1 or 2.


      INSTANCE=`echo $arg | awk '/SCS[0-9][0-9]/{print $1}
      /ASCS[0-9][0-9]/{print $1} /DVEBMGS[0-9][0-9]/{print $1} 
      /JC[0-9][0-9]/{print $1} /D[0-9][0-9]/{print $1} 
      /J[0-9][0-9]/{print $1} /G[0-9][0-9]/{print $1}' | sort -u`
    2. Update the SAP start and stop scripts to call the script that returns logical host names.

      In the section for setting HOSTNAME, insert the name of the script $HOME/loghost, which you created in Step 6. This action is accomplished by replacing the line HOSTNAME='hostname' with the lines in the following example.


      < remove
      > add
      
      # Set HOSTNAME
      case `uname` in
         OS/390* | z/OS* | AIX* | BOS*)
           HOSTNAME=`hostname -s`
           ;;
         *)
      <    HOSTNAME=`hostname`
      >    if [ $# -eq 2 ]; then
      >         HOSTNAME=`$HOME/loghost $2`
      >    else
      >         HOSTNAME=`hostname`
      >    fi
           ;;
      esac
    3. In order to source the user's profile and thus also source the SAP-specific environment files, add the following line as the second line of the SAP start and stop scripts.

      . $HOME/.profile

    4. Remove the DB check for the SAP central services components from the SAP start script. The SAP central services components are the SAP enqueue server, the SAP replica server, and the SAP message server.

    5. If PMF is used with the SAP web application server, remove the startup of the saposcol program from the SAP start script that is used by this SAP web application server. See also Step 5.

  10. Modify the file names and contents to use logical host names instead of physical host names.

    The standard SAP Web Application Server installation uses the physical host name of the node on which the SAP system is installed. You must modify SAP Web Application Server to use a logical host name so that SAP Web Application Server works in a Sun Cluster environment.


    Note –

    If the SAP web application server component is configured as a scalable resource, you will make additional modifications in a later section, How to Modify the Installation for a Scalable SAP Web Application Server Component.


    1. Make sure that the names of the “.” files in the home directory of the SAP user do not contain the physical host name.

      In the following example, the physical host name is removed from the names of the “.” files.


      for i in .*physical-hostname.*
        > do
        > mv $i `echo $i | sed "s/_physical-hostname//"`
        > done
    2. Make sure that the names and contents of the database “.” files refer to logical host name that is used by the database and not to physical host names.

    3. Change the file names and contents of the profile files to use the logical host name corresponding to the individual component instead of physical host names.

      These files are located in /usr/sap/SAPSID/SYS/profile, where SAPSID is the SAP system identification.

    4. Add the following logical-host-name entries to each SAPSID_INSTANCE_NAMESYSTEM_NUMBER_logical-hostname file that is located in the SAP profile directory. Note that SAPSID is the SAP system identification, INSTANCE_NAME is the SAP instance name, and SYSTEM_NUMBER is the SAP system number.

      SAPLOCALHOST=logical-hostname

      SAPLOCALHOSTFULL=logical-hostname.domain

    5. Replace the physical host name with the logical host name in the file /usr/sap/SAPSID/INSTANCE_NAME/igs/conf/igs.xml. Note that SAPSID is the SAP system identification and INSTANCE_NAME is the SAP instance name.

  11. Modify the parameter enq/serverhost in the SAP instance profile.

    After installation, the parameter enq/serverhost in the SAP instance profile is set to the physical host name. Modify this parameter to contain the name of the logical host on which the SAP enqueue server will be running.

  12. If you are using the SAP J2EE engine, modify the SAP J2EE engine settings to reference the logical host name.

    1. Determine the location of the configuration scripts.

      • If the ABAP engine component is installed without the SAP J2EE engine component, or if the SAP J2EE engine component is installed as a stand-alone component, the scripts are located in the directory /usr/sap/SAPSID/JCINSTANCE_NUMBER/j2ee/configtool.

      • If The ABAP engine component is installed with the SAP J2EE engine, the scripts are located in the directory /usr/sap/SAPSID/DVEBMGSINSTANCE_NUMBER/j2ee/configtool.

    2. Run the configtool.sh script, which is located in the directory that was determined in Step a. Use this script to change all occurrences of a physical host name to the corresponding logical host name. This action includes setting the instance host and the JDBC URL to point to the logical host for the database.

    3. Bring online the database with the logical host for the database.

    4. Use the SAP configuration tool to modify the settings in the remaining steps of this procedure.

      To start the SAP configuration tool, you can use the script offlinecfgeditor.sh, which is located in the directory that was determined in Step a.

    5. In the LockingManager section, modify enqu.host to refer to the logical host name for the SAP enqueue server. Change this entry under all the settings (the general and the instance-specific).

    6. In the LockingManager section, modify all occurrences of enq.profile.filename to use the logical host name. Change this entry under all the settings (the general and the instance-specific).

      For example, change SAPSID_JCINSTANCE_NUMBER_physicalhost to SAPSID_JCINSTANCE_NUMBER_logicalhost. The new file name should be the same as the file name in the file /sapmnt/SAPSID/profile.

    7. In the ClusterManager section, change instance.ms.host to refer to the logical host name for the SAP message server. Change this entry under all the settings (the general and the instance-specific).

    8. Modify the instance.properties.IDxxxxxx to refer to the logical host.

      For each instance.properties.IDxxxxxx, modify all occurrences of a physical host name to the corresponding logical host name.

    9. Ensure that the enqu.port parameter and the URL in the dbpool parameter have the correct settings.

ProcedureHow to Modify the Installation for a Scalable SAP Web Application Server Component

The SAP web application server component of the SAP Web Application Server platform can be configured either as a failover resource or as a scalable resource.

Steps
  1. On each node on which you plan to run the scalable SAP web application server component resource group, create a local file system.

    This file system can be defined as you choose, as in the following example.


    # mkdir /usr/sap/local/SAPSID/INSTANCE_NAME
    

    Note that SAPSID represents the SAP system identification and INSTANCE_NAME represents the name of the SAP web application server instance.

  2. Copy the dialog instance from the node where it was installed to the local file systems on the other nodes.

  3. Create symbolic links to the dialog instance.

    On each node, create a symbolic link to the local file system from the required directory path for the installation, as in the following example.


    # ln -s  /usr/sap/local/SAPSID/INSTANCE_NAME \ 
    /usr/sap/SAPSID/INSTANCE_NAME
    
  4. Become the SAP administration user sapsidadm in order to perform the remaining steps in this procedure.

    • If the SAP Web Application Server software was installed on the global file system, perform the remaining steps on the node where the software was installed.

    • If the SAP Web Application Server software was installed on the local file systems, perform the remaining steps on each node on which you plan to run the scalable SAP web application server component resource group.

  5. Update the script $HOME/loghost to return the physical host name.

    A scalable resource group does not contain a logical host. Therefore, if a resource group for the SAP web application server component is configured to be scalable, you must update the script $HOME/loghost to return the physical host name. In the following example, D84 is the full name of the dialog instance.


    if [ "$1" = "D84" ]; then
      echo `hostname`; 
    fi
  6. Update the SAP start and stop scripts with unique names for the log files.

    When the SAP web application server component resource group is configured to be scalable, multiple instances of the application can be running simultaneously on different nodes. If all instances write to the same log file, they overwrite previously written information. Therefore, change the names of the log files that are specified in the SAP start and stop scripts so that they have unique names. Renaming the log files ensures that each node writes to a unique file. In the following example, the node name is appended to the log file name.

    Example of entry in script before updating:

    LOGFILE=$R3S_LOGDIR/`basename ${0}_${INSTANCE}.log`

    Example of entry in script after updating:

    LOGFILE=$R3S_LOGDIR/`basename ${0}_${INSTANCE}`_`uname -n`.log

  7. Make sure that the parameter enq/serverhost in the SAP instance profile contains the name of the logical host on which the SAP enqueue server is running.

  8. Verify the instance parameters.

    Start the configuration tool with the script offlinecfgeditor.sh, which is located in the directory /usr/sap/SAPSID/JCINSTANCE_NUMBER/j2ee/configtool.

    • Ensure that the cluster_data instance parameter is set to Propertysheet instance.properties.IDxxxxxx.

    • Ensure that instance.ms.host is set to the logical host name.

ProcedureHow to Enable the SAP Web Application Server to Run in a Cluster

The following resource groups are created in this procedure:

Note that the procedure to enable the SAP J2EE engine to run in a cluster is located in a separate section. See How to Enable the Stand-Alone SAP J2EE Engine to Run in a Cluster.

Steps
  1. Become superuser on a cluster node.

  2. Create a resource group for the SAP central services.

    The SAP central services resource group is a failover resource group to contain the SAP enqueue server resource, the SAP message server resource, and the logical host name for these resources.


    # scrgadm -a  -g central-rg
    
    -a

    Specifies that a new resource group is to be added.

    -g central-rg

    Specifies the name of the resource group to be added. This name can be your choice but must be unique for the resource groups within the cluster.

  3. Add a logical-host-name resource to the resource group that you created in Step 2.


    # scrgadm -a -L -g central-rg  -l central-logical-hostname [ -n netiflist]
    -a

    Specifies that a new configuration is to be added.

    -L

    Specifies that a logical-host-name resource is to be added.

    -g central-rg

    Specifies the logical-host-name resource to be added to the resource group that you created in Step 2.

    -l central-logical-hostname

    Specifies the logical-host name of the SAP central services resource.

    -n netiflist

    Specifies a comma-separated list of network interfaces. All nodes in the node list of the resource group must be represented in the list of network interfaces. Specifying a list of network interfaces is optional. If you omit the list, an attempt is made for each node to discover a network interface on the subnet that the host-name list identifies.

  4. Bring online the SAP central services resource group.


    # scswitch -Z  -g central-rg
    
    -Z

    Specifies that a resource group is to be brought online.

    -g central-rg

    Specifies the name of the resource group to be brought online. This name is the name of the resource group that was created in Step 2.

  5. Create a resource group for the SAP replica server.

    The SAP replica server resource group is a failover resource group to contain the SAP replica server resource and the logical host name for this resource.


    # scrgadm -a  -g repl-rg
    
    -a

    Specifies that a new resource group is to be added.

    -g repl-rg

    Specifies the name of the resource group to be added. This name can be your choice but must be unique for the resource groups within the cluster.

  6. Add a logical-host-name resource to the resource group that you created in Step 5.


    # scrgadm -a -L -g repl-rg  -l saprepl-logical-hostname [ -n netiflist]
    -a

    Specifies that a new configuration is to be added.

    -L

    Specifies that a logical-host-name resource is to be added.

    -g repl-rg

    Specifies the logical-host-name resource to be added to the resource group that you created in Step 5.

    -l saprepl-logical-hostname

    Specifies the logical-host name of the SAP replica server resource.

    -n netiflist

    Specifies a comma-separated list of network interfaces. All nodes in the node list of the resource group must be represented in the list of network interfaces. Specifying a list of network interfaces is optional. If you omit the list, an attempt is made for each node to discover a network interface on the subnet that the host-name list identifies.

  7. Bring online the SAP replica server resource group.


    # scswitch -Z  -g repl-rg
    
    -Z

    Specifies that a resource group is to be brought online.

    -g repl-rg

    Specifies the name of the resource group to be brought online. This name is the name of the resource group that was created in Step 5.

  8. Set weak positive affinity between the SAP central services resource group and the SAP replica server resource group.

    The weak positive affinity setting ensures that, in case of failover, the SAP central services resource group fails over to the node where the SAP replica server resource group has been running.


    # scrgadm -c  -g central-rg  -y RG_affinities=+repl-rg
    
    -c

    Specifies that a resource group is to be modified

    -g central-rg

    Specifies the name of the resource group to be modified

    -y RG_affinities=+repl-rg

    Specifies that the central-rg resource group has weak positive affinity with the repl-rg resource group

  9. If the SAP central services resource group and the SAP replica server resource group are online on the same node, switch one of them to another node.

    The two resource groups must be mastered on different nodes before the strong negative affinity can be set between the resource groups.


    # scswitch -z  -g rg  -h node
    
    -z

    Specifies that a resource group is to be switched to another node.

    -g rg

    Specifies the name of the resource group to be switched. This resource group can be either the SAP central services resource group or the SAP replica server resource group.

    -h node

    Specifies the node to which the resource group is to be switched.

  10. Set strong negative affinity between the SAP replica server resource group and the SAP central services resource group.

    The strong negative affinity setting ensures that node failover behavior is appropriate. The SAP central services resource group fails over to the node where the SAP replica server resource group has been running. The SAP replica server resource group then fails over to another available node.

    The SAP replica server resource group is never brought online nor allowed to remain online on a node on which the SAP central services resource group is online.


    # scrgadm -c  -g repl-rg  -y RG_affinities=--central-rg
    
    -c

    Specifies that a resource group is to be modified

    -g repl-rg

    Specifies the name of the resource group to be modified

    -y RG_affinities=--central-rg

    Specifies that the repl-rg resource group has strong negative affinity with the central-rg resource group

  11. Create a resource group for the SAP web application server component.

    The SAP web application server resource group can be configured as a failover or scalable resource group to contain the resource for the SAP web application server component. If the SAP web application server is configured as a failover resource, the logical host name for this resource is also contained in the SAP web application server resource group.

    • To create a failover resource group, run the following command.


      # scrgadm -a  -g webas-rg
      
    • To create a scalable resource group, run the following command.


      # scrgadm -a  -g scalwebas-rg \
      -y Maximum_primaries=value  -y Desired_primaries=value
      
    -a

    Specifies that a new resource group is to be added.

    -g webas-rg

    Specifies the name of the failover resource group to be added. This name can be your choice but must be unique for the resource groups within the cluster.

    -g scalwebas-rg

    Specifies the name of the scalable resource group to be added. This name can be your choice but must be unique for the resource groups within the cluster.

    -y Maximum_primaries=value

    Specifies the maximum number of primary nodes for this scalable resource group.

    -y Desired_primaries=value

    Specifies the desired number of primary nodes for this scalable resource group.

  12. If the resource group that you created in Step 11 is configured as a failover resource group, add a logical-host-name resource to the resource group.

    If the resource group that you created in Step 11 is configured as a scalable resource group, skip this step.


    # scrgadm -a -L -g webas-rg  -l webas-logical-hostname [ -n netiflist]
    -a

    Specifies that a new configuration is to be added.

    -L

    Specifies that a logical-host-name resource is to be added.

    -g webas-rg

    Specifies the logical-host-name resource to be added to the resource group that you created in Step 11.

    -l webas-logical-hostname

    Specifies the logical-host name of the SAP web application server component resource.

    -n netiflist

    Specifies a comma-separated list of network interfaces. All nodes in the node list of the resource group must be represented in the list of network interfaces. Specifying a list of network interfaces is optional. If you omit the list, an attempt is made for each node to discover a network interface on the subnet that the host-name list identifies.

  13. Bring online the SAP web application server resource group.


    # scswitch -Z  -g webas-rg
    
    -Z

    Specifies that a resource group is to be brought online.

    -g webas-rg

    Specifies the name of the resource group to be brought online. This name is the name of the resource group that was created in Step 11.

  14. (Optional) Consider configuring your cluster to off-load noncritical resource groups.

    You might plan to run a noncritical, lower-priority SAP web application server component resource on a node to which a critical, higher-priority SAP central services resource can fail over. In this situation, consider setting strong negative affinity between the resource groups. This setting ensures that, if a higher-priority SAP central services resource fails over to the node where a lower-priority SAP web application server component resource is running, the lower-priority resource is off-loaded, thereby automatically freeing the node's resources to be used for the critical SAP central services resource.


    # scrgadm -c  -g webas-rg  -y RG_affinities=--central-rg
    
    -c

    Specifies that a resource group is to be modified.

    -g webas-rg

    Specifies the name of the resource group to be modified.

    -y RG_affinities=--central-rg

    Specifies that the webas-rg resource group has strong negative affinity with the central-rg resource group. If the central-rg resource group fails over to the node where the webas-rg resource group is running, the webas-rg resource group is off-loaded.

  15. Copy all system files that were changed during the SAP Web Application Server installation and configuration process to all the nodes that are to run the SAP Web Application Server resources. These files might include the following:

    • /etc/passwd

    • /etc/group

    • /etc/system

    • /etc/services

ProcedureHow to Enable the Stand-Alone SAP J2EE Engine to Run in a Cluster

Steps
  1. Create a resource group for the SAP J2EE engine.

    The SAP J2EE engine resource group can be configured as a failover or scalable resource group to contain the resource for the SAP J2EE engine. If the SAP J2EE engine is configured as a failover resource, the logical host name for this resource is also contained in this resource group.

    • To create a failover resource group, run the following command.


      # scrgadm -a  -g j2ee-rg
      
    • To create a scalable resource group, run the following command.


      # scrgadm -a  -g j2ee-rg \
      -y Maximum_primaries=value  -y Desired_primaries=value
      
    -a

    Specifies that a new resource group is to be added.

    -g j2ee-rg

    Specifies the name of the resource group to be added. This name can be your choice but must be unique for the resource groups within the cluster. Use this name when configuring the SAP J2EE engine resource in Step 4 in How to Register and Configure a Stand-Alone SAP J2EE Engine Resource.

    -y Maximum_primaries=value

    Specifies the maximum number of primary nodes for the scalable resource group.

    -y Desired_primaries=value

    Specifies the desired number of primary nodes for the scalable resource group.

  2. If the resource group that you created in Step 1 is configured as a failover resource group, add a logical-host-name resource to the resource group.

    If the resource group that you created in Step 1 is configured as a scalable resource group, skip this step.


    # scrgadm -a -L -g j2ee-rg  -l j2ee-logical-hostname [ -n netiflist]
    -a

    Specifies that a new configuration is to be added.

    -L

    Specifies that a logical-host-name resource is to be added.

    -g j2ee-rg

    Specifies the logical-host-name resource to be added to the resource group that you created in Step 1.

    -l j2ee-logical-hostname

    Specifies the logical-host name of the SAP J2EE engine resource. Use this name when configuring the SAP J2EE engine resource in Step 4 in How to Register and Configure a Stand-Alone SAP J2EE Engine Resource.

    -n netiflist

    Specifies a comma-separated list of network interfaces. All nodes in the node list of the resource group must be represented in the list of network interfaces. Specifying a list of network interfaces is optional. If you omit the list, an attempt is made for each node to discover a network interface on the subnet that the host-name list identifies.

  3. Bring online the SAP J2EE engine resource group.


    # scswitch -Z  -g j2ee-rg
    
    -Z

    Specifies that a resource group is to be brought online.

    -g j2ee-rg

    Specifies the name of the resource group to be brought online. This name is the name of the resource group that was created in Step 1.