Multi-Tenant Setup

Last Updated: 12/03/2015 Introduced in Verision: 2.0

Multi-tenancy is an architecture in which a single instance of a software application serves multiple customers. Each customer is called a tenant. Tenants in a multi-tenant configuration in Decisions have the ability to customize some parts of the application, such as look and feel of the Decisions portal, but they cannot customize the underlying application code. Tenants will all run the same version of the application.

With a multi-tenancy architecture, the provider only has to make updates once. The provider can run one instance of its application on one instance of a database and provide web access to multiple customers. In such a scenario, each tenant’s data is isolated and remains invisible to other tenants. 

In Decisions, the server hosting/providing the application and its database is called the Control Instance server. The client machines connecting to the Control Instance server are called Multi-Tenant servers.

Steps for Creating a Multi-Tenant Configuration

These instructions are for a clustered environment. If you don’t want a cluster, only install Decisions on one server; this serves as both the Control Instance server and the client server.
1) Install Decisions on Control instance server using the local database.

2) Install Decisions on each Mutli-Tenant server.

     – During installation, point the database to the database of the Control server.

     – Edit the settings.xml file on all servers with the following changes and restart SHM after making the changes:

     – Change ServerType tag

               From: <ServerType>Unmanaged</ServerType>

               To: <ServerType>Hosted</ServerType>

     – Change ServerName tag

               From: <ServerName />

               To: <ServerName>[Resolvable Name, URL or IP of Server this file is on]</ServerName>

3) Verify that servers are registered by logging into the Control server portal and navigating to /System/Hosting/Servers/.



4) Next, it is necessary to create a contract. Inside this contract will go users and instances. Register a contract by navigating to /System/Hosting/Contracts/ and clicking Register Contract. For example, create a contract to represent your company name.

5) Create instances within the contract. For example, create a Production and a Development instance, or instances for individual users.

6) Create users and assign those users to the appropriate instances for which they require access. Users are restricted to the contract under which they reside (in other words, “outside” users cannot access instances within a contract).


Additional Resources