Server Installation

Prerequisite

Before you can start with this chapter, you need to have finished the following parts:

OS User Permissions

Windows

The user who installs the MDM Product 360 needs to have local administrative permissions. Also the service user for the Control Center needs to be an administrator on all cluster nodes, otherwise he will not be able to automatically install the application server services there.

Create Control Center Service User

  • Open Start > All Programs > Administrative Tools > Computer Management > Local Users and Groups > Users > New User ...

    images/download/attachments/198778158/1.JPG
  • Create a new user account for the service (e.g. PIM).

    In case the host machines are part of a domain, we recommend to use a special domain user for the following steps, rather than creating you're own local user.
    Please contact your network administration department so they create this service user for you.

  • Open Start > All Programs > Administrative Tools > Local Security Policy > Local Policies > User Rights Assignment.
    Assign the "Lock pages in memory" privilege to the PIM user.

    images/download/attachments/198778158/2.JPG

Linux

The user who installs the MDM Product 360 needs to have the right to install services.

The user running the MDM Product 360 server needs a valid locale. Please check with the following command if a locale is set for your user:

http://man7.org/linux/man-pages/man1/locale.1.html#EXAMPLE
locale

If no valid locale is set then you can set it with the following command.

export LANG = en_us.utf-8

An invalid locale can lead to a server crash when executing data quality rules.

Create Control Center Service User

To create a new user account for the service (e.g. PIM), use either the graphical tool of your distribution or a command line tool like adduser.

The user needs to have the right to start a service otherwise it is not possible to start the application server using Control Center.

OS Volume Shares and Permissions

Single Server

For single server installations no shares or special permissions must (and should) be created. The only important thing is that the user which is used to run the Product 360 Server service must have full permissions to the folder

which is defined in the filestorage.dir.shared property of the server.properties file.

Multi Server

In order to prevent any kind of "single point of failure" in the multi-server deployment, it must be guaranteed that all servers have equal access to the same file storage. This can either be achieved by using SAN technology
so that all servers would have the same virtual local drive. In this case, no shares need to be configured. This approach is especially recommended for productive clusters.

Development and test environments can also be configured to use a simple SMB share. In this case the Product 360 service user must have full read and write permissions to this share (other users do not need to have access to it!)

Default Product 360 Server Ports

If possible use the default ports for the installation, only change the ports if they are already bound by another application in your company.

Port

Protocol

Product 360 Module

1712

tcp

Desktop connection. This port is used to connect the Desktop Client and Server. The used protocol is an internal low-level protocol, optimized for high performance throughput.

1512

http

Web Server Port (Jetty) which is used for the Web Client as well as the Service API or file transfer.
The used protocol is HTTP (or REST via HTTP)

1812

tcp

Data Grid communication. Needed for the synchronization heartbeat of the cluster.

For data synchronization the Hazelcast framework is used. Hazelcast itself uses a dynamic range of outgoing ports determined by the OS for communication between nodes.
This outgoing ports strategy can be changed via the property <outbound-ports> in the deployed hazelcast.xml config file. See chapter "Server configuration - Hazelcast configuration (hazelcast.xml)" how to configure Hazelcast.

55555

tcp

Default Java Management Extensions Port which is needed to attach troubleshooting and tuning tools.
For security reasons this port must not be reachable from outside the server machine.

61616

tcp

The port for the message queue connection.

25

smtp

Product 360 Server is capable to send e-mails in various functional areas, for this it needs access to an smtp e-mail server

445 and 139

smb and tcp

Windows file share ports for the media asset file communication when used with the Product 360 Media Manager module

Encryption of secure information

Product 360 supports the encryption of secure information like passwords in configuration files. The encryption will be executed only if your secure information in the configuration files is enclosed by the marker [_to_encrypt_].
So, if you want to have e.g. the password "MyPassword" encrypted in a configuration file just use the marker before and after the password like this: [_to_encrypt_]MyPassword[_to_encrypt_].

For example:

properties file
# INFA BPM
infa.bpm.base.url = <ENTER THE INFA BPM BASE URL HERE>
infa.bpm.workflows.path = services/REST
infa.bpm.user = <ENTER THE AUTHENTICATION USER HERE>
infa.bpm.password = [_to_encrypt_]MyPassword[_to_encrypt_]
xml configuration file
<network>
<node identifier="audit-server" host="localhost" port="2801" username="Administrator" password="[_to_encrypt_]MyPassword[_to_encrypt_]"/>
</network>

Usage of AES-256 cryptographic algorithm to encrypt/decrypt secure information

Product 360 provides a default implementation for the encryption of secure information with an internal and securely stored Key using AES-256.
For sophisticated deployments we recommend to integrate wit Encryption Key Management solutions like Amazon AWS or Azure KeyVault and use the API we offer to send and receive data for encryption to these key stores securely

Large memory pages under linux

In order to use large memory pages (which is enabled by default, see JVM parameter XX:+UseLargePages in wrapper.conf), you may have to change the operating system configuration as described in the following article:
https://www.oracle.com/technetwork/java/javase/tech/largememory-jsp-137182.html

Control Center

The Control Center is the central application for installation and operation of the Product 360 server cluster. It must also be used for single server installations.

The Control Center must be installed on every node in the cluster. We strongly recommend to install all nodes absolutely identical, this prevents deployment failures and is the fastest way to setup the cluster.

First Node

Download and Extract Binaries

  • Select one of your servers in the cluster to be the first node of your system. The installation will be done on this node and after that copied to all other nodes.

  • Extract the Control Center package PIM_8.0.5.00_<revisionNumber>_clusterix_win64.zip resp. PIM_8.0.5.00_<revisionNumber>_clusterix_linux64.tgz from the Core archive

  • Extract the file on the master node into a directory, e.g. C:\Informatica\PIM (=<PIM ROOT>).
    The directory structure should look like this: <PIM ROOT>\clusterix and not like this <PIM ROOT>\PIM_8.0.5.00_<revisionNumber>_clusterix_win64/clusterix

  • Make sure that the Control Center service user has full permissions on the <PIM ROOT> and all children.

    images/download/attachments/198778158/2.JPG

Configure Control Center

If you want to encrypt the passwords used in the configuration files please refer to chapter Encryption of secure information in the Server Installation manual. The passwords marked as to encrypt will be encrypted during the start of Control Center service.

The clusterix configuration folder contains the folders clusterix and HPM.

  • Only ClusterixConfig.xml and NetworkConfig.xml are distributed from the clusterix folder to the servers.

  • All files in the HPM folder are completely distributed to the servers.

  • All files in the configuration/HPM folder of the server are replaced by the deployed files. So it's important to modify the files only here and not on any server separately.

Open the file <PIM ROOT>\clusterix\configuration\clusterix\ClusterixConfig.xml in an editor and adjust the properties as described below.

Note

This file will be copied during "Update Configuration" process to PIM Server configuration folder and port and clusterixLogin will be used for communication from PIM Server to Control Center.

Property Name / Attribute

Description

Example

port

The HTTP port which should be used for the Control Center Web UI.

9000

clusterixHttpsConfiguration

enabled

Enables HTTPS for Control Center Web UI.

false

httpsPort

The HTTPS port which should be used for the Control Center Web UI.

443

keyStoreFile

The full path to the keystore file.

D:/Development/com.heiler.ppm.communication2/testdata/keystore.jks

keyStorePassword

The password of the keystore file.

clusterixLogin

user

The username which must be used for access to the Control Center.

clusterix

password

The password to use for the Control Center.

hpmLogin

user

The username of the Product 360 user which has Service API access permissions.
This user is not needed for the installation process, but later for monitoring Product 360 operations.

rest

password

The password of the Product 360 user.

images/s/o7yjop/8703/51k4y0/_/images/icons/emoticons/warning.svg Important Notice: When using HTTPS for the Control Center, make sure that your certificate is trusted! To do so follow these steps:

  • export your certificate from your wanted keystore file by using this command in your java home path:

    keytool -export -keystore fullPathToYourKeystoreFile -alias yourChosenAlias -file certificateName.cer

  • import your exported certificate into the cacerts file at yourJREHomePath \lib\security by using the following command: keytool -keystore cacerts -importcert -alias yourChosenAlias -file certificateName.cer

  • restart your system

