Adding a new node to an existing cluster

To add a new InfoSphere® MDM node member to an existing IBM® WebSphere® Application Server cluster, you must create the node, attach it to the cluster, and then configure the node-cluster relationship.

About this task

A node in a WebSphere Application Server cluster is defined as a profile. It can exist on a separate machine or on a machine that already has one or more existing profiles configured.

Important: If the WebSphere Application Server version is 8.5.5.2 or below, then step 7 is mandatory. Otherwise, you can skip step 7.

Procedure

  1. Create a new WebSphere Application Server node and attach it to an existing WebSphere Application Server cluster by running the following command from a command line on the application server:
    cd /opt/IBM/WebSphere/AppServer/bin
    ./manageprofiles.sh -create -profileName profile_name –profilePath /opt/IBM/WebSphere/AppServer/profiles/profile_name –templatePath /opt/IBM/WebSphere/AppServer/profileTemplates/managed –federateLater false -dmgrAdminUserName username -dmgrAdminPassword password –dmgrHost dmgr_host -dmgrPort dmgr_port
    Replace the variables in the command with the appropriate profile name, path, user name, password, DMgr host, and DMgr port with the values appropriate for your deployment. For example:
    cd /opt/IBM/WebSphere/AppServer/bin
    ./manageprofiles.sh -create -profileName AppSrv03 –profilePath /opt/IBM/WebSphere/AppServer/profiles/AppSrv03 –templatePath /opt/IBM/WebSphere/AppServer/profileTemplates/managed –federateLater false -dmgrAdminUserName perf01 -dmgrAdminPassword perf01 –dmgrHost warhol-10ge -dmgrPort 8879
    When the command completes, an additional node will appear in the WebSphere Application Server Integrated Solutions Console (admin console).
  2. Navigate to System administration > Nodes to confirm that the new node is present.
  3. Add a new server instance to the cluster on the new node.
    Assuming that the name of the cluster is MDMCluster:
    1. In the WebSphere Application Server Integrated Solutions Console, navigate to WebSphere application server clusters > MDMCluster > Cluster members and click New.
    2. Give a name to the new member, select the new node from the drop down list, then save and synchronize the settings.
    3. Navigate to WebSphere application server clusters > MDMCluster > Cluster members to confirm that the new member is present in the list of servers.
    4. Synchronize the nodes in the deployment manager.
    5. Start the new member that was just added to the cluster.
  4. Add rows to the APPINSTANCE and CONFIGELEMENT configuration tables to represent the newly added node.
    1. Insert a row into the APPINSTANCE table as follows, replacing the variables in the example with the appropriate details of the new node:
      INSERT INTO <schema>.APPINSTANCE VALUES (id, <deployment id>, ‘<server_name>’, current_timestamp, ‘installer’)
    2. Insert a row into the CONFIGELEMENT table as follows, replacing the variables in the example with the appropriate details of the new node:
      INSERT INTO <schema>.CONFIGELEMENT (ELEMENT_ID, DEPLOYMENT_ID, NAME, VALUE, VALUE_DEFAULT, INSTANCE_ID, LAST_UPDATE_DT, LAST_UPDATE_USER, IS_DYNAMIC, DOCUMENTATION)
      SELECT <elementId>, <deploymentId>, NAME, <instanceId>, VALUE_DEFAULT, <instanceId>, CURRENT_TIMESTAMP, LAST_UPDATE_USER, IS_DYNAMIC, DOCUMENTATION FROM <schema>.CONFIGELEMENT WHERE NAME LIKE '%IBM/DWLCommonServices/KeyGeneration/instancePKIdentifier%' and ELEMENT_ID=2050
      Where:
      • <schema> is the schema name.
      • <elementId> is the primary key value in the CONFIGELEMENT table. Ensure that this value is unique.
      • <deploymentId> is the primary key of the row in the APPDEPLOYMENT table for this deployment.
      • <instanceId> is the primary key of the newly added member in the APPINSTANCE table.
      • 2050 is the primary key value assigned to the first member added to a cluster. Values for other columns are obtained from this row.

Run madconfig tasks to configure the new server.

