SLAM Event Log Error

Jun 25, 2009 at 7:56 AM
Edited Jun 25, 2009 at 7:57 AM

Hello everyone,

as I'm quite sure it is a fault on my side and SLAM ist working just fine so I don't put this into the issues tracker. In my server's event log I get quite a lot of SLAM errors I can't figure out:

System.TypeInitializationException: Der Typeninitialisierer für "AWS.SLAM.ComponentService" hat eine Ausnahme verursacht. ---> System.Reflection.TargetInvocationException: Ein Aufrufziel hat einen Ausnahmefehler verursacht. ---> System.IO.FileNotFoundException: Die Datei "C:\Programme\Gemeinsame Dateien\Microsoft Shared\Web Server Extensions\12\BIN\slam.config" konnte nicht gefunden werden.
Dateiname: "C:\Programme\Gemeinsame Dateien\Microsoft Shared\Web Server Extensions\12\BIN\slam.config"
   bei System.IO.__Error.WinIOError(Int32 errorCode, String maybeFullPath)
   bei System.IO.FileStream.Init(String path, FileMode mode, FileAccess access, Int32 rights, Boolean useRights, FileShare share, Int32 bufferSize, FileOptions options, SECURITY_ATTRIBUTES secAttrs, String msgPath, Boolean bFromProxy)
   bei System.IO.FileStream..ctor(String path, FileMode mode, FileAccess access, FileShare share, Int32 bufferSize, FileOptions options, String msgPath, Boolean bFromProxy)
   bei System.IO.FileStream..ctor(String path, FileMode mode, FileAccess access, FileShare share, Int32 bufferSize)
   bei System.Xml.XmlDownloadManager.GetStream(Uri uri, ICredentials credentials)
   bei System.Xml.XmlUrlResolver.GetEntity(Uri absoluteUri, String role, Type ofObjectToReturn)
   bei System.Xml.XmlReader.Create(String inputUri, XmlReaderSettings settings, XmlParserContext inputContext)
   bei System.Xml.Linq.XDocument.Load(String uri, LoadOptions options)
   bei AWS.SLAM.Configuration.XmlConfigurationManager..ctor()
   bei AWS.SLAM.StructureMap.SLAMRegistry.configure()
   bei AWS.SLAM.StructureMap.SLAMRegistry..ctor()
   bei AWS.SLAM.StructureMap.ComponentFactory.Initialize()
   --- Ende der internen Ausnahmestapelüberwachung ---
   bei System.RuntimeTypeHandle.CreateInstance(RuntimeType type, Boolean publicOnly, Boolean noCheck, Boolean& canBeCached, RuntimeMethodHandle& ctor, Boolean& bNeedSecurityCheck)
   bei System.RuntimeType.CreateInstanceSlow(Boolean publicOnly, Boolean fillCache)
   bei System.RuntimeType.CreateInstanceImpl(Boolean publicOnly, Boolean skipVisibilityChecks, Boolean fillCache)
   bei System.Activator.CreateInstance(Type type, Boolean nonPublic)
   bei AWS.SLAM.ComponentService..cctor()
   --- Ende der internen Ausnahmestapelüberwachung ---
   bei AWS.SLAM.ComponentService.GetInstance[T]()
   bei AWS.SLAM.ListItemEventManager.<>c__DisplayClassc.<ItemUpdated>b__8()
   bei Microsoft.SharePoint.SPSecurity.CodeToRunElevatedWrapper(Object state)
   bei Microsoft.SharePoint.SPSecurity.<>c__DisplayClass4.<RunWithElevatedPrivileges>b__2()
   bei Microsoft.SharePoint.Utilities.SecurityContext.RunAsProcess(CodeToRunElevated secureCode)
   bei Microsoft.SharePoint.SPSecurity.RunWithElevatedPrivileges(WaitCallback secureCode, Object param)
   bei Microsoft.SharePoint.SPSecurity.RunWithElevatedPrivileges(CodeToRunElevated secureCode)
   bei AWS.SLAM.ListItemEventManager.ItemUpdated(SPItemEventProperties properties)

Weitere Informationen über die Hilfe- und Supportdienste erhalten Sie unter http://go.microsoft.com/fwlink/events.asp.

Obviously something in my farm tries to read a SLAM config file at the "C:\Programme\Gemeinsame Dateien\Microsoft Shared\Web Server Extensions\12\BIN\slam.config" path. Of course there is no config file there as I put

  <appSettings>
    <add key="AWS.SLAM.ConfigurationManager.Config" value="C:\SLAM_Config\<application name>\slam.config"/>
  </appSettings>

into my web.config files for the different (2 apps using SLAM) web applications on this server. This leads me to my two questions:

1. how can I figure out which web application's slam.config is looked for (one web application is a helpdesk, the other one an intranet. both use slam to push sharepoint list content into SQL tables as a dashboard data base)?

2. how can I figure out which "part" of Sharepoint is causing this behaviour?

I have not really been deeply involved into error tracking in Sharepoint so far so any help is greatly appreciated.

Thanks for your assistance

Best regards

silmarin

Developer
Jul 6, 2009 at 5:05 PM

I believe this is a scheduled task.  Perhaps something that is using stsadm?  Because event receivers in SharePoint run in the context of whatever process initiate them, SLAM needs to locate its configuration from that process as well.  So for example, if I run a console application and it updates some list items in SharePoint, SLAM by default will look in the executing directory for a slam.config.  For such console applications you would specify the config key to show the event receivers where to find the slam config for that update process.  Using that logic then, something is running in C:\Programme\Gemeinsame Dateien\Microsoft Shared\Web Server Extensions\12\BIN that is updating something configured in SLAM.  Perhaps you are slamming Users and something is executed there that updates Users periodically?

 

Thanks,

-Brian

Jul 10, 2009 at 7:28 AM
Edited Jul 10, 2009 at 7:29 AM

Hello Brian,

thanks for your thoughts. Actually I think this might be related to workflows. I have a helpdesk application running and the ticket list is heavily (sharepoint designer) workflow controlled - such as filling fields, setting permissions, etc. on a newly created ticket. (including custom actions from this project: http://spdactivities.codeplex.com/ ) Could this workflow activity lead to such errors (e.g. if a list item is in use by a workflow (which modifies the item))? Just plain list items (no users or content types) are slammed in my farm.

I had the path to the slam.config file added in my web.config for the helpdesk application so I thought that end covered. Maybe not ;) ...

thanks for your assistance.

Best regards

silmarin

Jul 13, 2009 at 6:49 AM

After some more testing (copying the helpdesk app to my test farm and removing all workflows) it turns out that indeed the workflows were responsible for my SLAM errors. So I'm looking for another way and currently my best idea is to deactivate the SLAM feature for the helpdesk at 5:00 am and re-activate it at 11:00 pm (via Windows scheduled tasks + stsadm batch file) so the lists can by sync'ed at night when noone ist working. One question remains here: does SLAM automatically start sync'ing the lists once the feature is activated or do I have to to some additional steps?

thanks

best regards

silmarin

Developer
Jul 13, 2009 at 3:59 PM

Do you have workflows for multiple web applications that also work against lists with SLAM event receivers or is this a single case on your farm?  If it's a single case you could drop a copy of the slam.config into your \12\BIN\ folder and it should work.

To answer your question, activation on its own doesn't sync.

 

Thanks,

-Brian