AD RMS Logging Database Tables

Applies To: Windows Server 2008, Windows Server 2008 R2

AD RMS uses the SQL Server database to log all activity in the AD RMS cluster.

The following diagram shows the tables in the Logging database and their relationship with each other. It also shows the primary and foreign keys in each table. Following this diagram is a description of the columns in the tables.

Logging Database Schema

Service Request

This table contains the core of the logged data. It contains a record for every service request sent to the cluster. It includes several pointers to ID numbers and other information. Empirically, this is one of the three largest tables present in the logging database. A single record takes roughly 0.3 KB, or only 300MB for a million requests.

Request Type

This table has all the request types handled by this server. The request types typically include AcquireLicense, Certification.Certify, FindServiceLocationsForUses, GetClientLicensorCerts, TemplateDistribtuion.AcquireTemplates and others. Most of the activities are of the types AcquireLicense, FindServiceLocationsForUser and Certification.Certify, which requires the Certificate field to be populated. However, in an AD RMS licensing server most of the activities are restricted to AcquireLicense and FindServiceLocationsForUsers. This table stores only the type information. Therefore, this table takes only 100 KB in total.

Server Information

This table includes the name of each AD RMS server in the cluster. This table populates only the name of each server, taking a few kilobytes of space.

Request User

This contains the information about the user’s name and domain. This enables measuring how many unique users are using AD RMS through their user names. Each record requires roughly 0.5 KB, requiring 10 MB for 20,000 users.

User Domain

This table populates the names of domains where AD RMS requests originate from. For a single domain, only one record is generated, taking only a few kilobytes of space.

Service Request and Certificate

This table links the service requests with the certificates that form part of the input and output of that service request. Since this table is linked to Service Request, this is another of the largest tables in the logging database. Some of the Service Requests link to more than one certificate, therefore generating even more records in this table than the Service Request table. Other service requests do not link to certificates, and thus they do not generate records in this table.

Growth of this table depends on what types of service requests are received more frequently. From empirical evidence, this table grows about four to five times larger than the Service Request table, by number of records. This table takes only approximately 50 bytes for each record.

Certificate Type

This table stores types of certificates received or issued by the server. The certificate types normally include Client-Licensor-Certificate, Content-License, DRM-CA-Certificate, Group-Identity-Credential, Issuance-License, Machine-Certificate and Server-Licensor-Certificate.

This table takes a few kilobytes of space.


This table stores certificates issued or used by the server. Among the various certificate types, the content-license type is one of the most frequently stored in this table. This table can be the largest in the logging database, when the XrML field is enabled. Normally, this table takes more than 80% of the space in the logging database. Each record requires 20 KB when XrML logging is enabled, 2 KB when it is not.

XrML Object

This table represents data about different XrML objects, including IssuedPrincipalObject, IssuerObject, WorkObject, and FederationPrincipalObject. Each of these objects results in different values in the XrmlObject table, depending on the kind of certificate they were obtained from. IssuedPrincipalObject includes identifiers for types of certificates such as rights-account certificate (RAC) and client-licensor certificate (CLC). IssuerObject contains identifiers for the issuer of the certificates. WorkObject includes an object Element such, as Microsoft Office Document. Finally, FederationPrincipalObject has an identifier that identifies the principal being issued by a certificate. Each Record takes up 1 KB, and this table has typically between one-half and one-third of the number of records as the Certificate field records.

Error Information

This table contains exceptions thrown and associated events, containing the error id and event id that link to Error Description tables.

Error Description

This table includes each error description in a string.

Bad Queue Data

This tables stores messages that the Logging Listener service invalidated or failed to log in the regular logging tables. This is the indicator that shows what type of failure took place when trying to log the message. This table requires approximately 10 KB to 30 KB for each record. This data is not linked to any other database; therefore it can grow to a large size if not monitored and trimmed closely.