Wednesday, 12 October 2011

WCF BAM interceptor and no data


I had a situation where I were looking at using BAM (Business Activity Monitoring) from WCF (Windows Communcation Foundation) and I couldn’t find out why I didn’t get any data into my BAMPrimaryImport database. I didn’t get any errors so I was really wondering where my error was.

I launched the SQL Profiler to see if this could help me in my search for why I didn’t get any data. When the WCF service is launched it calls a stored procedure:

exec bam_Metadata_GetLatestInterceptorConfiguration @technologyName=N'WCF',@manifest=N'<namespace>.<interface>, <Assemblyname>, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null'

This stored procedure returned zero rows, so that was why I didn’t get any data into my tables in the BAMPrimaryImport database. I wasn’t sure why yet why this call didn’t return any data. I looked at the SQL code for the stored procedure and found that it queried the table “[bam_Metadata_EventSource]”. In this table it had the information that I was asking for, but the case of the <Assemblyname> in the manifest column where different than what I saw were used in the calling of the stored procedure.

So what I learned from this is to remember the correct spelling and casing in the IC file map:
  <ic:EventSource Name="xxx" Technology ="WCF" Manifest ="<namespace>.<interface>, <assemblyname>, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null">

Something that might be hard to find…

Random posts: