# Install migration-center

Each migration-center component has its own installer and the kit has a main installer that assists the installation of each component.

The three individual components can also be distributed and installed separately with the installers from the following table:

| Main installation assistant                     | setupMigCenter.exe             |
| ----------------------------------------------- | ------------------------------ |
| migration-center WebClient                      | WebClient/McWebClientSetup.exe |
| migration-center Database                       | Database/InstallDataBase.bat   |
| migration-center Server Components (Job Server) | ServerComponents/SPsetup.exe   |

The installation is started with **setupMigCenter.exe**, which is found in the root directory of the installation kit.

{% hint style="info" %}
The installation can be aborted before the component selection step by pressing the **Cancel** button.

By pressing **Back**, the user can navigate to the previous pages in order to change or edit options.
{% endhint %}

## Main Installer

At the following step, the user will choose the components of migration-center to install.

<figure><img src="https://content.gitbook.com/content/5ZddcKtrttWAxYuJdqkz/blobs/bkwg1XKmO7lP0IEqM63Y/image.png" alt=""><figcaption></figcaption></figure>

The following are different installation variants:

* **Full installation**\
  All components of migration-center are installed
* **Compact Installation**\
  This variant installs the migration-center WebClient and database only.
* **Custom installation**\
  The user-defined installation allows the user to select specific components.

The full installation is recommended as a first installation option, or a custom installation can be performed by selecting only components that need to be installed.

{% hint style="info" %}
Although the components can be installed individually, for full functionality at least one instance of each component must be deployed and the components must be able to connect to one another.
{% endhint %}

By confirming the choice by selecting **Next**, all chosen components will be installed one after another. For each of the components there will be an individual installation assistant.

## Web Client

The **WebClient** installer deploys an **Apache Tomcat** server containing the migration-center WebClient component.

