Skip to main content

Tracing FIM2010 Portal Service

Well... lots of Fiming now a days..

To get the head into the FIM request pipeline, I really wanted to see the incoming requests to the service so that i can be comfortable with the FIM in a technical way, Being the FIM2010 Portal service as a "WCF service" helped me to use this such pretty nice tools from Microsoft SDK toolset called "SvcTraceViewer.exe"..


to enable the service tracing into FIM2010 portal service resource configuration file on the server, in my case "Microsoft.ResourceManagement.Service.exe.config", i had to hook the WCF tracing this way:


<system.diagnostics>
<sources>
<source name="System.ServiceModel.MessageLogging" switchValue="Verbose,ActivityTracing">
<listeners>
<add type="System.Diagnostics.DefaultTraceListener" name="Default">
<filter type="" />
</add>
<add name="ServiceModelMessageLoggingListener">
<filter type="" />
</add>
</listeners>
</source>
<source name="System.ServiceModel" switchValue="Verbose,ActivityTracing"
propagateActivity="true">
<listeners>
<add type="System.Diagnostics.DefaultTraceListener" name="Default">
<filter type="" />
</add>
<add name="ServiceModelTraceListener">
<filter type="" />
</add>
</listeners>
</source>
<source name="Microsoft.ResourceManagement" switchValue="Verbose,ActivityTracing">
<listeners>
<add type="System.Diagnostics.DefaultTraceListener" name="Default">
<filter type="" />
</add>
<add name="ServiceModelTraceListener">
<filter type="" />
</add>
</listeners>
</source>
</sources>
<sharedListeners>
<add initializeData="C:\Logs\Microsoft.ResourceManagement.Service_messages.svclog"
type="System.Diagnostics.XmlWriterTraceListener, System, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089"
name="ServiceModelMessageLoggingListener" traceOutputOptions="LogicalOperationStack, DateTime, Timestamp, ProcessId, ThreadId, Callstack">
<filter type="" />
</add>
<add initializeData="C:\Logs\Microsoft.ResourceManagement.Service_tracelog.svclog"
type="System.Diagnostics.XmlWriterTraceListener, System, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089"
name="ServiceModelTraceListener" traceOutputOptions="LogicalOperationStack, DateTime, Timestamp, ProcessId, ThreadId, Callstack">
<filter type="" />
</add>
</sharedListeners>
<trace autoflush="true" />
</system.diagnostics>


Well its not good practice to have this tracing enabled all the time, so in troubleshooting or error handling cases, could this be of help.

I have two "Microsoft.ResourceManagement.Service.exe.config" versions ready one with debugging enabled and other one is original.

Comments

Popular posts from this blog

NetIQ IDM - JDBC statemens using policy builder

Few examples of using JDBC statements using dirxml policies On the Output policy: Handling matching policies with operation-data support: < rule > < description > [DB] Convert Query to DDL doc </ description > < comment name = "author" xml:space = "preserve" > Maqsood Ali Bhatti </ comment > < comment name = "version" xml:space = "preserve" > 5 </ comment > < comment name = "lastchanged" xml:space = "preserve" > Dec 20, 2017 </ comment > < conditions > < and > < if-operation mode = "case" op = "equal" > query </ if-operation > </ and > </ conditions > < actions > < do-append-xml-element expression = ".." name = "jdbc:statement" /> < do-append-xml-element expression = "../jdbc:statement[las...

NetIQ IDM - Strip unwanted group member values from current operation

This code example shows how to remove unwanted group members from current operation based on some business logic. Optimization group members add to avoid  "ALREADY_EXIST_VALUE" kind of errors. when IDM engine fails to do so. Here I am doing look up in AD for members, and for each added member from IDM if user is already member of AD group, i am just striping out current member value from the current operaiton. < do-set-local-variable name = "group-dn" scope = "policy" > < arg-string > < token-src-dn /> </ arg-string > </ do-set-local-variable > < do-set-local-variable name = "group-members" scope = "policy" > < arg-node-set > < token-dest-attr class-name = "Group" name = "Member" /> </ arg-node-set > </ do-set-local-variable > < do-trace-message > < arg-string ...

NetIQ IDM - Start workflow from policy and catch error

Those who want to avoid slowness of designer UI, use XML editor for fast delivery of code by providing following xml stub for start workflow :-) < do-start-workflow id = "$local.sub.etp.resource.UserId$" time-out = "30000" url = "$local.sub.etp.resource.Endpoint$" workflow-id = "$workflow-ldap-dn$" > < arg-password > < token-local-variable name = "local.sub.etp.resource.Password" /> </ arg-password > < arg-dn > < token-local-variable name = "lv.user.ldap.DN" /> </ arg-dn > < arg-string name = "Product" > < token-local-variable name = "lv.group.ldap.DN" /> </ arg-string > < arg-string name = "Accounts" > < token-local-variable name = "lv.user.ldap.DN" /> </ arg-string > < arg-string name = "Subscriptions" > ...