=> to simplify this process, you can use an external tool named "portecle".

Configure Application Server Cluster

Open the file <PIM ROOT>\clusterix\configuration\clusterix\NetworkConfig.xml in an editor and adjust the mandatory properties. Add node elements for each node in the cluster.
See the Server Configuration for details on all properties you can adjust in this file. For ease of the installation, we only have a subset of the available settings here.

Ports must be open!

All communication ports which are defined in the NetworkConfig.xml must be open for all servers in the cluster. Especially the data-grid as well as the hlr-tcp port. In case the servers can't reach each other, they will not throw an error as they will just assume to be the first one in the cluster to be started. You might not even immediately recognize that the servers do not work as a real cluster together. In case you want to check if the servers are really connected as a cluster you can check the log file of the second server during startup. Every server which starts up will try to connect to the other servers which are already running, if successful he will log that.

This is a typical log of the first server which starts:

INFO   | jvm 1    | 2021/12/10 12:19:22 | 12:19:22,114 INFO  [ServerInitializer 2] [ClusterService] [Myserver1]:1802 [P360] [3.12.1]
INFO   | jvm 1    | 2021/12/10 12:19:22 |
INFO   | jvm 1    | 2021/12/10 12:19:22 | Members {size:1, ver:1} [
INFO   | jvm 1    | 2021/12/10 12:19:22 | Member [Myserver1]:1802 - c82f2563-d8e4-40da-9830-1ef53bf8ed3a this
INFO   | jvm 1    | 2021/12/10 12:19:22 | ]

All subsequent servers should have the already started servers in the members array.

Element/Attribute

Description

Example/Default

network

Root element of the network configuration, contains one or more nodes

node

Represents a server node in the cluster

identifier

Unique identifier of the node within the network. See -Dppm.nodeIdentifier command line argument below!

product360-server1

host

The host name / IP address this node runs on. Note: Do not use localhost or similar addresses. The host name or IP address in this attribute must be visible from all nodes in the cluster. In case the server has the CLIENTS_SERVER role, it also must be visible from the desktop clients. Please use only CAPITAL LETTERS for the host name

default-role

mandatory attribute

Default role(s) each server node must have at start time. Available roles are CLIENTS_SERVER, JOB_SERVER and MQ_CONSUMER_SERVER. Currently the server roles can not be modified during runtime of the server, but this might change in the future.

CLIENTS_SERVER, JOB_SERVER and MQ_CONSUMER_SERVER

node/web

Web relevant protocol settings (either HTTP or HTTPS)

useHttps

Enables/disables the SSL protocol. Default is false - in case you want to enable it, you need to provide a valid SSL certificate and use the https element. See Server Configuration for details

false

node/web/http

HTTP specific settings

port

HTTP port to be used for the web server

1512

node/data-grid

Settings for the distributed data grid

port

Port to be used for the data grid connection.

1812

node/internal/hlr-tcp

Settings for the internal communication protocol

port

Port for incoming / outgoing connections regarding internal communication

1712

node/snmp

Settings for the SNMP protocol communication

oid

Object id of the node in the cluster. Each node must have a unique oid.

1.1 (first node)
1.2 (second node)
and so on...

Install Control Center Service

Windows

  • Install Control Center as service by running the script <PIM ROOT>\clusterix\install.cmd

  • Open Start > All Programs > Administrative Tools > Services

  • Make sure that the startup type is "Automatic"

  • Modify the service's properties so that it uses the Control Center Service user.

    images/download/attachments/198778158/4.JPG
  • Start the service Informatica Product 360 Control Center

Linux

  • If you do not want to run the Control Center as root you have to edit the script <PIM ROOT>/clusterix/service/clusterix.sh and change the line
    #RUN_AS_USER=
    to
    RUN_AS_USER=<USERNAME>whereby <USERNAME> is the name of the Control Center Service User

  • Install Control Center as service by running the script <PIM ROOT>/clusterix/install.sh

  • Start the service Informatica Product 360 Control Center by starting the service via
    service Product_360_ControlCenter_1.0 start

