OutSystems Platform this.Version.ToString() βthis.BetaVersion

Checklist for OutSystems Platform Server Installation

This checklist describes the procedures you need to perform to install, upgrade, or update OutSystems Platform Server. If you haven't already, read the System Requirements and Network Requirements technical notes to understand what it takes to install OutSystems Platform.

In order to customize the checklist content for your particular installation requirements, you need to select below the kind of installation, the corresponding roles, operating system and other properties for the machine you'll be configuring. You should do this for each machine in order to have a checklist for each one of them.

It may prove useful to print each of the generated checklists. Once you have selected the necessary items for one machine, you'll be ready to print it out. Afterwards, you can move on to another checklist configuration.

Please select which kind of task you'll be doing:

This checklist should be used when you are installing a new standalone server, a new farm installation or adding new Front-end Servers to a previous installation. If you are simply trying to upgrade an existing installation, you should use one of the other installation types.

This checklist should be used when you want to upgrade your existing system to a new release. This happens when the Major or Minor number changes (M.m.b.r). Besides fixes for reported problems, new releases usually provide new features.

This checklist should be used when you want to update your existing system to a new revision. This happens when the Major and Minor numbers are the same, but the Build or Revision number changes (M.m.b.r). Revisions usually only include fixes to reported problems.

Please select which role or combination of roles this machine will be responsible for:

Deployment Controller Servers are responsible for compiling applications and publishing the compilation to all Front-end Servers. You can only have one Deployment Controller Server per farm. Select this role if the machine you're installing will be performing only this role.

Front-end Servers are responsible for running all deployed applications. You can have as many Front-end Servers per farm as you want. Select this role if the machine you're installing will be performing only this role.

The Database is where the platform stores all its data. All other machines in your farm or standalone installation will need access to this machine in order to work. Select this role if the machine you're installing will be performing only this role.

Deployment Controller Servers are responsible for compiling applications and publishing the compilation to all Front-end Servers. You can only have one Deployment Controller Server per farm.

Front-end Servers are responsible for running all deployed applications. You can have as many Front-end Servers per farm as you want.

Select this combination if the machine will accumulate the roles of Deployment Controller Server and Front-end Server.

Deployment Controller Servers are responsible for compiling applications and publishing the compilation to all Front-end Servers. You can only have one Deployment Controller Server per farm.

The Database is where the platform stores all its data. All other machines in your farm or standalone installation will need access to this machine in order to work.

Select this combination if the machine will accumulate the roles of Deployment Controller Server and Database.

Deployment Controller Servers are responsible for compiling applications and publishing the compilation to all Front-end Servers. You can only have one Deployment Controller Server per farm.

Front-end Servers are responsible for running all deployed applications. You can have as many Front-end Servers per farm as you want.

The Database is where the platform stores all its data. All other machines in your farm or standalone installation will need access to this machine in order to work.

Select this combination if the machine will accumulate the roles of Deployment Controller Server, Front-end Server and Database.

The Kannel is responsible for connecting the Platform Server with SMSC's and GSM Modems. Select this role if you'll be installing this more recent and powerful Kannel open source WAP and SMS gateway version.

Please select what type of installation you'll be doing:

A Standalone installation is one where the single Front-end Server in the installation is also the Deployment Controller Server. It may also be the Database.

A Farm installation is one where two or more machines will be Front-end Servers or the single Front-end Server is not the same machine as the Deployment Controller Server. One of the Front-end Servers in this installation may accumulate the role of Deployment Controller Server or you can have a separate machine dedicated to that role.

Please select which operating system you'll be using on this machine:

Microsoft Windows Server 2016 (64 bit editions)

Microsoft Windows Server 2008 R2 (64 bit editions)

Microsoft Windows Server 2012 R2 (64 bit editions)

Other operating system. This option only applies to the SMS Gateway, Oracle Database machines, or databases using RDS.

Please select which database software you'll be using:

Microsoft SQL Server 2016 on Amazon RDS

Microsoft SQL Server 2016

Microsoft SQL Server 2014

Microsoft SQL Server 2012

Microsoft SQL Server 2012 on Amazon RDS

Microsoft SQL Server 2008 or 2008 R2

Oracle Database - 11g R2, 12c R1/R2, 18c, 19c

Oracle Database - 11g R2, 12c R1/R2, 18c, 19c on Amazon RDS

Microsoft Azure SQL Database

MySQL Database 5.7

MySQL Database 5.7 on Amazon RDS

MySQL Database 5.6

MySQL Database 5.6 on Amazon RDS

Please select the database authentication mechanism OutSystems Services and Applications use to connect to the database server:

Use SQL Server Authentication with username and password in connection strings.

Use Windows Authentication to connect to the OutSystems database. No password is stored in configuration files or present in the connection strings. All the Servers and Database machines need to be on the same Domain.

Overview

The document is organized in the following sections:

In each section there is a list of topics that you have to test in order to successfully install OutSystems Platform Server. The mandatory topics are the ones that must be checked in order to have a certified installation, i.e. the requirements necessary to guarantee that OutSystems supports your installation. The mandatory topics are in red and the icon associated is *. On the other hand, the optional topics are only recommended and you are not forced to check them. The optional topics are in plain text and the icon associated is .

Pre-installation check list

In this section you have a list of all the issues that you must validate before installing the software.

OutSystems Platform Server

Topics that you must check before start installing OutSystems Platform Server.

* Azure SQL Database service tier:
  • The minimum recommended service tier for a database is S3. You specify the service tier when creating the database.
Disable IPv4 checksum offload, large receive offload, large send offload and TCP checksum offload on the NIC driver settings:
  1. Access the Front-End server using Remote Desktop;
  2. Access Control Panel\Network and Internet\Network Connections;
  3. Right-click on the network adapter that reaches the SQL Server, and select Properties;
  4. Click Configure;
  5. In the Advanced tab, select the following settings* and disable them:
    • IPv4 Checksum Offload;
    • Large receive Offload (IPv4);
    • Large Send Offload (IPv4);
    • TCP Checksum Offload (IPv4).
    * The settings name may differ slightly depending on the installed driver and model.
  6. Close all dialog boxes with OK button (network connectivity will be momentarily lost).

For more details, check Timeout Connection to Amazon RDS.
* Amazon RDS dimension:
  • The minimum recommended size for a database instance is the medium size, that is, the Instance class must be at least "db.m1.medium". This is specified when you create the instance.
Amazon RDS time zones:
  • If you want your database to be in a different time zone, you will have to define the RDS time zone when creating the RDS.
    NOTE: When you change the database time zone, all your front-ends must be configured with the same time zone as the database.

    For more information about Amazon RDS time zones for Oracle check this page.
Amazon RDS time zones:
  • It is not possible to change the time zone for Microsoft SQL Server RDS. The default time zone is UTC.
    NOTE: All your front-ends must be configured with the UTC time zone.
Amazon RDS time zones:
  • You must configure your front-end using the same time zone as the RDS.
Amazon RDS High-availability:
  • If you want to have High-availability (Multi-AZ) in your RDS, it must be enabled when creating the RDS. When creating the RDS, in DB instance details, pick Yes for Multi-AZ deployment option. You can also change it for an existing Oracle RDS database in the AWS Management Console -> Instance actions -> Modify.
Amazon RDS High-availability:
  • If you want to have High-availability (Multi-AZ via Mirroring) in your RDS, it must be disabled during the execution of the Configuration Tool. When creating the RDS, in DB instance details, pick No for Multi-AZ deployment option. You can also change it for an existing SQL Server RDS database in the AWS Management Console -> Instance actions -> Modify.
* Oracle Database:
  • When creating the database, configure the character set in the Additional configuration section:
    Character set AL32UTF8 (Unicode support)
    or
    WE8MSWIN1252 (no Unicode support)
  • Choosing AL32UTF8 for Unicode support allows applications to handle non-western characters.
    For more information on this subject please refer to Recommended Database Character Sets.

  • In the database parameter group, make sure you have the NLS_DATE_FORMAT set to DD-MON-RR
* Windows Server 2016:
  • You can use any 64-bit (x64) Windows Server 2016 edition, except Server Core and Nano Server option.
* Windows Server 2008 R2:
  • You can use any 64-bit (x64) Windows Server 2008 R2 edition, except Server Core option.
* Windows Server 2012 R2:
  • You can use any 64-bit (x64) Windows Server 2012 R2 edition, except Server Core option.
* Install the latest Windows Server 2008 R2 Service Pack
* Install the latest Windows Server 2012 R2 Service Pack
* Microsoft .NET Framework (4.6.x, 4.7.x or 4.8) and Build Tools 2015 (both Runtime and Build Tools are required)
Install the latest Security Microsoft Updates
*

Add Application Server Role and Internet Information Services 7:

Open Server Manager

In the left tree, select Roles

  1. Make sure that you have installed the role Application Server. If you don't, install it by doing the following:
    1. In the right pane, click Add Roles
    2. Choose Application Server (and accept all dependencies);

  2. Make sure that you have installed the role Web Server (IIS). If you don't, install it by doing the following:
    1. In the right pane, click Add Roles
    2. Choose Web Server (IIS)
    3. In Role Services, make sure to select:
      • Under Web Server:
        • Under Application Development:
          • Choose ASP.NET
        • Under Security:
          • Choose Windows Authentication
        • Under Performance:
          • Choose Static Content Compression
          • Choose Dynamic Content Compression
        • Under Management Tools:
          • Choose IIS Management Console
          • Under IIS 6 Management Compatibility:
            • Choose IIS 6 Metabase Compatibility
      • Make sure to accept all dependencies of the items mentioned above. For all the items not mentioned above, leave the default value.

If the role is already installed, confirm that the above items are already installed. If they are selected, then their dependencies are also correctly chosen.

*

Add Application Server Role and Internet Information Services 8.5:

Open Server Manager and, in the left tree, select Local Server

On the right window, scroll down to the Roles and Features list and make sure that you have installed the Application Server and Web Server(IIS) roles. If you don't, make sure to follow these instructions:

  • Installing the Application Server and Web Server (IIS) roles:
    1. Click the Manage menu and then click Add Roles and Features
    2. On the Installation Type page, select Role-based or feature based installation and click Next
    3. On the Server Selection page, select your Local Server from the server pool and click Next
    4. On the Server Roles page, select Application Server (accepting all dependencies) and click Next
    5. On the Application Server Role Services page, select Web Server (IIS) Support from the list
    6. On the Add Roles and Features wizard, click Add Features
    7. On the Application Server Role Services page, click Next
    8. On the Web Server Role (IIS) Role Services page, ensure the following role services are selected in this list:
      • Common HTTP Features
        • Default Document
        • Directory Browsing
        • HTTP Errors
        • Static Content
      • Health and Diagnostics
        • HTTP Logging
        • Request Monitor
      • Performance
        • Static Content Compression
        • Dynamic Content Compression
      • Security
        • Request Filtering
        • Windows Authentication
      • Application Development
        • .NET Extensibility 4.5
        • ASP.NET 4.5
        • ISAPI Extensions
        • ISAPI Filters
      • Management Tools
        • IIS Management Console
        • IIS 6 Management Compatibility
          • IIS 6 Metabase Compatibility
    9. On the Confirmation page, click Install

If the roles are already installed, confirm that the above items are installed as well. If they are selected, then check that their dependencies are also correctly chosen.

For more information on Installing IIS 8.5 visit http://www.iis.net/learn/install/installing-iis-85/installing-iis-85-on-windows-server-2012-r2.

*

Add Internet Information Services 10.0:

Open Server Manager and, in the left tree, select Local Server

On the right window, scroll down to the Roles and Features list and make sure that you have installed the Web Server(IIS) role. If you don't, make sure to follow these instructions:

  • Installing the Web Server (IIS) role:
    1. Click the Manage menu and then click Add Roles and Features
    2. On the Installation Type page, select Role-based or feature based installation and click Next
    3. On the Server Selection page, select your Local Server from the server pool and click Next
    4. On the Server Roles page, select Web Server (IIS) from the list
    5. On the Add Roles and Features wizard, click Add Features
    6. On the Web Server Role (IIS) page, click Next
    7. On the Web Server Role (IIS) Role Services page, ensure the following role services are selected in this list, installing any further required dependencies:
      • Common HTTP Features
        • Default Document
        • Directory Browsing
        • HTTP Errors
        • Static Content
      • Health and Diagnostics
        • HTTP Logging
        • Request Monitor
      • Performance
        • Static Content Compression
        • Dynamic Content Compression
      • Security
        • Request Filtering
        • Windows Authentication
      • Application Development
        • .NET Extensibility 4.6
        • ASP.NET 4.6
        • ISAPI Extensions
        • ISAPI Filters
      • Management Tools
        • IIS Management Console
        • IIS 6 Management Compatibility
          • IIS 6 Metabase Compatibility
    8. On the Confirmation page, click Install

If the role is already installed, confirm that the above items are installed as well. If they are selected, then check that their dependencies are also correctly chosen.

For more information on Installing IIS visit http://www.iis.net/learn/install/installing-iis-85/installing-iis-85-on-windows-server-2012-r2.
NOTE: Installation guide for IIS 10.0 in Windows 2016 is similar to IIS 8.5 in Windows 2012

*

Install Message Queuing:

Open Server Manager and, in the left tree, select Local Server

On the right window, scroll down to the Roles and Features list and make sure that you have installed the Message Queueing feature. If you don't, make sure to follow these instructions:

  • Installing the Message Queueing feature:
    1. Click the Manage menu and then click Add Roles and Features
    2. On the Installation Type page, select Role-based or feature based installation and click Next
    3. On the Server Selection page, select your Local Server from the server pool and click Next
    4. On the Server Roles page, click Next
    5. On the Features page, select the Message Queuing Server feature from the list (located under Message Queuing > Message Queuing Services) and click Next
    6. On the Confirmation page, click Install
*

Install Message Queuing:

Open Server Manager

In the left tree, select Features

Make sure to have installed the feature Message Queuing. If you don't, install it by doing the following:

  1. In the right pane, click Add Features
  2. Select:
    • Under Message Queuing:
      • Under Message Queuing Services:
        • Choose Message Queuing Server
*

Install Windows Process Activation Service:

Open Server Manager and, in the left tree, select Local Server

On the right window, scroll down to the Roles and Features list and make sure that you have installed the Windows Process Activation Service feature. If you don't, make sure to follow these instructions:

  • Installing the Windows Process Activation Service:
    1. Click the Manage menu and then click Add Roles and Features
    2. On the Installation Type page, select Role-based or feature based installation and click Next
    3. On the Server Selection page, select your Local Server from the server pool and click Next
    4. On the Server Roles page, click Next
    5. On the Features page, expand the Windows Process Activation Service feature from the list and select:
      • Configuration APIs
      • Process Model
      Then click Next
    6. On the Confirmation page, click Install
In registry, add the AlwaysWithoutDS DWORD (32-bit) registry value under HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\MSMQ\Parameters\Setup, with a value of 1:
  • The message queues will always try to contact a message queue server when running on a server registered in a domain, even if installed as local.
* Check that you have the minimum Role Services and Features needed installed on the machine
  • To do that, open Server Manager
    • In the left tree, select Roles
      • Make sure that you have in the Web Server (IIS) Role the following services installed:
        • Web Server
          • Common HTTP Features
            • Static Content
            • Default Document
            • Directory Browsing
            • HTTP Errors
          • Application Development
            • .NET Extensibility 4.5
            • ASP.NET 4.5
            • ISAPI Extensions
            • ISAPI Filters
          • Health and Diagnostics
            • HTTP Logging
            • Request Monitor
          • Security
            • Windows Authentication
            • Request Filtering
          • Performance
            • Static Content Compression
            • Dynamic Content Compression
          • Management Tools
            • IIS Management Console
            • IIS 6 Management Compatibility
              • IIS 6 Metabase Compatibility
    • In the left tree, select Features
      • Make sure that you have the following Features installed:
        • Message Queuing
          • Message Queuing Services
            • Message Queuing Server
        • Remote Server Administration Tools
          • Role Administration Tools
            • Web Server (IIS) Tools
        • Windows Process Activation Service
          • Process Model
          • .NET Environment
          • Configuration APIs
* Check that you have the minimum Role Services and Features needed installed on the machine
  • To do that, open Server Manager and, in the left tree, select Local Server
  • Make sure that you have in the Web Server (IIS) path the following services installed:
    • Web Server
      • Application Development
        • ASP .NET
        • ISAPI Extensions
        • ISAPI Filters
      • Common HTTP Features
        • Default Document
        • Directory Browsing
        • HTTP Errors
        • Static Content
      • Health and Diagnostics
        • HTTP Logging
        • Request Monitor
      • Performance
        • Dynamic Content Compression
        • Static Content Compression
      • Security
        • Request Filtering
        • Windows Authentication
    • Management Tools
      • IIS 6 Management Compatibility
        • IIS 6 Metabase Compatibility
      • IIS Management Console
  • Make sure that you have in the Message Queueing path the following services installed:
    • Message Queuing
      • Message Queuing Services
        • Message Queuing Server
  • Make sure that you have in the Windows Process Activation Service path the following services installed:
    • Windows Process Activation Service
      • Configuration APIs
      • Process Model
*

Confirm that Windows Search is off:

This service is not installed by default. To determine if it is installed:

  • Open Server Manager
  • In the left tree, select Configuration - Services
  • See if a service named Windows Search exists. If so, set its properties to Startup Type: Disabled, and stop it.
*

Confirm that Windows Search is off:

This service is not installed by default. To determine if it is installed:

  • Open Server Manager and, in the left tree, select Local Server
  • Scroll down to the Services list
  • See if a service named Windows Search exists. If so, set its properties to Startup Type: Disabled, and stop it.
* Confirm that Windows Management Instrumentation Service is on and set to Automatic start:
  • Open Server Manager
  • In the left tree, select Configuration - Services
  • Locate service Windows Management Instrumentation. Confirm its properties to Startup Type: Automatic, and confirm that it is started.
* Confirm that Windows Management Instrumentation Service is on and set to Automatic start:
  • Open Server Manager and, in the left tree, select Local Server
  • Scroll down to the Services list
  • Locate service Windows Management Instrumentation. Confirm its properties to Startup Type: Automatic, and confirm that it is started.
* Set appropriate size for Event Logs:
  • Make sure that Event logs Application, Security and System have the default options:
    • Overwrite events as needed
    • Maximum log size: 20480KB
  • To confirm this:
    • Open Server Manager
    • In the left tree, select Diagnostics - Event Viewer - Windows Logs
    • Right-click each of the mentioned logs and choose Properties
    • Confirm the above mentioned options
* Set appropriate size for Event Logs:
  • Make sure that Event logs Application, Security and System have the default options:
    • Overwrite events as needed
    • Maximum log size: 20480KB
  • To confirm this:
    • Open Server Manager and, in the top menu, under Tools, select Event Viewer
    • In the left tree select Windows Logs
    • Right-click each of the mentioned logs and choose Properties
    • Confirm the above mentioned options
* Microsoft SQL Server:

You need to confirm the collations on both the database instance and the database catalog that will be used by OutSystems Platform Server:

  • The database instance must be Case-insensitive;
  • The database instance must be installed with Mixed mode authentication;
  • The database catalog must be Case-insensitive and should also be Accent-insensitive.


