Multitenancy

The term multitenancy indicates an architecture in which a single running instance of an application simultaneously serves multiple clients or "tenants".

Isolating information, such as data and customizations, about the tenants is a particular challenge in these systems. This includes the data owned by each tenant stored in the database. A single instance of the application can now support multiple tenants. SOAP clients, the Order Management Server UI and PC can talk to the same TIBCO Order Management - Long Running instance for processing and viewing the orders based on the tenant context. The TIBCO Order Management - Long Running nodes form a cluster and support the scaling of nodes based on the load. A default tenant "TIBCO" is supported by TIBCO Order Management - Long Running without any configuration changes.

Each tenant's data is kept in a distinct database schema on a single database instance. Connections point specifically to each schema. There is a distinct JDBC connection pool per tenant where the pool to use is selected based on the "tenant context" associated with the currently logged in user.

The application primarily has two database schemas: one schema for storing admin data and one schema per tenant for storing tenant data.

Tenant and related data source information are stored in the admin database schema. Each tenant has its database schema as configured in the admin schema. By supporting multiple schemas, the application is able to route data to different databases based on the specified tenant and configuration.

Database details for the admin schema are provided in the ConfigValues_OMS.xml file under the category "Data Source Configuration" and the database details for the default tenant are provided under the category "Data Source Configuration Default Tenant".