Validate Control Center Installation

Note

Make sure that JavaScipt is enabled in your browser. Currently Internet Explorer is not supported with the Control Center.

  • Verify the installation of Control Center by opening the web interface on the first node (usually http://<ServerName>:9000). Replace 9000 with the port you used in the ClusterixConfig.xml. Login with the user name and password specified in the ClusterixConfig.xml file.

  • Click on the Monitoring tab and open the Network tree to the left. Check that the all configured nodes of the cluster are shown under Application Server

  • The web interface with two configured nodes should look like this:

    images/download/attachments/198778158/image2016-6-16_15_47_4.png

Distribute Control Center on Remaining Nodes

  • Copy the folder <PIM ROOT>\clusterix of the first node to each remaining node of the cluster (including all the configurations which should be identical on all machines).

  • Install and start the Control Center service on each machine (like described above).

  • Validate the installation on each of the machines by opening the Control Center web interface

Application Server

Binaries

Extract the server installation package from the Core download archive. The package name is PIM_8.0.5.00_<revisionNumber>_server_win64.zip resp. PIM_8.0.5.00_<revisionNumber>_server_linux64.tgz.

Hint

Do not unzip the PIM_8.0.5.00_<revisionNumber>_server_win64.zip resp. PIM_8.0.5.00_<revisionNumber>_server_linux64.tgz file!

Configuration

All configuration for the application servers must be done only on one node and will automatically be distributed to all other nodes in the cluster.

If you want to encrypt the passwords used in the configuration files please refer to chapter Encryption of secure information in the Server Installation manual. The passwords marked as to encrypt will be encrypted if you save the configuration file or before the distribution of configuration take place.

If you want to connect the P360 Server to an Oracle Database via TCPS, please refer to chapter "How to configure a secure database connection for Product 360 Server" in the "Server Configuration" manual.

We will only touch the minimally needed properties for the installation in this section, please find a detailed description of all properties in all configuration files on the Server Configuration page.

General Server Settings (server.properties)

File: <PIM ROOT>\clusterix\configuration\HPM\server.properties

The following properties needs to be adjusted at least. In case of an integration with Informatica MDM or Informatica BPM you will need to adjust additional properties in this file. Please see the corresponding documentation for this.

Property

Description

File Transfer Settings

Is is crucial for multi-server deployments that all servers can access the same file storage and the same directories in there. For example, it might be that Server A uploads files to the import area in the file storage, but Server B is executing the import for this. So Server B needs to have the identical file access then Server A.The currently available default implementation for the file storage is SMB which uses the SMB protocol to access the files. Please note that the file transfer from the Desktop Client is done using HTTP only.
Clients do not need to have access to the file transfer shares, only the servers!

filestorage.dir.shared

Folder which has to be accessible by each Product 360 server. In case of a single server system, the folder does not have to be a shared one. In case of multi-server you might want to use a common file store with an SMB share or some kind of Network storage on which every server node has access.

Customer license key

license.customer.file.local

Local path to the license file. Please contact the Informatica Product 360 Partner Management to obtain a license file.

license.customer.key

Appropriate customer key (in case of multiline keys, use backslash at the end of the line)

Repository Settings

repository.default.language

The default language of the repository regarding all language specific aspects like e.g. default logical key language. Possible values: Key synonyms of the corresponding language entries defined in the repository enumeration "Enum.Language", e.g. "de" or "en_US" - default is German, if property does not exist.

Note: The repository language MUST NOT be changed as soon as entity data such as items/products/variants or structures/structure groups have been created and exist in the database. In such a situation, the stability of the system can no longer be guaranteed since logical key fields most likely will contain null values.

Database settings for Microsoft SQL Server and Oracle

Please visit the corresponding database setup settings in the chapter "Provide database connection settings" of the page "Server Database" which are also for server installation.

Startup parameters (_environment.conf)

File: <Product 360 ROOT>\clusterix\configuration\HPM\_environment.conf

Parameter

Description

Default/Example

MEM_MAX

Change this parameter to the maximum heap space for the Java VM. Never configure more than the physically available memory of the machine.
(The normal rule is: Physical memory - 1 GB for the OS = maximum heap space.)

e.g. 16384M for 16 GB Heap Space

NAME_SHORT, NAME_LONG, JMX_PORT and SERVER_IDENTIFIER will be adjusted automatically by the Control Center during the installation with the settings specified in the configuration files of Control Center.

License

  • Create a new folder underneath the file storage root folder which has been provided by the filestorage.dir.shared property called license.

  • Copy the license file to this folder.

Installation

  • Open the Control Center Interface using your local browser. Connect to the node on which you adjusted the application server configurations.

  • Open the Deployment tab.

  • In the "Installation Files", press the upload button and select the application server archive. The archive has to stay zipped. Click on upload to upload the installation file.

  • After the upload has been completed, select the application server archive in the widget and press the Install button.
    The installation process will automatically copy the installation archive to all server nodes.
    The archive will be extracted to <PIM ROOT>\server.
    Configuration files will be copied and adjusted accordingly.
    Finally, the Windows/Linux service will be installed on the remote machines.

  • If the Control Center service user does not have sufficient rights to install a service you have to install the service manually by executing
    <PIM ROOT>\server\install.cmd (Windows) resp. sudo <PIM ROOT>/server/install.sh (Linux)
    Linux: If the Product 360 server should not run as root, the user can be specified in <PIM ROOT>/server/service/pimserver.sh and change the line
    #RUN_AS_USER=
    to
    RUN_AS_USER=<USERNAME>whereby <USERNAME> is the name of the Product 360 Service User

  • Switch to the Monitoring tab and select the server(s) you want to start. Press the Start Server button.
    The Server States will move from STOPPED to STARTING and finally RUNNING

Since the application server needs to have full access to the file share, it is necessary to also adjust the windows service of the application server to use the service user we defined for the Control Center service and make sure that this user has full access on the file share.

Enable Monitoring in Control Center

To be able to see all the statistical data for all servers you need to have a user in your Product 360 system who has Service login permissions and all process planning permission.

You can create this user using the Desktop Client. The user name and password should have been already defined in the ClusterixConfig.xml file, make sure the new user has the same name and password.

Validate Installation

When you finished the installation of a single server (or a cluster), you can easily validate if everything is up and running by opening the Informatica Product 360 Web interface.

By default, the web client is reachable via the following url: http://hostName:1512/pim

images/download/attachments/198778158/2013-10-14_09h41_37.png

Media Asset Provider

In order to work with multimedia documents such as images, videos and documents the Product 360 application server needs a media asset provider. If not configured otherwise, it is pre-configured with it's build-in provider (aka Classic Provider, HLR). The build-in provider is merely a simple directory based storage for multimedia documents with limited capabilities regarding image processing etc. Informatica recommends to always use the Media Manager module since it provides a richer set of functionalities.

Media Manager Provider

Please see separate instruction for the Media Manager Integration

Classic Provider

The Classic Provider is only supported for Windows operating system!

GraphicsMagick for Classic Provider

The Classic Provider uses GraphicsMagick for processing preview images. This 3rd party tool which is located on the 3rd party archive cd must be installed separately. Classic Provider works with Version GraphicsMagick 1.3.14-Q16 (32 bit for Windows) (other Versions are not tested and are not recommended to be used!). You can find the needed version (GraphicsMagick-1.3.14-Q16(32 bit for windows) ) on the 3rd party archive cd, install it according to it's own installation instructions. See the Configuration Manual for more information about all possible configuration parameters.

GraphicsMagick uses the TEMP and TMP environment variables to work with temporary files. Unfortunately it does not support whitespaces in the paths to those temporary folders. Therefore you need to adjust the TEMP and TMP variables to have no whitespaces in them (take care about the %USERPROFILE% variable - it might contain whitespaces!).

images/download/attachments/198778158/StartServerAsService4.png