Topic Last Modified: 2012-10-06

The Persistent Chat database schema consists of the following tables.

Active Directory Sync

Table Description

tblADCookie

Contains the current Lightweight Directory Access Protocol (LDAP) Sync cookies. Each row corresponds to an Active Directory Domain Services domain that Persistent Chat Server is actively monitoring for changes. (Only the Active Directory domains that are relevant for Persistent Chat Server are represented in this table.)

tblPrincipalMemberDifference

Contains group membership changes (both added and removed members) that have not yet been processed by the later Active Directory Sync steps and is one of the temporary tables (along with tblADUpdates table) that is used in the first step of Active Directory Sync.

Membership changes are stored, processed, or both, only for groups that are listed in the tblPrincipal table or that already have members listed there.

tblADUpdates

Contains changes to Active Directory Domain Services that have not yet been processed by the later Active Directory Sync steps and is one of the temporary tables (along with the tblPrincipalMemberDifference table) that is used in the first step of Active Directory Sync.

Changes to Active Directory are stored, processed, or both only for principals that are already listed in the tblPrincipal table.

tblPrincipalMembers

Contains principal memberships.

tblPrincipalMeta

Contains the principals that have to be refreshed from Active Directory.

tblSkippedAffiliations

Contains affiliations that could not be refreshed for some reason, usually due to Active Directory access errors.

This table is for informational purposes only. Its content is not used.

The principals with affiliations that could not be refreshed properly are kept in the tblPrincipalMeta table and are given another chance to be refreshed.

Principals, Affiliations, Nodes, Scopes, and Roles

Table Description

tblPrincipalType

Contains principal types to categorize what is in the tblPrincipal table. This table is static. It is set up during database creation and does not change.

tblPrincipal

Contains all principals (users, folders, groups, and so on). Persistent Chat Server handles this as a flat heterogeneous list. Various columns are based on the type of each principal.

Most of these principals are cached copies of objects stored in Active Directory. Creating the cached copy in the Principal table of these Active Directory objects is referred as provisioning.

Some principals are created more aggressively than others, and some Active Directory objects are ignored altogether.

tblPrincipalAffiliations

Contains principal affiliations that describe memberships in Active Directory security groups, Active Directory containers, and so on.

tblNode

Contains the category node, as managed in Lync Server Control Panel.

tblRoleType

Contains role types and their associated permission sets. This lookup table is static.

tblScopePrincipal

Contains scopes assigned to nodes.

tblPrincipalRole

Contains roles assigned to nodes.

tblSiopWhiteList

Contains the registered Add-ins that can be associated with nodes.

tblEnumAttribute

Contains only the hardcoded "Visibility" and "Behavior" attributes that are used in the tblNode table.

tblEnumValue

Contains the values of the hardcoded "Visibility” and “Behavior" attributes that are used in the tblNode table.

Invites, Chats, and Other Client Support

Table Description

tblPrincipalInvites

Contains invites for all provisioned users in the system for all nodes with Auto Invite enabled.

tblChat

Contains all chat messages.

tblLastInviteId

Contains the last invite ID that was generated (and used in the tblPrincipalInvites table) for each user.

tblLastChatId

Contains the last chat ID that was generated (and used in the tblChat table) for each user.

tblPreference

Contains user client preferences (used by legacy clients only).

tblFileToken

Contains temporary tokens for file transfer purposes. Each time a file is uploaded or downloaded, the Persistent Chat service generates a token that the client uses to access the Web service file store.

Server Support

Table Description

tblServerIdentity

Contains the active servers in the Persistent Chat Server pool.

tblAdminLock

Contains the administrator lock to run some administrator commands. The system revision entry in the tblSystemRevision table is incremented after each release of the lock.

tblSystemRevision

Contains the revision number entry used (along with the tblAdminLock table) for achieving consistency across multiple servers.

tblActivePeers

Contains current peer-to-peer connections between Persistent Chat services.

tblConfig

Contains the Persistent Chat Server unsupported configuration.