Content Type Person does not auto update SQL table

Mar 9, 2011 at 9:02 PM

Hi,

We capture SharePoint users data in SQL DB by using Content Type Person like this:

    <ContentType Name="Person" TableName="Users" ActivationOrder="1">
      <Fields>
        <Field Name="Account" Column="UserName" SqlType="varchar(255)" SPType="Text" Required="true"></Field>
        <Field Name="Title" Column="Name" SqlType="varchar(255)" SPType="Text" Required="false"></Field>
        <Field Name="EMail" Column="E-Mail" SqlType="varchar(255)" SPType="Text" Required="false"></Field>
      </Fields>

This was working fine before, but it stopped auto updating SQL table recently. Now, we always have to go to SLAM Control Panel and synchronize it manually whenever we add a user into SharePoint Groups.

We have over 3000 users now. Can this be an issue?

Please help if you know anything about this behaviour of SLAM.

Thanks!

 

Developer
Mar 10, 2011 at 6:22 PM

Add

  <system.diagnostics>
    <switches>
      <add name="SLAMLogger" value="4" />
    </switches>
  </system.diagnostics>
To your web.config, then when you save a user does anything appear in the SLAMMessageLog table?  If not is there an error in the windows event log (under Application)?  If neither, then you might want to use something like SharePoint Manager (http://spm.codeplex.com/) and see whether the SLAM event handlers are attached.  Maybe try reactivating SLAM.

Mar 10, 2011 at 7:56 PM

I did like you said, but nothing appeared in SLAMMessageLog table when I tried to add/delete a user. No error in Event Viewer (Application). About checking event receivers in SPM2007, do you know in which list I should check it for People and Group users, like in Members groups?

I also tried reactivating, but nothing changed.

Developer
Mar 10, 2011 at 7:58 PM

Users and groups are stored in the User Information List

Mar 10, 2011 at 8:29 PM

I checked the list, all 3 event receivers are attached to it, and nothing looks suspicious there. Any other ideas?

Mar 10, 2011 at 10:51 PM

Okay, based on below posts/articles, User Information list event WILL NOT fire. Then, I guess, there is no meaning of adding Person Content Type into slam.config. I believed it worked before, maybe because we used to manually synchronize it very often. There is a work-around, but I'm not going to do that for now, maybe later...

http://social.msdn.microsoft.com/Forums/en-US/sharepointdevelopment/thread/81aae5ef-9621-48c5-ad52-706e5d6a0f05

http://social.technet.microsoft.com/Forums/en-US/sharepointdevelopment/thread/fb7375ec-eee1-457b-9a3e-4cacec2ebd55

http://msdn.microsoft.com/en-us/library/aa979520.aspx

 

Developer
Mar 10, 2011 at 10:59 PM

This isn't entirely true.  The only events that will not fire are the delete events.  We regularly slam Person for Create and Update without a problem (and generally manage users through a web part that performs the delete against the database when a user is deleted via that interface to work around the delete event issue).

Mar 11, 2011 at 12:03 AM

Hmmm, weird. Why then when I debug on Create/Update when adding and updating users, it doesn't get caught? I wish your words could be true and I knew how to fix the problem. If only delete won't fire, that acceptable. Can you help?

Developer
Mar 11, 2011 at 12:05 AM

So you can see that the events are attached and if you set a breakpoint on ContentTypeEventManager.ItemUpdated (say at the beginning of the event) it doesn't get fired?

Mar 11, 2011 at 4:03 AM

No, it doesn't get fired.

I tried to remove and deploy, but it didn't help. And, when I first removed the solution package (with setup.exe), I checked event receivers from SPM2007 - they were not detached from the lists. Is it how it should be?

Developer
Mar 11, 2011 at 5:09 PM

Deactivation of SLAM can be done through its interface or if you deactivate the feature, but I believe doing remove through setup will just retract the solution.

Mar 11, 2011 at 8:48 PM
Edited Mar 11, 2011 at 8:49 PM

Deactivation removes the event handlers, but it still doesn't fix the problem when I reactivate - the events in User Information list don't get fired on adding/updating users in People and Groups.