When installing SQL Server:

  • When asked, choose authentication option Mixed mode - SQL Server and Windows Authentication;
  • Uncheck the Case-sensitive option (and, if possible, the accent-sensitive option as well. Database catalogs created afterwards just have to inherit the server settings and will also be case-insensitive.
    • Database catalogs should also be Accent-insensitive (this will allow your applications to perform queries on data without having to worry about character accents)
    • Actual collation to be used must comply with specific demands of the application to be deployed.


When SQL Server is already installed:

To confirm that the database instance complies with the specified requirements do the following:

  • Connect to the database server using SQL Server Management Studio;
  • In Object Explorer, right-click the top level of the object tree, and select Properties;
  • In the General page, confirm that Server Collation is case-insensitive. If the collation name contains CI_AI or CI_AS, the collation is case-insensitive;
  • In the Security page, confirm that Server authentication is configured with option SQL Server and Windows Authentication mode (mixed mode).

To confirm that the database catalog also complies with the specified requirements do the following:

  • Still using SQL Server Management Studio, in Object Explorer expand the Databases folder under the top level of the object tree;
  • Locate the database catalog that you will be using;
  • Right-click it and select Properties;
  • In the General page, confirm that Collation is case-insensitive. If the collation name contains CI_AI or CI_AS, the collation is case-insensitive.
* Azure SQL:

You need to confirm the collations on both the database instance and the database catalog that will be used by OutSystems Platform Server:

  • The database instance must be Case Insensitive;
  • The database catalog must be Case Insensitive and should also be Accent Insensitive.

To confirm that the database catalog also complies with the specified requirements do the following:

  • Using SQL Server Management Studio, in Object Explorer expand the Databases folder under the top level of the object tree;
  • Locate the database catalog that you will be using;
  • Right-click it and select Properties;
  • In the General page, confirm that Collation is case-insensitive. If the collation name contains CI_AI or CI_AS, the collation is case-insensitive.
To improve performance, when creating the databases in Microsoft SQL Server, configure the default data and log files location to a partition with a 64KBcluster size.
* Due to a severe bug in SQL Server 2008 (KB958611) make sure that at least one of the following updates is installed:
  • Cumulative update package 2 for SQL Server 2008. You can download it here.
  • SQL Server 2008 Service Pack 1. You can download it here.
Install the latest Microsoft SQL Server Service Packs
* In SQL Server Configuration Manager, the SQL Server Service must be running and with Start Mode - Automatic
* Confirm that the TCP/IP protocol is enabled in SQL Server:
  • In SQL Server Configuration Manager, expand SQL Server Network Configuration and choose Protocols for <Instance_name>
  • Right-click TCP/IP and choose Properties
  • In the IP Addresses tab, configure the IP to be used. If in doubt, leave all defaults;
  • In the Protocol tab, change Enabled to Yes. Click OK.
  • Restart the SQL Server service.
* Oracle Database:
  • Ensure you install Oracle 11g R2, Oracle 12c R1/R2, Oracle 18c or Oracle 19c
  • When creating the database in Oracle 11g R2 or Oracle 12c R1, make sure the block size is set to at least 8KB
  • When creating the database in Oracle 12c R2, make sure the block size is set to:
  • When creating the database in Oracle 18c or Oracle 19c, make sure the block size is set to at least 8KB
  • When creating the database, set the following NLS parameters:
    NLS_LANGUAGE AMERICAN
    NLS_TERRITORY AMERICA
    NLS_CHARACTERSET AL32UTF8 (Unicode support)
    or
    WE8MSWIN1252 (no Unicode support)
    NLS_DATE_FORMAT DD-MON-RR
    NLS_SORT BINARY
  • Choosing AL32UTF8 for Unicode support allows applications to handle non-western characters.
    For more information on this subject please refer to Recommended Database Character Sets.

  • The minimum recommended limit of Oracle system processes and sessions is 250. Higher values might be required for highly loaded environments, so adjust accordingly.
    • To display the current limit of system processes and sessions in your database, execute the following statement as sysdba: SELECT Value FROM v$parameter WHERE Name='processes' or Name='sessions';
    • To change the number of system processes of your database, execute a statement like:
      ALTER SYSTEM SET processes=250 SCOPE=spfile;
      ALTER SYSTEM SET sessions=250 SCOPE=spfile;
      followed by a database restart
  • If the patch to fix Oracle bug 1782025, Doc ID 223515 is not installed, then when creating the database, make sure that the CURSOR_SHARING system parameter is set to the Default value ("Exact")
    • To check if the patch is installed, use "opatch lsinventory". For more information, check opatch.
    • To check the current value execute as the sysdba user: show parameters cursor_sharing
    • It should show "EXACT" on the Value column. If not, run the following query to change it: alter system set cursor_sharing='EXACT'
* Oracle 12c R1/R2 Adaptive Optimizer:
  • Running Oracle 12c database with the adaptive optimizer feature enabled results in serious performance degradation. As such, the adaptive optimizer feature must be disabled.
    • If you are using Oracle 12c R1 without patch 22652097, you must follow these steps to disable the OPTIMIZER_ADAPTIVE_FEATURES:
      • Execute the following statement as sysdba:
        ALTER SYSTEM SET optimizer_adaptive_features=false SCOPE=spfile;
      • Restart the database
    • If you are using Oracle 12c R2 or Oracle 12c R1 with patch 22652097 installed, you must ensure that OPTIMIZER_ADAPTIVE_PLANS (default is true) and OPTIMIZER_ADAPTIVE_STATISTICS (default is false) are set to their default values:
      • Execute the following statement as sysdba:
        ALTER SYSTEM SET optimizer_adaptive_plans=true SCOPE=BOTH;
        ALTER SYSTEM SET optimizer_adaptive_statistics=false SCOPE=BOTH;

      • Restart the database

      For more information about the changes in the Adaptive Optimizer introduced in Oracle 12c R2 (or Oracle 12c R1 with patch 22652097), please check this Oracle blog post.
  • If you are using Oracle 18c or Oracle 19c this step is not needed.
For better stability and performance create a separate Oracle database instance for the session database model using the same configuration as the main database, but with the noarchivelog option set.
* Oracle Services:
  • Make sure the following services/processes are running in the Oracle:
    • Oracle TNS Listener
    • OracleService<SID>
    • <SID> - the Service Id that identifies the instance you are going to use
* Oracle 11g R2 Patch (Linux):
  • If you are using a Linux operating system, make sure the following patch is applied:
    • Oracle patch number 8799099.
* MySQL Database:
  • Ensure you use MySQL 5.6.(5+)
  • Ensure you use MySQL 5.7.(22+)
  • Make sure the following configurations are set on the mysqld section
    • Make sure sql mode is set to "STRICT_TRANS_TABLES,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION"
    • Make sure innodb_file_per_table is set to 1
    • Make sure default-storage-engine is set to INNODB
    • Make sure lower_case_table_names is set to 1
    • Make sure max_allowed_packet is set to at least 128M
    • Make sure log_bin_trust_function_creators is set to 1
    • Make sure innodb_log_file_size is set to at least 1280M
    • Make sure character-set-client-handshake is set to FALSE
    • Make sure character-set-server is set to utf8mb4
    • Make sure collation-server is set to at least utf8mb4_unicode_ci
  • Make sure the following configurations are set on the client section
    • Make sure default-character-set is set to at least utf8mb4
  • Make sure the following configurations are set on the mysql section
    • Make sure default-character-set is set to at least utf8mb4
  • Restart the MySQL database server for configurations to take effect
This can be done by editing the MySQL configuration file:
  • C:\ProgramData\MySQL\MySQL Server 5.7\my.ini
  • C:\ProgramData\MySQL\MySQL Server 5.6\my.ini

The file should look like this:
		[mysqld]
		sql_mode=STRICT_TRANS_TABLES,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION
		lower_case_table_names=1
		max_allowed_packet=128M
		default-storage-engine=INNODB
		log_bin_trust_function_creators=1
		innodb_log_file_size=1280M
		innodb_file_per_table=1
		character-set-client-handshake = FALSE
		character-set-server = utf8mb4
		collation-server = utf8mb4_unicode_ci

		[client]
		default-character-set = utf8mb4

		[mysql]
		default-character-set = utf8mb4
		
If you have extra configuration make sure there are no duplicate settings.
* MySQL Database:
  • Ensure you use MySQL 5.6.(5+)
  • Ensure you use MySQL 5.7.(22+)
  • Make sure sql mode is set to "STRICT_TRANS_TABLES"
  • Make sure innodb_file_per_table is set to 1
  • Make sure default-storage-engine is set to INNODB
  • Make sure lower_case_table_names is set to 1
  • Make sure max_allowed_packet is set to at least 128M
  • Make sure log_bin_trust_function_creators is set to 1
  • Make sure innodb_log_file_size is set to at least 1280M
  • Make sure character_set_client_handshake is set to FALSE
  • Make sure character_set_server is set to utf8mb4
  • Make sure collation_server is set to at least utf8mb4_unicode_ci
This can be done through the DB Parameter Group capability of Amazon RDS
*

Confirm that FIPS Compliant Algorithms are disabled:

  • Click on Start, type 'gpedit.msc' on search bar and press enter
  • Go to: Computer Configuration > Windows Settings > Security Settings > Local Policies > Security Options
  • Ensure that System cryptography: Use FIPS compliant algorithms for encryption, hashing, and signing is disabled
*

Confirm that FIPS Compliant Algorithms are disabled:

  • Open Server Manager
  • Click on Tools > Local Security Policy
  • Under Local Policies, click on Security Options
  • Ensure that System cryptography: Use FIPS compliant algorithms for encryption, hashing, and signing is disabled
*

Ensure that the clocks of all Front-end servers are synchronized

Synchronizing the clocks of all Front-end servers will prevent clock skew problems that can impact the experience of users accessing your applications.

Legend: * Mandatory; Optional.

* Download the Kannel 1.4.3 pre-compiled binary packages from http://www.kannel.com/download.shtml
Check Kannel documentation at http://www.kannel.com/doc.shtml
Check Kannel User Guide at http://www.kannel.org/download/1.4.3/userguide-1.4.3/userguide.html
Download, from OutSystems Network, Technical Note Third-party SMS gateway integration

Legend: * Mandatory; Optional.

Installation check list

In this section you have a list of all the steps that you must follow to guarantee that the software was successfully installed.

OutSystems Platform Server

This section provides the steps that you must follow to successfully install your Deployment Controller Server or Front-end Server.

*

In Microsoft Azure PortalSQL Server, create two database catalogs to be used by OutSystems Platform Server:

  • One of the catalogs will be used to configure runtime settings in Configuration Tool;
  • The other catalog will be used to configure session settings in Configuration Tool.
* Install the Platform Server:
  • Run the installation file PlatformServer-M.m.b.r.exe and follow the on screen installation instructions
Install SAP Connector Libraries:
  • Download the SAP Connector for Microsoft.NET 3.0.x for Windows 64bit (Compiled with .NET Framework 4.0) from SAP Service Marketplace.
  • Install the Connector, remember the installation directory. When asked about installing assembies to GAC, choose "None".
  • From the Connector installation directory copy the sapnco.dll and sapnco_utils.dll files to the \thirdparty\lib\ directory in the Platform Server installation directory (e.g.: C:\Program Files\OutSystems\Platform Server\thirdparty\lib\)
  • From the Connector installation directory copy the libicudecnumber.dll and rscp4n.dll to the %WINDIR%\system32\ directory
NOTE
  • This step is only required if you are going to integrate OutSystems Platform with your SAP.
  • If this step is done later, after you have installed the Platform, you must repeat the mandatory steps below.
*

If until now you have not installed Platform Server in your Deployment Controller Server you should follow the Deployment Controller Server checklist up until that point.

Once that step has been completed you will be instructed to resume this checklist.

*

At this point you need to have the data and session model created. If you do not have it created yet, please refer to the Database profile in this checklist.

* Execute the Platform Server database creation script.
  • You can find it in the Deployment Controller server under the OutSystems Platform Server installation directory, in db\runtime_oracle_creation.sql. This file allows you to create users, tablespaces and grants the necessary permissions. By default, when executing this file, the following objects will be created:
    • Users: OSADMIN, OSRUNTIME, OSLOG
    • Tablespaces: OSSYS, OSIDX, OSUSR, OSLOG
    • Grants:
      • OSADMIN: Create Session, Create View, Create Table, Alter Session, Create Sequence, Create Procedure, Create Trigger
      • OSRUNTIME: Create Session
      • OSLOG: Create Session
  • Please check with your Database Administrator how to do this according to your database environment. At the very least, you should make sure the file paths, tablespaces and users don't clash with existing objects in the database.
  • If you change any of these settings, remember to do so throughout the file.
  • You'll need the usernames, passwords and tablespaces used in this script to configure Platform Server later on.
* Execute the Platform Server database creation script.
  • You can find it in the Deployment Controller server under the OutSystems Platform Server installation directory, in db\RDS_runtime_oracle_creation.sql. This file allows you to create users, tablespaces and grants the necessary permissions. By default, when executing this file, the following objects will be created:
    • Users: OSADMIN, OSRUNTIME, OSLOG
    • Tablespaces: OSSYS, OSIDX, OSUSR, OSLOG
    • Grants:
      • OSADMIN: Create Session, Create View, Create Table, Alter Session, Create Sequence, Create Procedure, Create Trigger
      • OSRUNTIME: Create Session
      • OSLOG: Create Session
  • Please check with your Database Administrator how to do this according to your database environment. At the very least, you should make sure the file paths, tablespaces and users don't clash with existing objects in the database.
  • If you change any of these settings, remember to do so throughout the file.
  • You'll need the usernames, passwords and tablespaces used in this script to configure Platform Server later on.
* Execute the Platform Server database creation script.
  • You can find it in the Deployment Controller server under the OutSystems Platform Server installation directory, in db\runtime_mysql_creation.sql. This file allows you to create users schemas and the necessary permissions. Please make sure you change the default passwords! By default, when executing this file, the following objects will be created:
    • Schema: outsystems
    • Users: OSADMIN, OSRUNTIME, OSLOG
    • Grants:
      • OSADMIN: SELECT on information_Schema , All privileges outsystems schema
      • OSRUNTIME: SELECT, INSERT, UPDATE, DELETE, EXECUTE, CREATE ROUTINE, ALTER ROUTINE, CREATE TEMPORARY TABLES, LOCK TABLES
      • OSLOG: SELECT, INSERT, UPDATE, DELETE, EXECUTE, CREATE TEMPORARY TABLES, LOCK TABLES
  • Please check with your Database Administrator how to do this according to your database environment. At the very least, you should make sure the schemas and users don't clash with existing objects in the database.
  • If you change any of these settings, remember to do so throughout the file.
  • You'll need the usernames and passwords used in this script to configure Platform Server later on.
* Execute the Platform Server session creation script.
  • You can find it in the Deployment Controller server under the OutSystems Platform Server installation directory, in db\session_mysql_creation.sql.
  • This allows you to configure the schema the user and password. Please make sure you change the default passwords By default, the objects are set to:
    • Schema: outsystems_session
    • User: OSSTATE
  • If you change any of these settings, remember to do so throughout the file.
  • Run this script like you did with the script to create the data model of OutSystems Platform.
* Configure Platform Server settings with the Configuration Tool
- Platform Database


Start the Configuration Tool (Start -> Programs -> OutSystems -> Administration Tools).

Configure the Platform Database Schema (Database tab):
  • Set "Oracle" in the drop-down list Database Provider
  • Set the Oracle database to be used by configuring the Database section.
    If you have any doubt on how to configure this section, please use the More info link, near the Naming method drop-down.
  • Fill in User in the Admin section using the database login previously created for the Admin role
  • Fill in Tablespace and Index Tablespace fields in the Admin section with the System Tablespace and the Index Tablespace previously created
  • Fill in User in the Runtime section using the database login previously created for the Runtime role
  • Fill in Tablespace field in the Runtime section with the Runtime Tablespace previously created
  • Fill in User in the Log section using the database login previously created for the Log role
  • Fill in Tablespace field in the Log section with the Log Tablespace previously created
  • Test all users to confirm correct connectivity. For this, click Test Connection for each of the users configured.
  • Create the Platform Database schema by clicking the Create/Upgrade Database button.

Do not close the Configuration Tool at this point - further tasks are to be performed.
* Configure Platform Server settings with the Configuration Tool
- Platform Database


Start the Configuration Tool (Start -> Programs -> OutSystems -> Administration Tools).

Configure the Platform Database Schema (Database tab)::
  • Set "MySQL Database" in the drop-down list DBMS
  • Set the MySQL database to be used by configuring the Server field:
    • You can use either the DNS name or the IP of the database although DNS name is recommended
    • Examples: mysqlserver
  • Set the MySQL schema to be used by configuring the Schema field:
  • Fill in Admin user in the Admin section using the database login previously created for the Admin role
  • Fill in Runtime user in the Runtime section using the database login previously created for the Runtime role
  • Fill in Log user in the Log section using the database login previously created for the Log role
  • Test all users to confirm correct connectivity. For this, click Test Connection for each of the users configured.
  • Create the Platform Database schema by clicking the Create/Upgrade Database button.

Do not close the Configuration Tool at this point - further tasks are to be performed.
* Execute the Platform Server session creation script.
  • You can find it in the Deployment Controller server under the OutSystems Platform Server installation directory, in db\session_oracle_creation.sql.
  • This allows you to configure the tablespace, the tablespace's datafile location, the user and password. By default, the objects are set to:
    • Tablespace: OSSTATE
    • User: OSSTATE
  • If you change any of these settings, remember to do so throughout the file.
  • Run this script like you did with the script to create the data model of OutSystems Platform.
* Execute the Platform Server session creation script.
  • You can find it in the Deployment Controller server under the OutSystems Platform Server installation directory, in db\RDS_session_oracle_creation.sql.
  • This allows you to configure the tablespace, the tablespace's datafile location, the user and password. By default, the objects are set to:
    • Tablespace: OSSTATE
    • User: OSSTATE
  • If you change any of these settings, remember to do so throughout the file.
  • Run this script like you did with the script to create the data model of OutSystems Platform.
* Configure Platform Server settings with the Configuration Tool
- Session State Database


Configure the Platform Session Database (Session tab):
  • Set the Oracle database to be used by configuring the Database Section.
    The configuration process for this Database is the same used in the Platform Database
  • Configure the User, Password and Tablespace with the session database login and the session tablespace previously created
  • Press the Test Login button to confirm that the settings are correct
  • Create the Session Database schema by clicking the Create Session Database button.

Do not close the Configuration Tool at this point - further tasks are to be performed.
* Configure Platform Server settings with the Configuration Tool
- Session State Database


Configure the Platform Session Database (Session tab):
  • Set the MySQL database to be used by configuring the Server field:
    • Set the MySQL server to be used by configuring the Server field:
      • You can use either the DNS name or the IP of the database although DNS name is recommended for the server
      • Examples: mysqlserver
    • Set the MySQL schema to be used by configuring the Schema field:
    • Configure the User, Password with the session database login previously created
    • Press the Test Login button to confirm that the settings are correct
    • Create the Session Database schema by clicking the Create Session Database button.

    Do not close the Configuration Tool at this point - further tasks are to be performed.
* Make sure the database catalog recovery model is set to Simple. Check How to Set the Catalog Recovery Model.
* Configure Platform Server settings with the Configuration Tool
- Platform Database


Start the Configuration Tool (Start -> Programs -> OutSystems -> Administration Tools).

Configure the Platform Database (Database tab):
  1. In the Database Provider drop-down list, choose SQL Server / Azure SQL
  2. Configure Server and Database fields:
    • Server is the name or IP of the database server, and instance or TCP port indication if it is the case.
      Examples: localhost, 192.168.1.2, srvdatabase\CORP, 10.10.10.01,1433
    • Database is the name of the database catalog created to be used by the Platform Server.
      Example: outsystems
      Note: if a catalog with the same name exists in the database, it will be re-used. If it does not exist, it will be created with the Latin1_General_CI_AI collation.
  3. Select Database Authentication as the Database Authentication
    Note: if you prefer using Windows users and passwords, please select Windows Authentication as the database authentication mechanism on the top of this document to update the checklist content.
  4. Select Windows Authentication as the Database Authentication
    Note: if you prefer using SQL Server users and passwords, please review this checklist's selections in the top of this document to update the checklist content.
  5. Select the Admin user:
    • Fill in the User and Password fields in the Admin section.
      -> the Admin user must be an existing and valid domain user. The password is needed to configure the identity for the OutSystems Deployment services. This user will be granted local administrator permission (to deploy new applications and manage the IIS) and Database owner privileges (to create and upgrade the applications database models). This user will also be granted the "Log on as a Service" right.
  6. Select the Runtime user:
    • Fill in the User and Password fields in the Runtime section.
      -> the Runtime user must be an existing and valid domain user. The password is needed to configure the identity for the OutSystems application pool and some OutSystems services. This user will have restricted local permissions (to execute applications) and Database read & update privileges. This user will also be granted the "Log on as a Service" right.
  7. Select the Log user:
    • Fill in the User and Password fields in the Log section.
      -> the Log user must be an existing and valid domain user. The password is needed to configure the identity for the OutSystems Log service. This user will have limited database read & update privileges. This user will also be granted the "Log on as a Service" right.
  8. Click on Advanced Settings:
    • Increase the Default Query Timeout. As a baseline set it to 60 seconds. Adjust it as necessary according to your database service tier.
  9. Click the Grant Permissions button. This will:
    • Create the database catalog (if it does not exist);
    • Create the users you indicated (if they do not exist);
    • Grant the needed permissions for the Platform Admin, Platform Runtime and Platform Log roles.
    -> To do this, the Configuration Tool may prompt you to provide a database login with permissions to create a new database.
    For example, you can use the credentials of the saServer admin user.
    If you prefer to have your dba run the setup script you can go to File > Generate Runtime Script to get it.
    After the dba runs the script, click the Grant Permissions button to grant the required permissions to the application server and OutSystems services.
  10. Create the Platform Database schema by clicking the Create/Upgrade Database button.

Do not close the Configuration Tool at this point - further tasks are to be performed.
* Configure Platform Server settings with the Configuration Tool
- Session State Database


Configure the Platform Session Database (Session tab):
  1. Configure Server and Database fields:
    • Server is the name or IP of the database server, and instance or TCP port indication if it is the case.
      Examples: localhost, 192.168.1.2, srvdatabase\CORP, 10.10.10.01,1433
      You can use the same database server you used in the Database tab, or you can use another server.
    • Database is the name of the database catalog to store the Session Database model.
      This catalog cannot be the same as the one configured in the Database tab.
      Example: ASPStateOS
      Note: if a catalog with the same name exists in the database, it will be re-used. If it does not exist, it will be created.
  2. Choose the credentials for the Session user:
    • Fill in the User and Password fields in the Session section.
      A user will be created, with these credentials, in the next step.
  3. Click Create Session Database. This will:
    • Create the database catalog (if it does not exist);
    • Create the login you indicated (if it does not exist) and grant the needed permissions to the user;
    • Update the catalog definition.
    -> To do this, the Configuration Tool may prompt you to provide a database login with permissions to create a new database.
    For example, you can use the credentials of the saServer admin user.
    If you prefer to have your dba run the setup script you can go to File > Generate Session Script to get it.
    Just make sure you dba runs it before continuing with the next step.

Do not close the Configuration Tool at this point - further tasks are to be performed.
* In the Platform Server Configuration Tool, Controller tab, set the Deployment Controller Server IP address or host name.
* Define the password for the Platform Server administrator account

If you had previously defined this password, you may skip this step.

  • Go to the Credentials tab in the Configuration Tool;
  • Fill the Password and Confirm Password fields. Remember that your password:
    • Is case sensitive;
    • Must be at least 6 characters long;
    • Cannot be equal to or contain your username;
  • Ensure that both passwords match.
If the front-end being configured has more than one network card, and if the Controller server can only communicate with this front-end on one of the network cards, you need to change a setting in the Configuration Tool to specify which IP will be used by the Controller to communicate with the front-end. To do this:
  • Access the Network tab in the Configuration Tool;
  • Under Front-End Registration, choose the IP which the Controller will use to communicate from the Local IP Address drop-down. If you don't see the IP there, you can type it manually.
If there is a SMS Gateway, access Gateways tab in the Platform Server Configuration Tool, and configure its parameters. For more details, refer to the SMS Gateway role of this checklist.
* Click the Apply and Exit button on the Configuration Tool.
  • Answer Yes if a popup shows up asking to start the OutSystems Scheduler Service and the OutSystems SMS Connector Service.
  • Answer No if a popup shows up asking to start the OutSystems Scheduler Service and the OutSystems SMS Connector Service.
  • A popup will be shown asking you to run the Service Center installation. Accept by clicking Yes.
* Stop and disable the OutSystems Deployment Service.
Disable the OutSystems SMS Connector Service and the OutSystems Scheduler Service.
* Export the configuration file, for use in the front-ends

In the Platform Server Configuration Tool, export the configuration file by using File -> Export configuration...
Save the file in a convenient location.
Exit the Configuration Tool by clicking File -> Exit.
* Import the configuration file decryption's key

Copy the Controller's \Program Files\OutSystems\Platform\private.key to the same location.
* Import the configuration file

In the Platform Server Configuration Tool, import the configuration file by using File -> Import configuration... and choosing the appropriate file, exported from the Deployment Controller server.

Confirm the IP which will be used to register the front-end with the controller:
  • Access the Network tab in the Configuration Tool;
  • Under Front-End Registration, if the Local IP Address option is not set as (automatic), confirm that the IP address belongs to the machine where the Configuration Tool is being run. If needed, fix this by choosing an IP address from the drop-down, choosing (automatic) or typing it manually.
  • If the front-end being configured has more than one network card, and if the Controller server can only communicate with this front-end on one of the network cards, choose the IP which the Controller will use to communicate from the Local IP Address drop-down. If you don't see the IP there, you can type it manually.

* Apply the Configurations
  • Fill in the Password field in the Admin section.
  • Click the Apply and Exit button on the Configuration Tool.
    • Answer Yes if a popup shows up asking to start the OutSystems Scheduler Service and the OutSystems SMS Connector Service.
    • Answer No when a popup asks you to run the Service Center installation.
* Disable the OutSystems Deployment Controller Service
* Install Development Environment:
  • Run the installation file DevelopmentEnvironment-M.m.b.r.exe and follow the on screen installation instructions
* Install an SSL certificate:

Legend: * Mandatory; Optional.

* Follow the Kannel's official installation instructions to install and configure Kannel 1.4.3. It is recomended to use pre-compiled binary packages.
Configure Kannel to forward incoming SMSs (Mobile originated SMSs) to the Platform Server:
  • In the Kannel machine, go to the Kannel's installation directory;
  • Locate the 'kannel.conf' file and edit it;
  • Under the sms-service group (line started with group = sms-service) create or Update 'get-url' property to: "http://<Platform Server Front-End IP>/dispatcher/dispatch.aspx?message=%a&from=%p&to=%P&bin=%b&coding=%C&udh=%u&sent=%t";
  • Save the file and exit;
  • If the Kannel is running, restart it to reload the new configuration.

Legend: * Mandatory; Optional.

Post-installation check list

In this section you have a list of all the steps that you check after installing OutSystems software.

OutSystems Platform Server

After installing OutSystems Platform Server, check the following topics.

Amazon RDS High-availability:
  • If you want to have High-availability (Multi-AZ via Mirroring) in your RDS, you must enable it after the execution of the Configuration Tool. This is done via AWS Management Console -> Instance actions -> Modify.
* Check if the following services are started and their startup type is set to Automatic:
  • OutSystems Deployment Controller Service
  • OutSystems Deployment Service
  • OutSystems Log Service
  • OutSystems Scheduler Service
  • OutSystems SMS Connector Service
* Check if only the following OutSystems services are enabled:
  • OutSystems Deployment Controller Service
  • OutSystems Log Service
* Check if only the following OutSystems services are enabled:
  • OutSystems Deployment Service
  • OutSystems Scheduler Service
  • OutSystems Log Service
  • OutSystems SMS Connector Service
Configure Internal Network:
  • Log in to Service Center using your administrator credentials for Platform Server (http://<yourserver>/ServiceCenter)
  • Go to the Network Security screen (Administration -> Security -> Network Security)
  • Validate and change the Internal Network addresses in accordance to your specific network policies. If you do not enter any addresses (i.e. leave the box empty), then Internal Network configurations will not be enforced and access to your internal applications (including ServiceCenter and LifeTime) will not be restricted to any addresses.

NOTE: If you are changing your Internal Network configuration, please ensure that it includes the IP address used by LifeTime to access the environment.

* Upload your license:
  • Log in to Service Center using your administrator credentials for Platform Server (http://<yourserver>/ServiceCenter)
  • Go to the licensing screen (Administration -> Licensing)
  • Click Upload New License and select the .lic file you got from the OutSystems Network
  • If you don't have a license file, click the Request New License and follow the instructions
* Configure Service Center:
  • Launch Service Center, using your administrator credentials for Platform Server and go to Administration -> Environment Configuration
  • Set the environment's Hostname
  • Set the environment's Running mode to Development or Production
  • Press the Apply button
* Install System Components:

System Components should only be installed once per environment. In a Farm installation, any Front-End server can be used to perform this operation.

  • Log in to Service Center using your administrator credentials (http://<yourserver>/ServiceCenter)
  • Go to the solutions screen (Factory -> Solutions)
  • Click Upload and Publish a Solution and select the System_Components.osp file in the Platform Server installation directory (e.g.: C:\Program Files\OutSystems\Platform Server\)
  • Click 1-Click Publish, or Prepare Publish if you have 2-Stage deployment active.
Configure Users administrator:

The Administrator user should only be configured once per environment. In a Farm installation, any Front-End server can be used to perform this operation.

  • Log in to Service Center using your administrator credentials for Platform Server (http://<yourserver>/ServiceCenter)
  • Go to the eSpaces screen (Factory -> eSpaces)
  • Search for Users and click in the eSpace name
  • Click Single Sign-On tab
  • Click Configure Administrator user
  • Set the password for the Administrator user
  • Click Apply
* Install OutSystems Now:

OutSystems Now should only be installed once per environment. In a Farm installation, any Front-End server can be used to perform this operation.

  • Go to OutSystems Now in Forge
  • Go to the tab Versions
  • Download the latest Application version that is supported by your Platform Version (e.g. download the latest P10 version)
  • Log in to Service Center using your administrator credentials for Platform Server (http://<yourserver>/ServiceCenter)
  • Go to the applications screen (Factory -> Applications)
  • Click Publish an Application and select the .oap you have just downloaded
  • Click 1-Click Publish.
To Install Silk UI Mobile:

You need to have a new license file from OutSystems Licensing with mobile apps generation capabilities.

Silk UI Mobile should only be installed once per environment. In a Farm installation, any Front-End server can be used to perform this operation.

  • Go to Silk UI Mobile in Forge
  • Go to the tab Versions
  • Download the latest Application version that is supported by your Platform Version (e.g. download the latest P10 version)
  • Log in to Service Center using your administrator credentials for Platform Server (http://<yourserver>/ServiceCenter)
  • Go to the applications screen (Factory -> Applications)
  • Click Publish an Application and select the .oap you have just downloaded
  • Click 1-Click Publish.
* LifeTime - only available for the Enterprise Edition:

LifeTime should only be installed in a dedicated environment. Installing it in more than one environment may lead to erroneous behaviors.

If you are applying this checklist to LifeTime environment, continue with the following procedures. Otherwise skip this step.

Read the LifeTime Installation and Configuration Tech Note to learn more.

Execute this step to install LifeTime in this environment:
  • Log in to ServiceCenter using your administrator credentials for Platform Server (http://<yourserver>/ServiceCenter)
  • Go to the solutions screen (Factory -> Solutions)
  • Click Upload and Publish a Solution and select the LifeTime.osp file in the Platform Server installation directory (e.g.: C:\Program Files\OutSystems\Platform Server\).
  • Click 1-Click Publish, or Prepare Publish if you have 2-Stage deployment active.
  • Log in to LifeTime to set up your infrastructure (http://<yourserver>/lifetime)
SEO Friendly URLs:

If you will be using the SEO Friendly URLs feature, you need to install it at this point.
Detailed instructions can be found in www.outsystems.com/goto/install-seo

Integration with iDB2 databases:
  • If you already have IBM iAccess installed, make sure you uninstall it before proceeding.
  • Install IBM iAccess Client Solutions - Windows Package (5733-XJ1 Version: 1.1.0.21). You can download it here.
NOTE: This step is only required if you are going to integrate OutSystems Platform with your IBM iDB2 database.
Business Activity Monitoring:
  • Install GraphViz Services this.Version.ToString(). You can download it here.
  • Install Business Activity Monitoring this.Version.ToString(). You can download it here.
NOTE: If you are using Business Process Technology, the installation of Business Activity Monitoring this.Version.ToString() is highly recommended.

Legend: * Mandatory; Optional.

For External Delivery Report (DLR) Storage follow Kannel Documentation.

If you are using the DLR Storage over databases, it is recommended that you create an index on the 'dlr' table with the columns corresponding to the fields 'smsc' and 'timestamp'.

* Make sure Kannel is running as a service and is set to start automatically. Check your Operationg System manual how to configure a service.
To customize the integration with Kannel, follow the OutSystems Technical note Third-party SMS gateway integration.

Legend: * Mandatory; Optional.

Platform Server Release Upgrade Steps

This section provides the steps that you must follow in order to successfully upgrade OutSystems Platform Server with a new software release. This happens when the Major or Minor number changes (M.m.b.r).

The mandatory topics are the ones that must be checked in order to have a certified installation, i.e. consist in the requirements necessary to guarantee that OutSystems supports your installation. The mandatory topics are in red and the icon associated is *. On the other hand, the optional topics are only recommended and you are not forced to check them. The optional topics are in plain text and the icon associated is .

Platform Server Revision Update Steps

This section provides the steps that you must follow in order to successfully update OutSystems Platform Server with a new software revision. This happens when the Major and Minor numbers are the same, but the Build or Revision number changes (M.m.b.r). Whenever a new revision is issued, the previous one must be considered deprecated and unsupported.

The steps sequence for the Front-end Server profile should be applied in each one of the Front-end Servers.

When upgrading your OutSystems Platform from versions 8.0 or earlier, you must first upgrade to the latest revision of OutSystems Platform 8.0, then you must upgrade to the latest revision of OutSystems Platform 9.1 and only then upgrade to OutSystems 10.

Description Server
* Microsoft .NET Framework (4.6.x, 4.7.x or 4.8) and Build Tools 2015 (both Runtime and Build Tools are required)

Deployment Controller Server

Front-end Server

* Backup configuration files:
  • Copy all the OutSystems services configuration files (files with extension .exe.config) located in the OutSystems Platform Server installation folder to a backup directory
  • Copy the OutSystems Configuration File (server.hsconf) to a backup directory
  • Copy the .NET Framework 4 configuration files machine.config and web.config from folder %WINDIR%\Microsoft.NET\Framework\v4.0.30319\CONFIG %WINDIR%\Microsoft.NET\Framework64\v4.0.30319\CONFIG to a backup directory

Deployment Controller Server

Front-end Server

*

Ensure that the clocks of all Front-end servers are synchronized

Synchronizing the clocks of all Front-end servers will prevent clock skew problems that can impact the experience of users accessing your applications.

Front-end Server

* Install the new Development Environment release:
  • Run the installation file DevelopmentEnvironment-M.m.b.r.exe and follow the on screen installation instructions

Deployment Controller Server

* Install the new OutSystems Platform Server release:
  • Run the installation file PlatformServer-M.m.b.r.exe and follow the on screen installation instructions

Make sure you select the folder where the previous version was installed

Deployment Controller Server

Front-end Server

* Install an SSL certificate:

Deployment Controller Server

Front-end Server

Install SAP Connector Libraries:
  • Download the SAP Connector for Microsoft.NET 3.0.x for Windows 64bit (Compiled with .NET Framework 4.0) from SAP Service Marketplace.
  • Install the Connector, remember the installation directory. When asked about installing assembies to GAC, choose "None".
  • From the Connector installation directory copy the sapnco.dll and sapnco_utils.dll files to the \thirdparty\lib\ directory in the Platform Server installation directory (e.g.: C:\Program Files\OutSystems\Platform Server\thirdparty\lib\)
  • From the Connector installation directory copy the libicudecnumber.dll and rscp4n.dll to the %WINDIR%\system32\ directory
NOTE
  • This step is only required if you are going to integrate OutSystems Platform with your SAP.
  • If this step is done later, after you have upgraded the Platform, you must repeat the mandatory steps below.

Deployment Controller Server

Front-end Server

Backup the Platform Database:
  • Do a full backup of the Platform Database.

NOTE: The database backup is necessary to help recover from installation errors that may occur after the upgrade of the database schema.

Database

* Upgrade the Platform Server settings with the Configuration Tool

Upgrade the Platform Database (Database tab):
  • Fill in the Password field in the Admin section.
  • Press the Create/Upgrade Database button.

Do not close the Configuration Tool at this point - further tasks are to be performed.

Deployment Controller Server

Upgrade the Platform Server settings with the Configuration Tool

Upgrade the Platform Session Database (Session tab):
  • Press the Create Session Database button.
    -> To do this, the Configuration Tool may prompt you to provide a database login with permissions to create a new database.
    For example, you can use the credentials of the sa user.

    Note: during this process, all current sessions will be terminated.

    If you prefer to have your dba run the setup script you can go to File > Generate Session Script to get it. Just make sure you dba runs it before continuing with the next step.

Do not close the Configuration Tool at this point - further tasks are to be performed.

Deployment Controller Server

* Define the password for the Platform Server administrator account

If you had previously defined this password, you may skip this step.

  • Go to the Credentials tab in the Configuration Tool;
  • Fill the Password and Confirm Password fields. Remember that your password:
    • Is case sensitive;
    • Must be at least 6 characters long;
    • Cannot be equal to or contain your username;
  • Ensure that both passwords match.

Deployment Controller Server

* Upgrade the Platform Server settings with the Configuration Tool

Save the configuration by pressing the Apply and Exit button.
  • Answer No if a popup shows up asking to start the OutSystems Scheduler Service and the OutSystems SMS Connector Service.
  • Answer No when a popup asks you to run the Service Center installation.

Deployment Controller Server

* Import the configuration file decryption's key

Copy the Controller's \Program Files\OutSystems\Platform\private.key to the same location, unless the file already exists.

Front-end Server

* Update the configuration settings with the Configuration Tool

In the Platform Server Configuration Tool, import the configuration file by using File -> Import configuration... and choosing the appropriate file, exported from the Deployment Controller server.

Confirm the IP which will be used to register the front-end with the controller:

  • Access the Network tab in the Configuration Tool;
  • Under Front-End Registration, if the Local IP Address option is not set as (automatic), confirm that the IP address belongs to the machine where the Configuration Tool is being run. If needed, fix this by choosing an IP address from the drop-down, choosing (automatic) or typing it manually.
  • If the front-end being configured has more than one network card, and if the Controller server can only communicate with this front-end on one of the network cards, choose the IP which the Controller will use to communicate from the Local IP Address drop-down. If you don't see the IP there, you can type it manually.

Save the configuration by pressing the Apply and Exit button.
  • Open the Platform Server Configuration Tool and press the Apply and Exit button.
  • Open the Platform Server Configuration Tool and fill in the Password field in the Admin section.
  • Leave by pressing the Apply and Exit button.
  • Answer No if a popup shows up asking to start the OutSystems Scheduler Service and the OutSystems SMS Connector Service.

Front-end Server

* Install Service Center:

  • Open the Platform Server Configuration Tool
    and fill in the Password field in the Admin section
    .
  • Leave the Configuration Tool by pressing the Apply and Exit button.
  • Answer Yes if a popup shows up asking to start the OutSystems Scheduler Service and the OutSystems SMS Connector Service.
  • Answer Yes when a popup asks you to run the Service Center installation.
  • Check Service Center availability by launching [Start] > Programs > OutSystems > Service Center [Windows Menu] > OutSystems > Service Center

Deployment Controller Server

* Configure OutSystems Platform:
  • Start the OutSystems Scheduler Service and the OutSystems SMS Connector Service.

Front-end Server

* Configure Internal Network:

If your previous installation had any Internal Network configurations, they have been updated to the new format.

  • Log in to Service Center using your administrator credentials for Platform Server (http://<yourserver>/ServiceCenter)
  • Go to the Network Security screen (Administration -> Security -> Network Security)
  • Validate and change the Internal Network addresses in accordance to your specific network policies. If you do not enter any addresses (i.e. leave the box empty), then Internal Network configurations will not be enforced and access to your internal applications (including ServiceCenter and LifeTime) will not be restricted to any addresses.

NOTE: If you are changing your Internal Network configuration, please ensure that it includes the IP address used by LifeTime to access the environment.

Deployment Controller Server

* Upload a new license file:

You need to obtain a new license file from OutSystems Licensing.

  • Log in to Service Center using your administrator credentials for Platform Server (http://<yourserver>/ServiceCenter)
  • Go to the licensing screen (Administration -> Licensing)
  • Click Request New License and download the license file for your environment
  • Click Upload New License and select the .lic file you downloaded.

Front-end Server

* Install System Components:

The upgrade of System Components should be done in the development environment with developer's supervision. If you already have the System Components deployed and customized, you will need to merge your customized version with the System_Components.osp file in the Platform Server installation directory (e.g.: C:\Program Files\OutSystems\Platform Server\).

System Components should only be updated once per environment. In a Farm installation, any Front-End server can be used to perform this operation.

Update System Components:

  • Log in to Service Center using your administrator credential for Platform Servers (http://<yourserver>/ServiceCenter)
  • Go to the solutions screen (Factory -> Solutions)
  • Click Upload and Publish a Solution and select the System_Components.osp file in the Platform Server installation directory (e.g.: C:\Program Files\OutSystems\Platform Server\)
  • Click 1-Click Publish, or Prepare Publish if you have 2-Stage deployment active.

Front-end Server

* Update OutSystems Now:

The upgrade of OutSystems Now should be done in the development environment with developer's supervision.

OutSystems Now should only be updated once per environment. In a Farm installation, any Front-End server can be used to perform this operation.

  • Go to OutSystems Now in Forge
  • Go to the tab Versions
  • Download the latest Application version that is supported by your Platform Version (e.g. download the latest P10 version)
  • Log in to Service Center using your administrator credentials for Platform Server (http://<yourserver>/ServiceCenter)
  • Go to the applications screen (Factory -> Applications)
  • Click Publish an Application and select the .oap you have just downloaded
  • Click 1-Click Publish.

Front-end Server

Update Silk UI Mobile:

The upgrade of Silk UI Mobile should be done in the development environment with developer's supervision. You need to have a new license file from OutSystems Licensing with mobile apps generation capabilities.

Silk UI Mobile should only be updated once per environment. In a Farm installation, any Front-End server can be used to perform this operation.

  • Go to Silk UI Mobile in Forge
  • Go to the tab Versions
  • Download the latest Application version that is supported by your Platform Version (e.g. download the latest P10 version)
  • Log in to Service Center using your administrator credentials for Platform Server (http://<yourserver>/ServiceCenter)
  • Go to the applications screen (Factory -> Applications)
  • Click Publish an Application and select the .oap you have just downloaded
  • Click 1-Click Publish.

Front-end Server

* LifeTime - only available for the Enterprise Edition:

LifeTime should only be installed in a dedicated environment. Update it before the others.

Installing LifeTime in more than one environment may lead to erroneous behaviors.

If you are applying this checklist to LifeTime environment, continue with the following procedures. Otherwise skip this step.

Read the LifeTime Installation and Configuration Tech Note to learn more.

Please refer to the new application promotion functionality and redesigned permission model posts on the community for more information on the differences introduced by LifeTime in P9 Amsterdam (9.0.1.x)

Execute this step to install LifeTime in this environment:
  • Log in to ServiceCenter using your administrator credentials for Platform Server (http://<yourserver>/ServiceCenter)
  • Go to the solutions screen (Factory -> Solutions)
  • Click Upload and Publish a Solution and select the LifeTime.osp file in the Platform Server installation directory (e.g.: C:\Program Files\OutSystems\Platform Server\).
  • Click 1-Click Publish, or Prepare Publish if you have 2-Stage deployment active.
  • If the deployment is paused and you receive the message:
    Please check the Impact Analysis messages before continuing the solution publish.
    Click Continue to proceed.
  • Log in to LifeTime to set up your infrastructure (http://<yourserver>/lifetime)

Front-end Server

SEO Friendly URLs:

If you will be using the SEO Friendly URLs feature, confirm that SEO Friendly URLs have been installed.
Detailed instructions can be found in www.outsystems.com/goto/install-seo

Front-end Server

Integration with iDB2 databases:
  • If you already have IBM iAccess installed, make sure you uninstall it before proceeding.
  • Install IBM iAccess Client Solutions - Windows Package (5733-XJ1 Version: 1.1.0.21). You can download it here.
NOTE: This step is only required if you are going to integrate OutSystems Platform with your IBM iDB2 database.

Deployment Controller Server

Front-end Server

Business Activity Monitoring:
  • Install Business Activity Monitoring this.Version.ToString(). You can download it here.
NOTE: If you are using Business Process Technology, the installation of Business Activity Monitoring this.Version.ToString() is highly recommended.

Deployment Controller Server

* Republish all modules:

In development environments, republish all modules to update them, so they use the corrections and improvements from the new version. Typically, a solution with all the extensions and eSpaces should be used in Service Center to update all modules at once.

In non-development environments, it's unadvised to republish all modules. Instead, it's recommended to stage the solution from a previously upgraded environment.

  • In the previous environment, download the solution using Service Center and publish it in the new environment, ensuring that you do not overwrite System Components.

Deployment Controller Server

* Republish all modules:

You need to republish all modules in your environment to update them, so they use the corrections and improvements from the new version. In a production environment, this should be done with developer supervision. Typically, you should use a solution in Service Center containing all extensions and eSpaces to update all the modules at once.

Deployment Controller Server

Legend: * Mandatory; Optional.

Tuning and Security Check list

In this section you have a list of issues that you should check in a production environment. These issues are useful to improve the performance and security of your system.

Tuning your systems

Check the following issues to improve the performance of your system.

* Configure Process Scheduling and Virtual Memory:
  1. In the Start menu, right-click My Computer and choose Properties.
  2. Right-click Start menu and choose System.
  3. In the left pane, click Advanced system settings and confirm that the Advanced tab is selected.
  4. On the Performance group, click on Settings button.
  5. Click on the Advanced tab and:
    1. On Processor scheduling group, check Background services option. With this setting, all the programs receive the same amount processor resources.
    2. On Virtual Memory group, click on Change button:
      • Uncheck Automatically manage paging file size for all drives.
      • Select the Custom size option.
      • Confirm the value recommended by Windows (Recommended:, in the Total paging file size for all drives group).
      • Set both the Initial size (MB) and Maximum Size (MB) parameters with the same value as the one collected in the above bullet.
      • In the Drives list, choose one that has enough free disk space. If in doubt, use C:. After that, click Set, and exit this dialog.
      • This setting will avoid page size fragmentation and I/O bottleneck.
    3. Click on Data Execution Prevention tab:
      • If a warning is presented stating that Your computer's processor does not support hardware-based DEP, you may consider selecting Turn on DEP for essential Windows programs and services only.
    4. Click the OK button.

You might need to restart the server after these changes.

* Tuning Internet Information Services
- Configure unlimited connections


Open Server Manager. In the left tree, select Roles, choose Web Server (IIS) and then Internet Information Services (IIS) Manager. If you don't see an entry here, access this utility under Start > Run, and type inetmgr.msc.

  1. Expand <servername> > Sites > Default Web Site, and then click Default Web Site.
  2. In the right pane, under Manage Web Site > Configure, click Limits...
  3. Make sure that the Limit number of connections checkbox is unchecked.
  4. Click the OK button.

Do not close the IIS Manager at this point - further tasks are to be performed.
* Tuning Internet Information Services
- Configure unlimited connections


Open Server Manager and, in the top menu, under Tools, select Internet Information Services (IIS) Manager.

  1. Expand <servername> > Sites > Default Web Site, and then click Default Web Site.
  2. In the right pane, under Manage Web Site > Configure, click Limits...
  3. Make sure that the Limit number of connections checkbox is unchecked.
  4. Click the OK button.

Do not close the IIS Manager at this point - further tasks are to be performed.
* Tuning Internet Information Services
- Configure unlimited connections


Execute the provided Windows PowerShell script configure-outsystems-app-pool.ps1 to set this configuration.
  • You can find it in the Deployment Controller server under the OutSystems Platform Server installation directory, scripts\winserver2016\tuning\iis\.
    • Set it as your working directory.
  • The syntax is as following: .\configure-outsystems-app-pool -Options unlimited-connections [-SiteName <sitename>] [-AppPoolName <applicationPoolName>]
    • The -SiteName and -AppPoolName parameters are optional, the default names are used (respectively, "Default Web Site" and "OutSystemsApplications").

In alternative, open Server Manager and, in the top menu, under Tools, select Internet Information Services (IIS) Manager.

  1. Expand <servername> > Sites > Default Web Site, and then click Default Web Site.
  2. In the right pane, under Manage Web Site > Configure, click Limits...
  3. Make sure that the Limit number of connections checkbox is unchecked.
  4. Click the OK button.

Do not close the IIS Manager at this point - further tasks are to be performed.
* Tuning Internet Information Services
- Configure upload size limits


These steps might require elevated privileges. We recommend saving a backup of them on a different location before any edits.
  • Edit with Notepad your %WINDIR%\Microsoft.NET\Framework\v4.0.30319\CONFIG\machine.config %WINDIR%\Microsoft.NET\Framework64\v4.0.30319\CONFIG\machine.config file:
    1. Locate the <system.web> section
    2. In the <httpRuntime> element, set the maxRequestLength attribute to:
          - 32768 (for small factory environments),
          - 65536 (medium sized factory environments)
          - 131072 (large factory environments).
      These values are in KBytes. You should leave all other parameters untouched and end up with something similar to:
          <httpRuntime executionTimeout="110" maxRequestLength="131072" />
  • Edit with Notepad your %WINDIR%\system32\inetsrv\config\applicationHost.config file:
    1. Locate the <system.webServer> tag. Make sure it is not one that is preceeded by a <location> tag in the previous line. Its full path should be <configuration>\<system.webServer>
    2. Within the <system.webServer> section, locate the <security> sub-section
    3. Find the <requestFiltering> sub-section
    4. Find the <requestLimits> element inside <requestFiltering>.
    5. In the <requestLimits> element, set the maxAllowedContentLength attribute to 33554432 (for small factory environments), 67108864 (medium sized factory environments) or 134217728 (large factory environments). This value is in Bytes. You should end up with something similar to <requestLimits maxAllowedContentLength="134217728" />
* Tuning Internet Information Services
- Configure worker process


Configure the worker process:
  1. Expand <servername> and click Application Pools
  2. In the middle pane, click OutSystemsApplications.
  3. In the right pane, under Edit Application Pool, click Recycling...
  4. Uncheck all checkboxes under Fixed Intervals group.
  5. Under Memory Based Maximums, uncheck Virtual memory usage (KB) and as a baseline set the Private memory usage to be 60% of the total physical memory of the machine. Later, you should fine-tune this value according to performance data collected from the application pool. Then click Next.
  6. Activate all the Runtime recycling events. These will provide additional information whenever worker process recycle - this information will be logged in Event Log.
  7. In the main window, in the right pane, under Edit Application Pool, click Advanced Settings.
  8. Under Process Model, set Idle Time-out (minutes) to 0 (zero). Exit by clicking OK.

Do not close the IIS Manager at this point - further tasks are to be performed.
* Tuning Internet Information Services
- Configure worker process


Execute the provided Windows PowerShell script configure-outsystems-app-pool.ps1 to apply a baseline configuration to the worker process.
  • You can find it in the Deployment Controller server under the OutSystems Platform Server installation directory, scripts\winserver2016\tuning\iis\.
    • Set it as your working directory.
  • The syntax is as following: .\configure-outsystems-app-pool -Options worker-process-optimizations [-SiteName <sitename>] [-AppPoolName <applicationPoolName>]
    • The -SiteName and -AppPoolName parameters are optional, the default names are used (respectively, "Default Web Site" and "OutSystemsApplications").

In alternative, manually configure the worker process:
  1. Expand <servername> and click Application Pools
  2. In the middle pane, click OutSystemsApplications.
  3. In the right pane, under Edit Application Pool, click Recycling...
  4. Uncheck all checkboxes under Fixed Intervals group.
  5. Under Memory Based Maximums, uncheck Virtual memory usage (KB) and as a baseline set the Private memory usage to be 60% of the total physical memory of the machine. Later, you should fine-tune this value according to performance data collected from the application pool. Then click Next.
  6. Activate all the Runtime recycling events. These will provide additional information whenever worker process recycle - this information will be logged in Event Log.
  7. In the main window, in the right pane, under Edit Application Pool, click Advanced Settings.
  8. Under Process Model, set Idle Time-out (minutes) to 0 (zero). Exit by clicking OK.

Do not close the IIS Manager at this point - further tasks are to be performed.
* Tuning Internet Information Services
- Create Service Center Application Pool


Create and configure the Service Center Application Pool:
  1. Expand <servername> and click Application Pools
  2. In the right page, under Actions, click Add Application Pool...
  3. Give it a name of your choice (e.g. ServiceCenterAppPool), choose .NET version v4.0 and Managed pipeline mode: Classic. Leave Start application pool immediately checked. Click the OK button.
  4. In the main window, expand <servername> > Sites > Default Web Site.
  5. Right-click ServiceCenter and then choose Manage Application > Advanced Settings.
  6. Under General, click Application Pool and then the button with ... on the right. Choose the application pool you just created, click OK, and then click OK again to close the dialog.
  7. Repeat steps 2-8 of the previous group (Configure worker process optimizations) for the Service Center Application Pool you have just created.
* Tuning Internet Information Services
- Create Service Center Application Pool


Execute the provided Windows PowerShell script create-service-center-app-pool.ps1 to create the Service Center application pool and apply the optimizations described in the previous group (Configure worker process optimizations).
  • You can find it in the Deployment Controller server under the OutSystems Platform Server installation directory, scripts\winserver2016\tuning\iis\.
    • Set it as your working directory.
  • The syntax is as following: .\create-service-center-app-pool [-SiteName <sitename>] [-NewAppPoolName <newApplicationPoolName>]
    • The -SiteName and -NewAppPoolName parameters are optional, the default names are used (respectively, "Default Web Site" and "ServiceCenterAppPool").

In alternative, manually create and configure the Service Center Application Pool:
  1. Expand <servername> and click Application Pools
  2. In the right page, under Actions, click Add Application Pool...
  3. Give it a name of your choice (e.g. ServiceCenterAppPool), choose .NET version v4.0 and Managed pipeline mode: Classic. Leave Start application pool immediately checked. Click the OK button.
  4. In the main window, expand <servername> > Sites > Default Web Site.
  5. Right-click ServiceCenter and then choose Manage Application > Advanced Settings.
  6. Under General, click Application Pool and then the button with ... on the right. Choose the application pool you just created, click OK, and then click OK again to close the dialog.
  7. Repeat steps 2-8 of the previous group (Configure worker process optimizations) for the Service Center Application Pool you have just created.
* Tuning Internet Information Services
- Create LifeTime Application Pool


Create and configure the LifeTime Application Pool:
  1. Expand <servername> and click Application Pools
  2. In the right page, under Actions, click Add Application Pool...
  3. Give it a name of your choice (e.g. LifeTimeAppPool), choose .NET version v4.0 and Managed pipeline mode: Classic. Leave Start application pool immediately checked. Click the OK button.
  4. In the main window, expand <servername> > Sites > Default Web Site.
  5. Right-click lifetime and then choose Manage Application > Advanced Settings.
  6. Under General, click Application Pool and then the button with ... on the right. Choose the application pool you just created, click OK, and then click OK again to close the dialog.
  7. Right-click LifeTimeEngine and then choose Manage Application > Advanced Settings.
  8. Under General, click Application Pool and then the button with ... on the right. Choose the application pool you just created, click OK, and then click OK again to close the dialog.
  9. Right-click LifeTimeCore and then choose Manage Application > Advanced Settings.
  10. Under General, click Application Pool and then the button with ... on the right. Choose the application pool you just created, click OK, and then click OK again to close the dialog.
  11. Right-click LifeTimeMonitoring and then choose Manage Application > Advanced Settings.
  12. Under General, click Application Pool and then the button with ... on the right. Choose the application pool you just created, click OK, and then click OK again to close the dialog.
  13. Right-click LifeTimeSDK and then choose Manage Application > Advanced Settings.
  14. Under General, click Application Pool and then the button with ... on the right. Choose the application pool you just created, click OK, and then click OK again to close the dialog.
  15. Right-click LifeTimeAudit and then choose Manage Application > Advanced Settings.
  16. Under General, click Application Pool and then the button with ... on the right. Choose the application pool you just created, click OK, and then click OK again to close the dialog.
  17. Right-click LifeTimeServices and then choose Manage Application > Advanced Settings.
  18. Under General, click Application Pool and then the button with ... on the right. Choose the application pool you just created, click OK, and then click OK again to close the dialog.
  19. Right-click PerformanceMonitor and then choose Manage Application > Advanced Settings.
  20. Under General, click Application Pool and then the button with ... on the right. Choose the application pool you just created, click OK, and then click OK again to close the dialog.
  21. Right-click LifeTimeAnalytics and then choose Manage Application > Advanced Settings.
  22. Under General, click Application Pool and then the button with ... on the right. Choose the application pool you just created, click OK, and then click OK again to close the dialog.
  23. Repeat steps 2-8 of the previous group (Configure worker process optimizations) for the LifeTime Application Pool you have just created.
* Tuning Internet Information Services
- Create LifeTime Application Pool


Execute the provided Windows PowerShell script create-lifetime-app-pool.ps1 to create the LifeTime application pool and apply the optimizations described in the previous group (Configure worker process optimizations).
  • You can find it in the Deployment Controller server under the OutSystems Platform Server installation directory, scripts\winserver2016\tuning\iis\.
    • Set it as your working directory.
  • The syntax is as following: .\create-lifetime-app-pool [-SiteName <sitename>] [-NewAppPoolName <newApplicationPoolName>]
    • The -SiteName and -NewAppPoolName parameters are optional, the default names are used (respectively, "Default Web Site" and "LifeTimeAppPool").

In alternative, manually create and configure the LifeTime Application Pool:
  1. Expand <servername> and click Application Pools
  2. In the right page, under Actions, click Add Application Pool...
  3. Give it a name of your choice (e.g. LifeTimeAppPool), choose .NET version v4.0 and Managed pipeline mode: Classic. Leave Start application pool immediately checked. Click the OK button.
  4. In the main window, expand <servername> > Sites > Default Web Site.
  5. For each of these applications: Lifetime, LifeTimeEngine, LifeTimeCore, LifeTimeMonitoring, LifeTimeSDK, LifeTimeAudit, LifeTimeServices, PerformanceMonitor, LifeTimeAnalytics, LTDeployments, LTEnvironments, LTVersioning and lifetimeapi do the following:
    1. Right-click the application and then choose Manage Application > Advanced Settings.
    2. Under General, click Application Pool and then the button with ... on the right. Choose the application pool you just created, click OK, and then click OK again to close the dialog.
  6. Repeat steps 2-8 of the previous group (Configure worker process optimizations) for the LifeTime Application Pool you have just created.
SQL Server Tuning

Review your database settings according to the SQL Server Best Practices for Platform Server document.
Configure Windows Defender

Windows Defender has impact on the performance of applications. To avoid performance loss consider disabling Windows Defender antivirus and malware scan, or include exclusion paths for OutSystems Applications files and Temporary ASP.NET system files.

For more information about exclusion paths visit this forum post

Making your system more secure

Check the following issues to improve the security of your system.

* Enforcing security for your environment or applications
  1. If you have already configured your infrastructure in LifeTime, log in to LifeTime using your administrator credentials for Platform Server:
    • Go to the Infrastructure screen.
    • Click on Environment Security.
    • Enable HTTP Strict Transport Security, which will instruct browsers to only do HTTPS requests, for all Web Applications. In Mobile Applications this is always false and can't be changed.
    • Force HTTPS for screens, which will cause all HTTP requests to be redirected to HTTPS, for all Web Applications. In Mobile Applications this is always true and can't be changed.
    • Force HTTPS for integrations, which will cause all exposed integrations to require HTTPS, for all Web Applications. In Mobile Applications this is always true and can't be changed.
    • Enable and define a Content Security Policy that will apply to all your Web Applications. In Mobile Applications this is always false and can't be changed.

    NOTE: If you do not want to enable security for the whole environment, you can enable it per Web Application, in the application details screen.

  2. If you haven't configured your infrastructure in LifeTime yet, log in to ServiceCenter using your administrator credentials for Platform Server:
    • Go to the Environment Security screen (Administration > Environment Security).
    • Enable HTTP Strict Transport Security, which will instruct browsers to only do HTTPS requests, for all Web Applications. In Mobile Applications this is always false and can't be changed.
    • Force HTTPS for screens, which will cause all HTTP requests to be redirected to HTTPS, for all Web Applications. In Mobile Applications this is always true and can't be changed.
    • Force HTTPS for integrations, which will cause all exposed integrations to require HTTPS, for all Web Applications. In Mobile Applications this is always true and can't be changed.
    • Enable and define a Content Security Policy that will apply to all your Web Applications. In Mobile Applications this is always false and can't be changed.

    NOTE: If you do not want to enable security for the whole environment, you can enable it per Web Application, in the application details screen.
* Disabling SSLv3 to prevent POODLE Vulnerability.
  1. Open regedit.exe
  2. Go to HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders\Schannel\Protocols\
  3. Add a key named SSL 3.0
  4. Under the SSL 3.0 key, add two keys named Client and Server
  5. Under the Client key, add a DWORD Value named DisabledByDefault and set its value to 1
  6. Under the Server key, add a DWORD Value named Enabled and set its value to 0
  7. Under the SSL 2.0 key, add a key named Server
  8. Under the Server key, add a DWORD Value named Enabled and set its value to 0
  9. Restart the server
Setting up security directives to prevent Clickjacking.

The configuration below prevents pages in this web server from being embedded within pages from different web servers:

  1. Open Server Manager. In the left tree, select Roles, choose Web Server (IIS) and then Internet Information Services (IIS) Manager. If you don't see an entry here, access this utility under Start > Run, and type inetmgr.
  2. Expand <servername> > Sites > Default Web Site, and then click Default Web Site.
  3. In the center pane, under IIS, double-click HTTP Response Headers.
  4. In the right pane, under Actions, click Add...
    • Add a header named X-Frame-Options with value SAMEORIGIN.
    • Add a header named Content-Security-Policy with value frame-ancestors 'self'.

    NOTE: If you decide to enable Content Security Policy for the environment later, and enter anything other than the default value 'self' for the frame-ancestors directive, please remove these headers to ensure the desired behaviour.

Legend: * Mandatory; Optional.

See Also

As mentioned in the above sections, you might need to: