Multi-Tenancy

The term multi-tenancy 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, pertaining to the various 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 OMS UI and PC are able to talk to the same TIBCO Fulfillment Order Management instance for processing and viewing the orders based on the tenant context. The TIBCO Fulfillment Order Management nodes form a cluster and support the scaling of nodes based on the load. A default tenant "TIBCO" is supported by TIBCO Fulfillment Order Management 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 own 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".

The respective tenant ID will be written in the log files. For example:
29 Nov 2016 20:14:06,009  INFO [] [] [Member1] [com.tibco.aff.oms.models.engine.ActionModelLoader] [processModels] - [ThreadID:20] [Tenant ID:TIBCO] Time taken to process action model files is 0 seconds  
29 Nov 2016 20:14:06,035  INFO [] [] [Member1] [com.tibco.aff.oms.models.engine.helper.LoadDBRepositoryHelper] [processOfferMappingFromDB] - [ThreadID:20] [Tenant ID:T1]  Starting Offer model processing
Note: Jeopardy notifications received through the file system can not be shared among tenants.