2015-04-30 07:21:52,196 --1-- DEBUG [Exch2010Extension.Exch2010ExtensionClass]Process information-------------------ID 3704Name mmsscrptToString() System.Diagnostics.Process (mmsscrpt)CPU timeTotal 00:00:02.4843750User 00:00:02.0156250Privileged 00:00:00.4687500Memory usageCurrent 54,919,168 BPeak 54,919,168 BActive threads 21
Thursday, April 30, 2015
How to debug the Exch2010Extension.dll
If you find yourself having to debug the Exch2010Extension.dll in the FIM Sync 'Extensions' folder, then you want to attach to the MMSSCRPT.exe process, and not MIIServer.exe.
Tuesday, March 10, 2015
Management Agent Statistics Enumeration
Following up on my previous post, here's where to find the statistics_type enumeration.
User Profile Synchronization (UPS): Database Data Access Protocol Specification
Copyright © 2012 Microsoft Corporation.
Release: Thursday, July 5, 2012
http://download.microsoft.com/download/5/0/1/501ED102-E53F-4CE0-AA6B-B0F93629DDC6/Windows/%5BMS-UPSDBDAP%5D.pdf
2.2.2.12 Management Agent Statistics Enumeration
The management agent statistics enumeration indicates which statistic type was updated.
This is in the mms_step_object_details table!
User Profile Synchronization (UPS): Database Data Access Protocol Specification
Copyright © 2012 Microsoft Corporation.
Release: Thursday, July 5, 2012
http://download.microsoft.com/download/5/0/1/501ED102-E53F-4CE0-AA6B-B0F93629DDC6/Windows/%5BMS-UPSDBDAP%5D.pdf
2.2.2.12 Management Agent Statistics Enumeration
The management agent statistics enumeration indicates which statistic type was updated.
This is in the mms_step_object_details table!
| Hex | Decimal | Description |
|---|---|---|
0x00000000
|
0
|
No statistics.
|
0x00000001
|
1
|
Staging unchanged.
|
0x00000002
|
2
|
Staging add.
|
0x00000003
|
3
|
Staging update.
|
0x00000004
|
4
|
Staging rename.
|
0x00000005
|
5
|
Staging delete.
|
0x00000006
|
6
|
Staging delete-add.
|
0x00000007
|
7
|
Staging failure.
|
0x00000008
|
8
|
Disconnector filtered.
|
0x00000009
|
9
|
Disconnector joined, no flow.
|
0x0000000A
|
10
|
Disconnector joined with flow.
|
0x0000000B
|
11
|
Disconnector joined, remove metaverse object.
|
0x0000000C
|
12
|
Disconnector projected, no flow.
|
0x0000000D
|
13
|
Disconnector projected with flow.
|
0x0000000E
|
14
|
Disconnector remains a disconnector.
|
0x0000000F
|
15
|
Connector filtered, remove metaverse object.
|
0x00000010
|
16
|
Connector filtered, leave metaverse object.
|
0x00000011
|
17
|
Connector with flow.
|
0x00000012
|
18
|
Connector with flow, remove metaverse object.
|
0x00000013
|
19
|
Connector, no flow.
|
0x00000014
|
20
|
Connector delete, remove metaverse object.
|
0x00000015
|
21
|
Connector delete, leave metaverse object.
|
0x00000016
|
22
|
Connector delete-add processed.
|
0x00000017
|
23
|
Flow failure.
|
0x00000018
|
24
|
Export add.
|
0x00000019
|
25
|
Export update.
|
0x0000001A
|
26
|
Export rename.
|
0x0000001B
|
27
|
Export delete.
|
0x0000001C
|
28
|
Export delete-add.
|
0x0000001D
|
29
|
Export failure.
|
0x0000001F
|
31
|
Provisioned flow.
|
0x00000020
|
32
|
Provisioned, no flow.
|
0x00000021
|
33
|
Provisioned add, no flow.
|
0x00000022
|
34
|
Provisioned add with flow.
|
0x00000023
|
35
|
Provisioned rename, no flow.
|
0x00000024
|
36
|
Provisioned rename with flow.
|
0x00000025
|
37
|
Provisioned delete.
|
0x00000026
|
38
|
Provisioned delete-add, no flow.
|
0x00000027
|
39
|
Provisioned delete-add with flow.
|
0x00000028
|
40
|
Provisioned flow reset.
|
Monday, March 9, 2015
FIM Sync filtered disconnectors SQL query
In case you were wondering, here's the SQL query that the FIM Sync Service Manager uses to fetch filtered disconnectors.
http://c--shark.blogspot.co.uk/2015/03/management-agent-statistics-enumeration.html
Update: Here's where to find the statistics_type enumeration:select cs_object_id, cs_dn from mms_step_object_details with(nolock) where step_history_id='{21D1945A-7E20-47CD-8E47-93762C343BEA}' and ((statistics_type=8))
http://c--shark.blogspot.co.uk/2015/03/management-agent-statistics-enumeration.html
Wednesday, November 12, 2014
Update-recipient: [Object] wasn't found. Please make sure you've typed it correctly.
Got a misleading error message from Exchange Powershell cmdlets.
Problem description
- FIM 2010
- AD DS MA
- Provision for Exchange 2010
- Export contact
- No error message
- Contact object not mail-enabled
- Try PS command via Exchange Management Shell
- Object not found (see error below)
Resolution
- mailNickname was empty!
[PS] C:\>update-recipient -Identity "CN=Whisky Tango (wtango@foxtrot.ca),OU=Contacts,DC=exchange,DC=loc" -DomainController Exchange2010srv.exchange.locCreating a new session for implicit remoting of "Update-Recipient" command...exchange.loc/Contacts/Whisky Tango (wtango@foxtrot.ca) wasn't found. Please make sure you've typed it correctly.+ CategoryInfo : ObjectNotFound: (exchange.loc/Co...tango@foxtrot.ca):RecipientIdParameter) [Update-Recipient], ManagementObjectNotFoundException+ FullyQualifiedErrorId : 4247562D,Microsoft.Exchange.Management.RecipientTasks.UpdateRecipient
Tuesday, October 7, 2014
Network impact assessment (NIA): FIM 2010 AD MA LDAP traffic throughput
I just performed a Wireshark capture between the FIM and several Active Directory domains to try to validate whether the numbers in the MIIS 2003 Capacity Planning whitepaper are (a) still relevant to FIM 2010 and (b) actually relevant to AD connected data sources. The whitepaper mentions that the test results show throughput between MIIS and its SQL database. So, it doesn't specifically say that the numbers are relevant to connected data sources, but it does mention them in the recommended best practices section; and this is confusing.
So, I'm here to clear up the confusion. And I can summarize by saying, yes, the numbers in the whitepaper are relevant to AD connected data sources. Here are my findings:
These findings seem to verify the claim from the MIIS 2003 capacity planning whitepaper that a 5 Mbps bandwidth is the bare minimum (for connected data sources). The sections below show more details about the tests.
So, I'm here to clear up the confusion. And I can summarize by saying, yes, the numbers in the whitepaper are relevant to AD connected data sources. Here are my findings:
| Average LDAP traffic throughput | 1.2 Mbps |
| Peak LDAP traffic throughput | 6 Mbps |
These findings seem to verify the claim from the MIIS 2003 capacity planning whitepaper that a 5 Mbps bandwidth is the bare minimum (for connected data sources). The sections below show more details about the tests.
CORP_ADMA Full
import
| object_type | count |
|---|---|
| computer | 82 |
| contact | 2072 |
| container | 208 |
| domainDNS | 1 |
| foreignSecurityPrincipal | 21 |
| group | 1787 |
| NULL | 82 |
| organizationalUnit | 616 |
| user | 10020 |
| TOTAL objects | 14889 |
| 1.14 Mbps
28287944 total bytes 28287944 / 1024^2 = 26.9775 MB 28287944 * 8 = 226303552 bits 226303552 / 198.559 = 1.1397E6 bps |
|
| 6e6 bits/tick @ 1 sec/tick 6e6/1e6=6 Mbps peak |
EXCH_ADMA Full
import
| object_type | count |
|---|---|
| contact | 3365 |
| container | 107 |
| domainDNS | 1 |
| group | 280 |
| NULL | 57 |
| organizationalUnit | 163 |
| user | 6740 |
| TOTAL objects | 10713 |
| 1.264 Mbps 19285496 total bytes 19285496 / 1024^2 = 18.3921 MB |
|
| 5.5e6 bits/tick @ 1 sec/tick 5.5e6/1e6=5.5 Mbps peak |
WEB_ADMA Full import
| object_type | count |
|---|---|
| container | 82 |
| domainDNS | 1 |
| group | 45 |
| NULL | 8 |
| organizationalUnit | 3 |
| user | 2184 |
| TOTAL objects | 2323 |
| 1.197 Mbps 2611566 total bytes 2611566 / 1024^2 = 2.4906 MB |
|
| 5e6 bits/tick @ 1 sec/tick 5e6/1e6=5 Mbps peak |
Thursday, August 21, 2014
How to: Create anchor for delta import record in ECMA 2.0 GetImportEntries
#region FAIL http://social.technet.microsoft.com/Forums/en-US/a2bc4a62-a987-444a-9382-7a37ba49fcf8/getting-missingchangetype-error-during-delta-import-on-callbased-ecma2?forum=ilm2//csentry.DN = row["dn"].ToString().Trim();#endregion/// Lesson learned: DO NOT name one of the columns 'DN'./// http://c--shark.blogspot.com/2014/08/lesson-learned-ecma2-do-not-name-one-of.htmlcsentry.AnchorAttributes.Add(AnchorAttribute.Create("SQL_DN", row["dn"].ToString().Trim()));
Lesson learned: ECMA2: Do NOT name one of the schema columns 'DN'
Here are my notes on troubleshooting errors with an ECMA 2.0. Turns out, the errors were due to the fact that one of the columns was named 'DN'. As you can imagine, troubleshooting this was maddening...
· ECMA2 connector to SQL Server
· One of the column names was 'DN'
· In GetSchema:
if (string.Equals(key, "dn", StringComparison.CurrentCultureIgnoreCase)){personType.Attributes.Add(SchemaAttribute.CreateAnchorAttribute(key, AttributeType.String));}
· Upon full import (see event log below):
o missing-anchor-component
o invalid-attribute-value
o staging-error
· GetImportEntries taken from MSFT example:
public GetImportEntriesResults GetImportEntries(GetImportEntriesRunStep importRunStep){//// In our sample below, we create objects using a fixed format.//GetImportEntriesResults importReturnInfo;List<CSEntryChange> csentries = new List<CSEntryChange>();// Full Import.if (OperationType.Full == m_ImportType){// Object 1CSEntryChange csentry1 = CSEntryChange.Create();csentry1.ObjectModificationType = ObjectModificationType.Add;csentry1.ObjectType = "person";//csentry1.DN = "CN=Object1,CN=Users,DC=contoso,DC=com";csentry1.AttributeChanges.Add(AttributeChange.CreateAttributeAdd("DN", "1"));//csentry1.AttributeChanges.Add(AttributeChange.CreateAttributeAdd("USERNAME", "Object1"));//csentry1.AttributeChanges.Add(AttributeChange.CreateAttributeAdd("email", "Object1@contoso.com"));//csentry1.AttributeChanges.Add(AttributeChange.CreateAttributeAdd("multiAttr", new List<object>() { "value1", "value1", "value3" }));csentries.Add(csentry1);// Object 2CSEntryChange csentry2 = CSEntryChange.Create();csentry2.ObjectModificationType = ObjectModificationType.Add;csentry2.ObjectType = "person";//csentry2.DN = "CN=Object2,CN=Users,DC=contoso,DC=com";csentry2.AttributeChanges.Add(AttributeChange.CreateAttributeAdd("DN", "2"));//csentry2.AttributeChanges.Add(AttributeChange.CreateAttributeAdd("USERNAME", "Object2"));//csentry2.AttributeChanges.Add(AttributeChange.CreateAttributeAdd("email", "Object2@contoso.com"));//csentry2.AttributeChanges.Add(AttributeChange.CreateAttributeAdd("multiAttr", new List<object>() { "value4", "value5", "value6" }));csentries.Add(csentry2);}// Create the resultimportReturnInfo = new GetImportEntriesResults();importReturnInfo.MoreToImport = false;importReturnInfo.CSEntries = csentries;// Also, GetImportEntriesResults.CustomData can be used for retaining necessary data// for performing a subsequent import.// A typical case of this might be the watermark used// for delta import.//return importReturnInfo;}
· Event log:
FIMSynchronizationService
|
The server encountered an unexpected error while performing an operation for a management agent.
"Microsoft.MetadirectoryServices.Impl.InternalError: 0x80230301
at Microsoft.MetadirectoryServices.Impl.ScriptHost.ThrowExceptionFromHRESULT(Int32 hr)
at Microsoft.MetadirectoryServices.Impl.Ecma2ConversionServices.AddAttributeToDImage(CDImage* pdimage, String attributeName, AttributeModificationType attributeModificationType, IList`1 attributeValueChanges, Int32 escapeReferenceDNValues)
at Microsoft.MetadirectoryServices.Impl.Ecma2ConversionServices.ConvertToDImage(CSEntryChange csEntryChange, CDImage** ppDImage, Int32 escapeReferenceDNValues)
at Microsoft.MetadirectoryServices.Impl.ScriptHost.InvokeExtMA_ImportEntry(UInt32 cBatchSize, UInt16* pcszCustomData, UInt32 cFullObject, _OCTET* rgoctFullObject, UInt32* rgomodt, UInt32* pcpcszChangedAttributes, UInt16*** prgpcszChangedAttributes, Int32 fIsDNStyleNone, UInt16** ppszUpdatedCustomData, _OCTET* rgoctCSImage, Int32* rgextec, UInt16** rgpszErrorName, UInt16** rgpszErrorDetail, Int32* pfMoreToImport)"
|
FIMSynchronizationService
|
The server encountered an unexpected error in the synchronization engine:
"BAIL: MMS(8916): d:\bt\32669\private\source\miis\server\sync\syncstage.cpp(595): 0x80230302 (The image or delta doesn't have an anchor.)
Forefront Identity Manager 4.1.3559.0"
|
FIMSynchronizationService
|
The server encountered an unexpected error in the synchronization engine:
"BAIL: MMS(6992): d:\bt\32669\private\source\miis\ma\xml\ma.cpp(5012): 0x80230005 (Management agent encountered an error while processing an object.)
BAIL: MMS(6992): d:\bt\32669\private\source\miis\server\sync\syncstage.cpp(595): 0x80230302 (The image or delta doesn't have an anchor.)
Forefront Identity Manager 4.1.3559.0"
|
FIMSynchronizationService
|
The server encountered an unexpected error in the synchronization engine:
"BAIL: MMS(13268): d:\bt\32669\private\source\miis\ma\xml\ma.cpp(5078): 0x80230005 (Management agent encountered an error while processing an object.)
BAIL: MMS(13268): d:\bt\32669\private\source\miis\shared\ldaputils\dnutils.cpp(580): 0x80070057 (The parameter is incorrect.): Error parsing DN 99999: DN terminates in attribute name
BAIL: MMS(13268): d:\bt\32669\private\source\miis\ma\extensible\extensible.cpp(2057): 0x80070057 (The parameter is incorrect.)
BAIL: MMS(13268): d:\bt\32669\private\source\miis\server\sync\syncstage.cpp(595): 0x80230302 (The image or delta doesn't have an anchor.)
Forefront Identity Manager 4.1.3559.0"
|
FIMSynchronizationService
|
The server encountered an unexpected error in the synchronization engine:
"BAIL: MMS(8916): d:\bt\32669\private\source\miis\ma\xml\ma.h(734): 0x80230005 (Management agent encountered an error while processing an object.)
BAIL: MMS(8916): d:\bt\32669\private\source\miis\ma\xml\ma.cpp(4358): 0x80230005 (Management agent encountered an error while processing an object.)
BAIL: MMS(8916): d:\bt\32669\private\source\miis\ma\xml\ma.cpp(5240): 0x80230005 (Management agent encountered an error while processing an object.)
BAIL: MMS(8916): d:\bt\32669\private\source\miis\server\sync\syncstage.cpp(595): 0x80230302 (The image or delta doesn't have an anchor.)
Forefront Identity Manager 4.1.3559.0"
|
Subscribe to:
Posts (Atom)