{% hint style="info" %}
To install the WebClient on a different version of Apache Tomcat than the provided one see [Manual Install](#manual-install) section.
{% endhint %}

### Installer

Start the WebClient installer and click **Next** to proceed.

<figure><img src="https://content.gitbook.com/content/5ZddcKtrttWAxYuJdqkz/blobs/2ASWnDBhGAcc2qnop8WL/image.png" alt=""><figcaption></figcaption></figure>

#### **Select destination location**

Select the installation path for the application. The default installation path proposed by the installer is recommended but can be changed if needed.

<figure><img src="https://content.gitbook.com/content/5ZddcKtrttWAxYuJdqkz/blobs/kQ62zpKOCNaAYYhQkNst/image.png" alt=""><figcaption></figcaption></figure>

**Select start menu folder**

The Windows Start Menu shortcuts will be created for migration-center WebClient. The name of the folder for these shortcuts can be set here.

<figure><img src="https://content.gitbook.com/content/5ZddcKtrttWAxYuJdqkz/blobs/mHmdej9OhWgxoQ84ORq2/image.png" alt=""><figcaption></figcaption></figure>

**Installation summary**

Before starting the installation process, all previously set options are displayed. In order to change settings, the user can navigate to the previous pages by clicking **Back**. Click **Install** to start the installation.

<figure><img src="https://content.gitbook.com/content/5ZddcKtrttWAxYuJdqkz/blobs/c8Kd6scMrkxVWBtTovYA/image.png" alt=""><figcaption></figcaption></figure>

**Install in progress**

Wait for the install to finish.

<figure><img src="https://content.gitbook.com/content/5ZddcKtrttWAxYuJdqkz/blobs/o1L87dVkk1xDcX4nHjDA/image.png" alt=""><figcaption></figcaption></figure>

**Finish the installation**

You have the option of launching the **migration-center WebClient** after clicking on **Finish**. &#x20;

<figure><img src="https://content.gitbook.com/content/5ZddcKtrttWAxYuJdqkz/blobs/DaEm5DZZrLrvJzrniW4c/image.png" alt=""><figcaption></figcaption></figure>

This will open your default browser with the localhost URL for accessing the WebClient[ https://localhost/mc-web-client](https://localhost/mc-web-client/)

### Manual install

This section described how to install the WebClient on a different version of Tomcat than the one provided in the migration-center package.

Only the following versions were tested by us, other versions could work but we cannot guarantee there aren't any compatibility issues:

* version **10.1.49** (one provided by migration-center package)
* version **10.1.43**
* version **10.1.39**

Download the desired Tomcat version and extract it in a folder location.\
In the following steps **/tomcat/** will reffer to the folder where the Tomcat version was extracted to and **/kit/** will reffer to the migration-center kit.

#### Install steps:&#x20;

1. From the **/tomcat/bin** folder, open the **catalina.bat** file with a text editor. \
   After the **setlocal** command paste the following lines and save thje file:\
   `rem Set min and max memory allocation pool with CATALINA_OPTS`

   `set CATALINA_OPTS=-Xms1024m -Xmx4096m`
2. Copy from the **serviceMcWebClient.bat** and **removeMcWebClient.bat** files from **/kit/Webclient/webclient/bin** into the **/tomcat/bin** folder.
3. Open the **catalina.propertis** file from **/tomcat/conf** . Search for the **common.loader** property.\
   &#x20;At the end of this line append the following text and save the file:\
   `,"${catalina.home}/extra"`
4. Copy the **server.xml** file from **/kit/Webclient/webclient/conf** folder and replace it in the **/tomcat/conf** folder.
5. Copy the **tomcat-ssl.p12** file from **/kit/Webclient/webclient/conf** folder into **/tomcat/conf** folder.
6. Copy the **extra** folder from **/kit/Webclient/webclient** into the **/tomcat** folder.
7. Delete the following folders: **docs**, **examples**, **host-manager**, **ROOT** from the **/tomcat/webapps** folder.
8. Copy the **mc-web-client** folder and the **mc-rest-api.war** file from **/kit/Webclient/webclient/webapps** into **/tomcat/webapps** folder.
9. Open the Windows **System Enviroment Variables** window and add the following string in the **PATH** environment variable `%SystemRoot%\System32`.
10. Open a **Command Prompt** with **Run as administrator** in the **/tomcat/bin** folder. \
    Then run the **serviceMcWebClient.bat** script. This will install the windows service.

{% hint style="warning" %}
If you cannot edit system variables, skip step 9 and do the following after step 10:

Open the **Windows Services**, select **Migration Center Web Client** and open its **Properties**.\
On the **Log On** tab select **Local System Account**. \
Save and start the service.
{% endhint %}

### Certificate configuration

The WebClient server is delivered with a self signed certificate for localhost. Because the certificate is self signed it is not recognized by the browser as a trusted certificate. Therefore, when accessing the WebClient on localhost the browser will show a disclaimer "Your connection is not private" so first time when accessing the webclient the user needs to confirm by clicking "Proceed to localhost(unsafe)".

To get rid of the "Not secure" warning in the browser any customer can generate a trusted certificate for the machine(s) where the WebClient. To publish the trusted certificate in the WebClient the following steps are required:

1. **Copy** the generated certificate (p12) in the **conf** folder.
2. **Edit** the **conf\server.xml** file with a text editor and change the **keystoreFile** and **keystorePass** to match the certificate file name and the certificate password.

```
<Connector port="443" protocol="org.apache.coyote.http11.Http11NioProtocol"
           maxThreads="200" scheme="https" secure="true" SSLEnabled="true">
  <SSLHostConfig certificateVerification="none" sslProtocol="TLSv1.2">
    <Certificate
            certificateKeystoreFile="conf/your_own_certificate.p12"
            certificateKeystorePassword="yourpass"
    />
  </SSLHostConfig>
</Connector>
```

&#x20;  3\. **Restart** the WebClient service (**Migration Center Web Client**)

## Server Components

### Windows installation

The migration-center **Server Components**, or **Jobserver**, is the part which contains all the connectors that interact with the source and target systems. The installation process will copy the files and also create a windows service.

{% hint style="info" %}
Before starting the installation you need to set the **`JAVA_HOME`** (if using JDK) or **`JRE_HOME`** (if using JRE) environment variables.
{% endhint %}

**Select destination location**

Next, the user will select the installation location for the Server Components. The default installation path proposed by the installer is recommended but can be changed if needed.

![](https://content.gitbook.com/content/5ZddcKtrttWAxYuJdqkz/blobs/gw8oYFYOil3fvQuIldEI/image.png)

**Select Job Server port**

Next you can select the port on which the migration-center Client will communicate with the Jobserver.\
The default port is `9700` but any free port can be used.

![](https://content.gitbook.com/content/5ZddcKtrttWAxYuJdqkz/blobs/6Cr9jFcqYovilsBYeRkV/image.png)

**Select log folder location**

Default value is the *logs* folder in the Server Components installation folder, but it can be set to any valid local path or UNC network share. Write access to the log location is needed by the user which under which the Jobserver will be running.

![](https://content.gitbook.com/content/5ZddcKtrttWAxYuJdqkz/blobs/MOiSJ5eUe9hwrZv7ddd9/image.png)

{% hint style="info" %}
The log location is only set for the connector logs. \
The server logs location is manually set in the mc-core/logback.xml file, using the FOLDER\_LOG property.
{% endhint %}

**Completion of the installation**

![](https://content.gitbook.com/content/5ZddcKtrttWAxYuJdqkz/blobs/zr600mmC3yEPNxZcEMvn/image.png)

Complete the installation by selecting *Install*.

### Linux Installation

{% hint style="warning" %}
Not all connectors are available on the Linux version of Server Components. The ones available are:

* Scanners: Documentum, Filesystem, Database, eRoom, Exchange
* Importers: Documentum, Filesystem, InfoArchive
  {% endhint %}

The Linux version of the migration-center Server Components can be found in the folder *ServerComponents\_Linux*.

In order to install the Migration Center Job Server extract the archive `Jobserver.tar.gz` in the desired location using the command:

`tar -zxvf Jobserver.tar.gz`

All necessary Job Server files will be extracted in the “Jobserver” folder.

To install the Job Server as a service / daemon, follow these steps:

1\. Switch to the “bin” folder of the “Jobserver” folder

2\. Run the command `sudo ./installDaemon.sh`

{% hint style="info" %}
Run the installDaemon.sh as a user that has administrative permissions (sudo).
{% endhint %}

Instead of installing the Job Server as a service/daemon, you can run it in the terminal by executing the script `./runConsole.sh` in the bin folder

The default TCP listening port is `9701` and can be changed in “server-config.properties” file located in “lib/mc-core” folder.

For running Documentum Scanner or Importer on Linux the DFC (Documentum Foundation Classes) needs to be configured in “conf/dfc.conf” as it is described in the Scanner and Importer user guides.

### **Multiple installations**

Depending on the requirements or possibilities of each migration project, it can make sense to install multiple Job Servers across the environment, either to share the workload, or to exploit performance advantages due to the geographical location of the various source and/or target system, i.e. installing the Job Server on a node as close as possible to the source or target system it is supposed to communicate with.

{% hint style="success" %}
In terms of throughput, local installations will provide benefits over remote installations and local networks will always be faster than remote networks.
{% endhint %}

Besides throughput, latency needs to be considered as well, since increased latency can affect performance just as much, even leading to timeouts or connection breakdowns in severe cases.

## Database

### Oracle&#x20;

The **Database** installer is started by running the **InstallOracleDataBase.bat** file. This requires a valid Java installation. &#x20;

The installer prepares the database for use with migration-center by creating a user, tables, installing the packages containing migration-center functionality and setting default configuration options. All of these objects will be created in a schema called `FMEMC`. Currently it is not possible to change the schema’s name or install multiple schemas on the same database instance.

**Welcome screen**

The first screen containing some general information. Click **Next** to proceed.

<figure><img src="https://content.gitbook.com/content/5ZddcKtrttWAxYuJdqkz/blobs/RYoalutoW9DO01TwqAjn/image.png" alt=""><figcaption></figcaption></figure>

**Connection Details**

Insert the details for connecting to the database instance where you want to install the migration-center FMEMC schema. Set **username**, **password**. The user must be the predefined `SYS` user or an Oracle administrative user with enough privileges. Then set the database details **host**, **port** and **service name**.

{% hint style="info" %}
Creating the **FMEMC** user manually and using it for installing the database is possible. \
Refer to the [Advanced Installation](#advanced-db-installation) section below for more details.
{% endhint %}

<figure><img src="https://content.gitbook.com/content/5ZddcKtrttWAxYuJdqkz/blobs/5EXParYpigGUEdaW42yO/image.png" alt=""><figcaption></figcaption></figure>

You can test the details by clicking **Test Connection**. Click on **Next** to proceed.&#x20;

**Selecting the logs and tablespaces path**

Set the location to create the log files for the database installer.

Set the location for the database tablespaces. The default path provided by the database instance is recommended.

{% hint style="info" %}
The log file records several database actions run by the setup routine. Therefore, this log data file is very useful for support in case problems occur during the installation.
{% endhint %}

<figure><img src="https://content.gitbook.com/content/5ZddcKtrttWAxYuJdqkz/blobs/Cz0BYgFWdWi2f3UxbaQJ/image.png" alt=""><figcaption></figcaption></figure>

**Enter License Key**

Insert a valid migration-center license key.

<figure><img src="https://content.gitbook.com/content/5ZddcKtrttWAxYuJdqkz/blobs/3kCUHF8R73aECgpc7TM1/image.png" alt=""><figcaption></figcaption></figure>

**Wait for the install to finish**

When the installation finishes click on **Next** to proceed.&#x20;

<figure><img src="https://content.gitbook.com/content/5ZddcKtrttWAxYuJdqkz/blobs/teG5dLPdHu4592eV9vsC/image.png" alt=""><figcaption></figcaption></figure>

**Set date/time pattern**

You can set the **Datetime Pattern** that will be used for displaying date values in the WebClient. The dropdown menu includes of 4 the mostly widely used date/time formats.

Click **Finish** to complete the installation.

<figure><img src="https://content.gitbook.com/content/5ZddcKtrttWAxYuJdqkz/blobs/eeAqwLdAMXm6CpDgD5fV/image.png" alt=""><figcaption></figcaption></figure>

#### Database objects created during migration-center database schema installation:

During the installation, the following Oracle Users will be created for migration-center.

<table data-header-hidden><thead><tr><th width="287">User</th><th>Authorizations</th></tr></thead><tbody><tr><td><strong>User</strong></td><td><strong>Authorizations</strong></td></tr><tr><td><p><strong>FMEMC</strong></p><p>This Oracle User is the owner of all migration-center objects and tablespaces</p><p>Default password is <em><strong>migration123</strong></em>. Password can be changed after authorization.</p></td><td><p>GRANT CONNECT TO FMEMC</p><p>GRANT RESOURCE TO FMEMC</p><p>GRANT CREATE JOB TO FMEMC</p><p>GRANT SELECT ON SYS.V_$INSTANCE TO FMEMC</p><p>GRANT SELECT ON SYS.DBA_DATA_FILES TO FMEMC</p><p>GRANT SELECT ON SYS.DBA_TABLESPACES TO FMEMC</p><p>GRANT CREATE VIEW TO FMEMC</p></td></tr></tbody></table>

Additionally the user `FMEMC` will be granted to use the following Oracle packages:

* SYS.UTL\_TCP TO FMEMC;
* SYS.UTL\_SMTP TO FMEMC;
* SYS.DBMS\_LOCK TO FMEMC;
* SYS.UTL\_RAW TO FMEMC;
* SYS.UTL\_ENCODE TO FMEMC;
* SYS.DBMS\_SCHEDULER TO FMEMC;
* SYS.DBMS\_OBFUSCATION\_TOOLKIT TO FMEMC;

Furthermore, during the installation, the following tablespaces will be created for migration-center:

* FMEMC\_DATA (40MB)
* FMEMC\_INDEX (20MB)

{% hint style="info" %}
These tablespaces are set to expand in steps of 10MBs according to the usage and needs of migration-center.
{% endhint %}

The user role `FMEMC_USER_ROLE` will be created and granted the required privileges on `FMEMC` schema objects. This role must be granted to any database user that needs to use migration center.

### PostgreSQL

The **Database** installer is started by running the **InstallPostgreDataBase.bat** file. This requires a valid Java installation.

The installer prepares the database for use with migration-center by creating a user, tables, schemas, installing the packages containing migration-center functionality and setting default configuration options.

#### Welcome Screen

The first screen containing some general information. Click **Next** to proceed.

<figure><img src="https://content.gitbook.com/content/5ZddcKtrttWAxYuJdqkz/blobs/LH5IfNuVpHbjQYmImRUh/image.png" alt=""><figcaption></figcaption></figure>

#### Connection Details

Insert the details for connecting to the database instance where you want to install the migration-center FMEMC schema. Set **username**, **password**. The user must be the predefined `postgres` user or a PostgreSQL administrative user with enough privileges. Then set the database details **host**, **port** and **database name**.

{% hint style="danger" %}
**Do not use** the default database named "**Postgres**". That is reserved for manangement and is not meant to be used as an actual database.
{% endhint %}

{% hint style="info" %}
Creating the **FMEMC** user manually and using it for installing the database is possible. \
Refer to the [Advanced Installation](#advanced-db-installation) section below for more details.
{% endhint %}

<figure><img src="https://content.gitbook.com/content/5ZddcKtrttWAxYuJdqkz/blobs/5EoAy9oMjoDQoNl7xaiR/image.png" alt=""><figcaption></figcaption></figure>

You can test the details by clicking **Test Connection**. Click on **Next** to proceed.&#x20;

**Selecting the logs and tablespaces path**

Set the location to create the log files for the database installer.

Set the location for the tablespaces if custom table space locations are selected.&#x20;

{% hint style="info" %}
The log file records several database actions run by the setup routine. Therefore, this log data file is very useful for support in case problems occur during the installation.
{% endhint %}

<figure><img src="https://content.gitbook.com/content/5ZddcKtrttWAxYuJdqkz/blobs/WFNMNwixZ8vApB9IjGEo/image.png" alt=""><figcaption></figcaption></figure>

**Enter License Key**

Insert a valid migration-center license key.

<figure><img src="https://content.gitbook.com/content/5ZddcKtrttWAxYuJdqkz/blobs/w0TyRsRzc3Gagh1RsunU/image.png" alt=""><figcaption></figcaption></figure>

**Wait for the install to finish**

When the installation finishes click on **Next** to proceed.&#x20;

<figure><img src="https://content.gitbook.com/content/5ZddcKtrttWAxYuJdqkz/blobs/BrUSarQRdVV84MfsbGez/image.png" alt=""><figcaption></figcaption></figure>

**Set date/time pattern**

You can set the **Datetime Pattern** that will be used for displaying date values in the WebClient. The dropdown menu includes of 4 the mostly widely used date/time formats.

Click **Finish** to complete the installation.

<figure><img src="https://content.gitbook.com/content/5ZddcKtrttWAxYuJdqkz/blobs/nyAvWhP8G4NFJ9MPLUl5/image.png" alt=""><figcaption></figcaption></figure>

#### Database objects created during migration-center database schemas installation

<table data-header-hidden><thead><tr><th width="345">User</th><th>Authorizations</th></tr></thead><tbody><tr><td><strong>User</strong></td><td><strong>Authorizations</strong></td></tr><tr><td><p><strong>FMEMC</strong></p><p>This User is the owner of all migration-center objects and tablespaces</p><p>Default password is <em><strong>migration123</strong></em>. Password can be changed after authorization.</p></td><td>The <strong>FMEMC</strong> user will be created as a <strong>Superuser</strong>.</td></tr></tbody></table>

**Tables** and **indexes** will be created in the default **Tablepace** unless custom tablespace locations were specified.

The user role `FMEMC_USER_ROLE` will be created and granted the required privileges on all created schema objects. This role must be granted to any database user that needs to use migration center.

**PostgreSQL DB Access**

In order to connect to the PostgreSQL database, the **FMEMC** user and the machine hosting the **WebClient** need to be specified in the **PostgreSQL Client Authentication Configuration File (pg\_hba.conf)** for your PostgreSQL database installation.

{% hint style="success" %}
We highly recommend reading the [**official PostgreSQL** **documentation**](https://www.postgresql.org/docs/current/auth-pg-hba-conf.html) for the **pg\_hba.conf**
{% endhint %}

To give access to the database for **one WebClient** and **one Jobserver** on separate servers each, for a basic configuration, you would need to add the **IPs** of the servers in the **pg\_hba.conf** file in the follwoing format:

```
host    database      user      IP-address/IP-mask                      auth-method
```

The file can be found on the PostgreSQL server. \
The default path is: **C:\Program Files\PostgreSQL\15\data\pg\_hba.conf**

**Example for IPv4:**

```
host    all   all        192.118.1.216/32                              scram-sha-256
host    all   all        192.118.1.114/32                              scram-sha-256
```

**Example for IPv6:**

```
host    all   all        fe80::147c:db68:9a19:7b0b%22/128               scram-sha-256
host    all   all        fe80::d2ce:5e91:6e5:9232%17/128                scram-sha-256
```

## Advanced DB installation

### Oracle

The tablespaces and `FMEMC` user can be created manually via scripts, and the Database installer can be run with the `FMEMC` user afterwards, instead of using the `SYS` user. This can be done by running the scripts located in `...\Database\Oracle\Util` folder of the installation kit. The scripts are:&#x20;

* `create_tablespaces_default_location.sql` or `create_tablespaces_custom_location.sql`
* `create_user_fmemc.sql`

{% hint style="warning" %}
These tablespaces must be created prior to the creation of the `FMEMC` user.
{% endhint %}

The tablespaces can be separated or merged into any number of individual datafiles, but the tablespace’s names cannot be changed (FMEMC\_DATA and FMEMC\_INDEX must not be changed).

This option is useful for if the default settings for the user `FMEMC` and tablespaces do not meet the requirements of the customer or conflict with internal company policies and guidelines.

### PostgreSQL

The `FMEMC` user can be created manually via script, and the Database installer can be run with the `FMEMC` user afterwards, instead of using the `Postgres` user. This can be done by running the script located in `...\postgres\Install` folder of the installation kit:

* `create_user.sql`

{% hint style="info" %}
Custom Tablespace locations can then be specified from the Database installer if needed.
{% endhint %}

This option is useful for if the default settings for the user `FMEMC` do not meet the requirements of the customer or conflict with internal company policies and guidelines.

## Oracle AWS RDS installation

To install the migration-center database component in an Oracle instance on **AWS RDS** you must use the scripts provided in the `...\Database\Oracle\Util\AWS-RDS` folder under the install kit. Follow the steps in this order:&#x20;

1. run the `create_tablespaces_aws_rds.sql` script
2. run the `create_user_fmemc_aws_rds.sql` script
3. run the Database installer and use the `FMEMC` user to connect to your AWS RDS Oracle instance