After node synchronization in the Cluster, the native engine application in the newly added node will not have configuration files such as com.ibm.mdm.mds.jni.cfg and com.ibm.mdm.mds.jdbc.cfg. To generate these configuration files, the madconfig target install_native_engine_ear has to be invoked in a way that the files will get generated only at the newly added node.

  1. Generate the configuration files for the newly added node:
    1. Copy the file <MDM_INSTALL_HOME>/properties/install_native_engine_ear.properties into the folder <MDM_INSTALL_HOME>/mds/scripts, and rename the copied file "install_native_engine.ear.local.properties".
    2. In install_native_engine.ear.local.properties, modify all of the encrypted passwords to be plain text passwords.
      Note: The value of the trustFilePwd property is WebAS.
    3. In addition to the passwords, modify or add the following properties:
      • cluster.flag=false
      • cluster=None
      • node=<node_name>
      • server=<server_name>
      • configForNewNode=true
    4. Ensure you are in the folder <MDM_INSTALL_HOME>/mds/scripts.
    5. Run the madconfig target install_native_engine_ear using the following command:
      • On Microsoft Windows systems, run
        madconfig install_native_engine_ear -propertyfile install_native_engine_ear.local.properties
      • On Linux or UNIX systems, run
        ./madconfig.sh install_native_engine_ear -propertyfile install_native_engine_ear.local.properties
  2. Add key configurations (including custom properties, CLASSPATH entries, and environment entries) and application server variables (such as MDM_INSTANCE_NAME and MDM_DEPLOYMENT_NAME) to the newly added cluster member. Use the install_server_config madconfig target to perform these changes.
    1. Copy the file <MDM_INSTALL_HOME>/properties/install_server_config.properties into the folder <MDM_INSTALL_HOME>/mds/scripts, and rename the copied file "install_server_config.local.properties".
    2. In install_server_config.local.properties, modify all of the encrypted passwords to be plain text passwords.
      Note: The value of the trustFilePwd property is WebAS.
    3. In addition to the passwords, modify or add the following properties:
      • cluster.flag=false
      • cluster=None
      • node=<node_name>
      • server=<server_name>
      • configForNewNode=true
    4. Ensure you are in the folder <MDM_INSTALL_HOME>/mds/scripts.
    5. Run the madconfig target install_server_config using the following command:
      • On Microsoft Windows systems, run
        madconfig install_server_config -propertyfile install_server_config.local.properties
      • On Linux or UNIX systems, run
        ./madconfig.sh install_server_config -propertyfile install_server_config.local.properties
  3. If the WebSphere Application Server version is 8.5.5.2 or below, uninstall and then reinstall the business level application.
    Otherwise, any applications that use bundles will fail after the new node is added to the Network Deployment environment.
    Tip: For details on this issue, see the associated IBM Support document: http://www.ibm.com/support/docview.wss?rs=180&uid=swg1PI11211
    1. Uninstall the business level application:
      1. Log into the WebSphere Application Server Integrated Solutions Console on the server where InfoSphere MDM is installed.
      2. Navigate to Applications > Application Types > Business Level Applications > MDM-operational-server-EBA-<instanceID> and delete the component unit and corresponding properties JAR file. Save the change.
      3. Navigate to Applications > Application Types > Business Level Applications and delete the MDM-operational-server-EBA-<instanceID> application. Save the change.
      4. Navigate to Environment > OSGI bundle repositories > Internal bundle repository and delete the bundles com.ibm.mdm.mds.api.app, com.ibm.mdm.mds.jni.app, com.ibm.mdm.server.jaxrpcws.cba, and com.ibm.mdm.thirdparty.cba. Save the changes.
      5. Navigate to Applications > Application Types > Assets and delete the component unit and properties JAR file. Save and synchronize the change.
    2. Reinstall the business level application using the provided madconfig scripts:
      1. Copy the file <MDM_INSTALL_HOME>/properties/install_mdm_eba.properties to the folder <MDM_INSTALL_HOME>/mds/scripts.
      2. Rename the copied file install_mdm_eba.local.properties.
      3. Modify install_mdm_eba.local.properties to change all of the encrypted passwords to plain text passwords.
        Tip: The value of the trustFilePwd property is WebAS.
      4. Run the install_mdm_eba madconfig script.
        • For Microsoft Windows systems, run the following command:
          <MDM_INSTALL_HOME>\mds\scripts\madconfig install_mdm_eba -propertyfile 
          <MDM_INSTALL_HOME>\mds\scripts\install_mdm_eba.local.properties
        • For UNIX based systems, run the following command:
          <MDM_INSTALL_HOME>/mds/scripts/madconfig.sh install_mdm_eba -propertyfile 
          <MDM_INSTALL_HOME>/mds/scripts/install_mdm_eba.local.properties
      5. Copy the file <MDM_INSTALL_HOME>/properties/install_prop_file_jar.properties to the folder <MDM_INSTALL_HOME>/mds/scripts.
      6. Rename the copied file install_prop_file_jar.local.properties.
      7. Modify install_prop_file_jar.local.properties to change all of the encrypted passwords to plain text passwords.
        Tip: The value of the trustFilePwd property is WebAS.
      8. Run the install_prop_file_jar madconfig script.
        • For Microsoft Windows systems, run the following command:
          <MDM_INSTALL_HOME>\mds\scripts\madconfig install_prop_file_jar -propertyfile 
          <MDM_INSTALL_HOME>\mds\scripts\install_prop_file_jar.local.properties
        • For UNIX based systems, run the following command:
          <MDM_INSTALL_HOME>/mds/scripts/madconfig.sh install_prop_file_jar -propertyfile 
          <MDM_INSTALL_HOME>/mds/scripts/install_prop_file_jar.local.properties
    3. Configure security for the Enterprise Business Application:
      1. Run the map_roles_to_users madconfig script.
        • For Microsoft Windows systems, run the following command:
          <MDM_INSTALL_HOME>\mds\scripts\madconfig map_roles_to_users
        • For UNIX based systems, run the following command:
          <MDM_INSTALL_HOME>/mds/scripts/madconfig.sh map_roles_to_users
      2. When prompted, provide the following details for the map_roles_to_users script:
        • EBA prefix: com.ibm.mdm.hub.server.app
        • WAS application name: MDM-web-services-instance_id
          Tip: Find the application name in the Integrated Solutions Console.
        • BLA user: the admin user of this InfoSphere MDM instance, such as mdmadmin
        • BLA password: the password of the BLA user
  4. Run the full_sync madconfig script:
    • For Microsoft Windows systems, run the following command:
      <MDM_INSTALL_HOME>\mds\scripts\madconfig full_sync
    • For UNIX based systems, run the following command:
      <MDM_INSTALL_HOME>/mds/scripts/madconfig.sh full_sync
  5. Delete the <...>.local.properties files that you created in <MDM_INSTALL_HOME>/mds/scripts
    Important: Delete these files as soon as possible. They represent a potential security issue because they contain plain text passwords.
  6. Restart the WebSphere Application Server cluster.