Try OpenEdge Now
skip to main content
Multi-tenancy Overview
Introducing multi-tenancy : What is a multi-tenant group?

What is a multi-tenant group?

A multi-tenant group, or simply a group, is a mechanism for allowing multiple tenants to access the same data in a single multi-tenant table. Each group is defined for one specific table. There can be multiple groups defined for the same table, and multiple tables that are accessed by different multi-tenant groups, but a specific tenant group applies only to one multi-tenant table.
The data for a multi-tenant group is stored in the same way as it is for any multi-tenant table instance. A group has a partition for each object of the multi-tenant table instance, for the table data, indexes, and LOBs associated with that table definition.
When data is added to a tenant group, that data is stored in the group's partitions, and shared by all tenants who are members of the group. This is different from the way tenant data is handled when there is no group, since the data is shared among the tenants of the group rather than being private to an individual tenant. The stored data is owned by the group, and not by any individual tenant or tenants.
Consequently, even if there are no tenants associated with a group, any data that had been stored in the group's table partitions continues to exist in the database until the group itself is removed.
While a tenant can belong to only one group for any given table, a table can have multiple groups defined simultaneously. A tenant can belong to zero or one group for each table.
A tenant can be added to a group with the Database Administration Console, provided that the tenant does not have its own data currently allocated for the table where it intends to become a member of a group. If tenant partitions have been allocated for the table, then the partitions must be deleted before the tenant can join a group.
Removing a tenant from a group automatically results in the tenant having its own partitions for that table, based on the defaults that are set in the tenant record and allocation setting.