FIM 2010 SQL Synchronization Service Database Tables
Applies to:
FIM 2010 SQL Database tables - FIM 2010 R2 SP1
Research into the tables created in FIMSynchronizationService Database
Introduction
As I start to progress through FIM, I decided a create an article on what is stored in the various tables found
in the FIMSynchronizationService database
This is a work in progress at the moment so details will changed and be added to, including information on the other tables:
Table names
Dbo.mms_run_history
Every time a profile run is executed a row is added to this table
It contains information you would see displayed in the operations window after clicking the operations button
as per example screenshot
The table contains additional information columns with uniquely identifying ID numbers
Additional columns for the information displayed in the Operations panel are not necessarily an exact name match
(e.g. run_result column = status column)
Columns
The table contains the following columns (to be filled in )
run_history_id | A GUID uniquely identifying this run instance |
ma_id | A GUID uniquely identifying the management agent instance for this run instance.
This MUST match a management agent record in the mms_management_agent table at the time the run started |
run_profile_id | A GUID uniquely identifying the run profile. This value MUST match a run profile record
in the mms_run_profile table |
run_number | A number uniquely identifying this instance of the run profile execution |
user_name | The domain and user name that triggered the execution of the run profile.
This MUST be in the form DOMAIN\UserName. |
is_run_complete | A bit where a value of 1 indicates that the run is complete |
run_result | A string indicating the run result.
This is the message shown in the status column of the operations view The possible values and descriptions are show below Value in quotes followed by description
During the creation of a staging file, this will be reported for any file access error other than:
Specific details of the failure will be written to the application event log.
|
current_step_number | The current run step that is being executed starting with step 1. When the run completes, this MUST be set to the total step number |
total_steps | The total count of run steps in this run profile |
start_date | The UTC time that this run execution started |
end_date | The UTC time that this run execution completed. This MUST be NULL if the run
is still in progress |
run_profile_name | The name of the run profile at the time the run was created. This is used for displaying history even if the run profile is subsequently deleted from the system |
mms_timestamp | A sequential integer identifier derived from the mms_timestamp field in the mms_server_configuration table |
operation_bitmask | Flags that indicate what operation(s) were performed during the run, and what statistics have been collected in the run history. The possible values and descriptions are show below
Bit mask value followed by description
|
Selecting the clear all runs operation from the Actions menu option will clear this table
This table will continue to grow unless you regularly clear the runs
If the table is not clear it could eventually consume all the disk on which FIM sync database is located
Dbo.mms_run_profile
Stores information about each run profile which has been created
The table contains the following columns (to be filled in )
creation_date
run_profile_name
configuration_xml
run_profile_id | A GUID uniquely identifying the run profile |
ma_id | A GUID uniquely identifying the management agent associated with this
run profile. This value MUST match a management agent record in the mms_management_agent table. |
version_number | The version of the last change made to this run profile. This MUST start at 1. The synchronization engine will increment the version, allowing conflict detection for simultaneous edits |
The UTC time that this run profile was created | |
modification_date | The UTC time that this run profile was last modified |
The name of this run profile. name of this run profile. | |
An XML fragment containing the run profile configuration. This must be formatted using this XML schema
<xs:element name="configuration"> <xs:complexType> <xs:sequence> <xs:element minOccurs="1" maxOccurs="unbounded" ref="step" /> </xs:sequence> </xs:complexType> </xs:element> |
|
Dbo.mms_step_history
Every time a run profile is executed a row is added to this table for each step in the run
Selecting the clear all runs operation from the Actions menu option will clear this table
The information stored in this table is the information you see when you select a step that has run as part of a
run profile
When you select a step which has been executed you can see various information about the activities of the
step listed in the synchronisation statistics panel and synchronization errors / status panel
as per example screenshot
The table contains the following columns (to be filled in )
Step_history_id | A GUID uniquely identifying this run step history object |
run_history_id | A GUID uniquely identifying the run history object associated with this run step. This value MUST match a run history record in the mms_run_history table |
step_number | An integer identifying what step this was in the overall run profile definition |
step_result | A Unicode string identifying the overall result of the run step. This MUST be a value specified in section |
start_date | The UTC time that this run step started |
end_date | The UTC time that this run step stopped |
stage_no_change | Number of objects which remain unchanged in the MA connector space after an import stage is run
Shows as “Unchanged” in the Synchronization Statistics Pane Technet Description : The object referred to by the change was looked up by the anchor and found in the connector space with the same distinguished name (also known as DN). By comparing attributes and values, it was determined that its hologram in the connector space matches the incoming change, which will result in no change. |
stage_add | Number of objects added to the MA connector space after an import stage is run
Shows as “Adds” in the Synchronization Statistics Pane The objects will show as Modification type : - add in the MA connector space The object state will be: Normal Disconnector (i.e. the object is not connected to an object in the Metaverse Technet Description : The object referred to by the change was looked up by the anchor and not found in the connector space. A new connector space object was created with the information specified in this change. If there is a connector space object with a different anchor and the same distinguished name (also known as DN), the existing connector space object will be moved into the transient state. This transient move is not accounted for in the statistics. |
stage_update | Number of objects in the MA space which have been changed during a staged import stage
Shows as “Updates” in the Synchronization Statistics Pane Technet description : The object referred to by the change was looked up by the anchor and found in the connector space with the same distinguished name (also known as DN). By comparing attributes and values, it was determined that its hologram in the connector space is different, implying that there is an update. |
stage_rename | Number of objects in the MA space which have been renamed – i.e. the DN value of the object has changed
during a staged import stage Shows as “Renames” in the Synchronization Statistics Pane Technet description : The object referred to by the change was looked up by the anchor and found in the connector space, but the distinguished name (also known as DN) is different. Staging a rename will cause the distinguished name in the connector space to change and that can trigger a move of an existing connector space object to a transient state. This transient move is not accounted for in the statistics. |
stage_delete | Number of objects which are marked for deletion during a staged import
Shows as “Deletes” in the Synchronization Statistics Pane Technet description : For delta import runs, the incoming change was a delete and the object being deleted was found in the connector space. For full import runs, either an incoming delete was imported and found in the connector space or the object was obsolete. There is no difference in the accounting of the two cases, but generally for the management agents for Active Directory and Active Directory Application Mode (ADAM) staging this counter indicates the number of imported tombstones that corresponded to objects in the connector space. |
stage_deleteadd | The number of staging objects processed resulting in the delete-add of a connector space object |
stage_failure | The number of staging objects processed resulting in a failure |
disconnector_filtered | The number of disconnector objects that were run through the connector filter and marked as filtered disconnectors.
Shows as “Filtered Disconnectors in Synchronization Statistic Panel |
disconnector_joined_no_flow | The number of disconnectors objects that were successfully joined for which there was no actual attribute changes flowed to the Metaverse. |
disconnector_joined_flow | The number of disconnectors objects that were successfully joined for which actual attribute changes flowed to the Metaverse. |
disconnector_joined_remove_mv | The number of disconnectors objects that joined to metaverse objects in the first part of the synchronization process, but ended up removing that metaverse object because the provisioning extension programmatically disconnected its connectors. |
disconnector_projected_no_flow | Number of disconnectors objects that were projected for which there was no actual import attribute flow to the Metaverse.
shows as “Connectors without Flow Updates” in the Synchronization Statistics Pane |
disconnector_projected_flow | The number of disconnectors objects that were projected for which actual attribute changes flowed to the metaverse.
Shows as “Connectors with Flow Updates” in the Synchronization Statistics Pane |
disconnector_projected_remove_mv | The number of disconnectors objects that tried to project to the Metaverse, but in the process the provisioning extension programmatically disconnected connectors leading to the removal of the Metaverse object it was trying to create. |
disconnector_remains | The number of disconnector objects that successfully passed the connector filter test, but which there were no rules calling for them to project or join and now remain as normal disconnectors in the connector space. |
connector_filtered_remove_mv | The number of existing connector objects which were disconnected by the connector filter on this pass causing the metaverse object to be removed. |
connector_filtered_leave_mv | The number of existing connectors objects which were disconnected by the connector filter on this pass but the metaverse object was left in place. |
connector_flow | The number of existing connector objects that passed the connector filter test and remained connectors. When import attribute flow was applied, new or changed values were flowed to the Metaverse |
connector_flow_remove_mv | The number of existing connector objecs that passed the connector filter test and had import attribute flow applied to them, but had their metaverse object removed because the provisioning extension programmatically disconnected the connectors joined to that metaverse object |
connector_no_flow | Number of connected objects in the MA which have had no updates to the attributes |
connector_delete_remove_mv | Number of objects removed from the Metaverse (Deleted Connectors) |
connector_delete_leave_mv | The number of existing connectors which were deleted on this pass for which the metaverse object was left in place. |
connector_delete_add_processed | The number of connector space objects with an existing connection to a metaverse object that had a delete-add operation processed |
flow_failure | The number if objects for attributes failed to update |
export_add | The numnber of new object creations that the management agent has processed successfully or which have been written to the drop file. |
export_update | The number of object updates, which do not involve renames of the object, that the management agent has processed |
export_rename | The number of object updates, which do include renames of the object, that the management agent has processed successfully or which have been written to the drop file |
export_delete | The number of object deletes that the management agent has processed successfully or which have been written to the drop file. |
export_deleteadd | The number of modifications, which involve deleting the existing object and adding a new object with the same distinguished name (also known as DN), that the management agent has processed successfully or which have been written to the drop file. |
export_failure | The number of objects which failed to export from an MA to a destination identity store |
current_export_batch_number | The current export batch number at the time this export step began. |
last_successful_export_batch_number | The last successful export batch number at the time this export step began |
step_file_name | The file name of the defined drop file for this step |
ma_connection_information_xml | Stored in the database as XML
Shows information about instance of an MA connection to a identity store e.g. (AD MA connector ) (this shows all the tags used with example AD MA) <connection-result> success </connection-result> <server> FIM2012-02.FIMR2ENV.COM.LOCAL:389 </server> <connection-log> <incident> <connection-result> success </connection-result> <date> 2015-03-27 14:51:16.504 </date> <server> FIM2012-02.FIMR2ENV.COM.LOCAL:389 </server> </incident> </connection-log> |
ma_discovery_errors_xml | An XML fragment containing management agent discovery errors for this run step. This MUST be formatted as specified in section
|
ma_counters_xml | XML fragment containing management agent counters for this run step. This MUST be formatted as specified in sections |
sync_errors_xml | Details of synchronization errors stored in XML format
These are the details shown in the synchronization errors pane |
step_xml | Configuration information about the step executed within a run profile
Information is stored in an XML format This is configuration details you see when you click on a configured step within the Configure Run Profiles editor Every option configured for the step will show up as a Tag with the XML e.g. <step-type type="full-import"> <import-subtype>to-file</import-subtype> <import-subtype>resume-from-file</import-subtype> <import-subtype>to-cs</import-subtype> </step-type> <dropfile-name>output_test</dropfile-name> <partition>DC=FIMR2ENV,DC=COM,DC=LOCAL</partition> <custom-data> <adma-step-data><batch-size>100</batch-size><page-size>500</page-size><time-limit>120</time-limit></adma-step-data> </custom-data> |
mv_retry_errors_xml | An XML fragment describing the metaverse retry errors that occurred during synchronization. This MUST be NULL if no errors occurred |
flow_counters_xml | This contains XML fragments specifying the inbound and outbound flow counters.
-for inbound-flow-counters the XML is formatted as per this schema <xs:element name="inbound-flow-counters"> <xs:complexType> <xs:sequence> <xs:element name="disconnector-filtered" type="counterDetailTrueType" maxOccurs="1" minOccurs="1" /> <xs:element name="disconnector-joined-no-flow" type="counterDetailTrueType" maxOccurs="1" minOccurs="1" /> <xs:element name="disconnector-joined-flow" type="counterDetailTrueType" maxOccurs="1" minOccurs="1" /> <xs:element name="disconnector-joined-remove-mv" type="counterDetailTrueType" maxOccurs="1" minOccurs="1" /> <xs:element name="disconnector-projected-no-flow" type="counterDetailTrueType" maxOccurs="1" minOccurs="1" /> <xs:element name="disconnector-projected-flow" type="counterDetailTrueType" maxOccurs="1" minOccurs="1" /> <xs:element name="disconnector-projected-remove-mv" type="counterDetailTrueType" maxOccurs="1" minOccurs="1" /> <xs:element name="disconnector-remains" type="counterDetailFalseType" maxOccurs="1" minOccurs="1" /> <xs:element name="connector-filtered-remove-mv" type="counterDetailTrueType" maxOccurs="1" minOccurs="1" /> <xs:element name="connector-filtered-leave-mv" type="counterDetailTrueType" maxOccurs="1" minOccurs="1" /> <xs:element name="connector-flow" type="counterDetailTrueType" maxOccurs="1" minOccurs="1" /> <xs:element name="connector-flow-remove-mv" type="counterDetailTrueType" maxOccurs="1" minOccurs="1" /> <xs:element name="connector-no-flow" type="counterDetailTrueType" maxOccurs="1" minOccurs="1" /> <xs:element name="connector-delete-remove-mv" type="counterDetailTrueType" maxOccurs="1" minOccurs="1" /> <xs:element name="connector-delete-leave-mv" type="counterDetailTrueType" maxOccurs="1" minOccurs="1" /> <xs:element name="connector-delete-add-processed" type="counterDetailTrueType" maxOccurs="1" minOccurs="1" /> <xs:element name="flow-failure" type="counterDetailTrueType" maxOccurs="1" minOccurs="1" /> </xs:sequence> </xs:complexType> </xs:element> -for outboud-flow-counters the XML is formatted as per this schema <xs:element name="outbound-flow-counters"><xs:complexType> <xs:sequence> <xs:element name="provisioned-add-no-flow" type="counterDetailTrueType" maxOccurs="1" minOccurs="0" /> <xs:element name="provisioned-add-flow" type="counterDetailTrueType" maxOccurs="1" minOccurs="0" /> <xs:element name="provisioned-rename-no-flow" type="counterDetailTrueType" maxOccurs="1" minOccurs="0" /> <xs:element name="provisioned-rename-flow" type="counterDetailTrueType" maxOccurs="1" minOccurs="0" /> <xs:element name="provisioned-disconnect" type="counterDetailTrueType" maxOccurs="1" minOccurs="0" /> <xs:element name="connector-flow" type="counterDetailTrueType" maxOccurs="1" minOccurs="0" /> <xs:element name="connector-no-flow" type="counterDetailTrueType" maxOccurs="1" minOccurs="0" /> <xs:element name="provisioned-delete-add-no-flow" type="counterDetailTrueType" maxOccurs="1" minOccurs="0" /> <xs:element name="provisioned-delete-add-flow" type="counterDetailTrueType" maxOccurs="1" minOccurs="0" /> </xs:sequence> <xs:attribute name="ma" type="xs:string" use="required" /> <xs:attribute name="ma-id" type="guidType" use="required" /> </xs:complexType> </xs:element> |
Dbo.²mms_step_object_details
Every time a step within a profile is run, a row is added to this table for each object
(e.g . user, group object e.t.c.) which has had a successful action performed against
it during the step execution
An action can be a projection, join e.t.c
Selecting the clear all runs operation from the Actions menu option will clear most of the rows
in this table , some rows remain which I want to identify
step_history_id | GUID uniquely identifying this record in the table |
statistics_type | A GUID uniquely identifying the associated run step in the mms_step_history table. |
ma_statistics_type | A number indicating which management agent statistic values
were incremented while processing this object |
update_count | The number of times the statistics were updated after they were initially set during the run |
ma_id | A GUID uniquely identifying the management agent associated
with this step object details record. This value MUST match an ma_id value in the mms_management_agent table. |
cs_object_id | A GUID uniquely identifying the connector space object
associated with this step object details record. This value MUST match an object_id value in the mms_connectorspace table |
cs_dn | The distinguished name of the connector space object at the
time of the step object details event |