Abhishek Bhowmick | SharePoint Blog

Alerts does not work for changes done

Posted in Sharepoint by Abhishek Bhowmick on September 18, 2008

SYMPTOMS:
Users do not recieve alerts for changes made to items although “Immediate alerts” are enabled in the site collection.
 
POSSIBLE CAUSES:
• The EventData and ACL columns in the SQL Content Database are not written correctly for this specific content database.
• The record is not processed by the timer service job correctly for this specific content database.
• The record is processed correctly. However, the email delivery mechanism is not working fine. For example, the alert templates fail to be picked up by the SharePoint Timer Service.
• Email server is not working.
 
RESOLUTION:
• Open Central Administration
• Click on Operations and then Timer Job Status
• Made sure the two jobs “Change Log “ and “Immediate Alerts” were showing “Success” and 100%
• Open the command window and navigate to C:\Program Files\Common Files\Microsoft Shared\web server extensions\12\BIN> and run the following command: stsadm -o getproperty -url <http://siteurl> -pn alerts-enabled
• The expected output is <Property Exist=”Yes” Value=”yes” />
• Make sure the account running the SharePoint Timer Service is the account which has the administrator Full Control permission over the site and the full permission
on the content database.
• Restart the SharePoint Timer Service.
• In content database verify the EventData and ACL are not NULL for the specific content database. This seems to be the key to the problem sometimes.
• Check for the following: C:\Program Files\Common Files\Microsoft Shared\web server
extensions\12\BIN>stsadm.exe -o getproperty -url <
http://siteurl> -pn job-immediate-alerts
• Expected result is Property Exist=”No” for that specific site
• Use the following command to reset the schedule
C:\Program Files\Common Files\Microsoft Shared\web server extensions\12\BIN>stsadm -o setproperty -url <http://siteurl> -pn job-immediate-alerts -pv “every 5 minutes between 0 and 59”
 
ADDITIONAL INFORMATION:
The internal working mechanism of how an alert works in Windows Sharepoint Services 3.0:
• The EventCache table records the SQL level events as they occur and the EventData and ACL columns are not NULL for an alert event.
• There is an alerts timer job that runs periodically to process the records in the EventCache. After the alerts timer job runs, it nulls out the EventData and ACL columns.
• It will log an event into the EventLog table.
 
MORE TROUBLESHOOTING STEPS:
• Open SQL Query Analyzer and connect to the content database of concerned site.
• Run the following query in SQL and copy the result out: Select * from timerlock
If the issue persists, collect the following information:
• Run the following query against the content database of concerned site: Select * from eventcache where EventData is not null
This will show all the subscriptions which have not been processed yet. We can see if there are some alerts which are not processed.
• Run the following query: Select * from eventlog where ListID = ‘xxx’. This would give you the ListID from the EventCache table by running Select * from EventCache and check the documents which correspond to the
concerned listor document library.
• If you cannot find any record in the step 1, please perform the following tests: Get a filemon trace on the Sharepoint server and see if the Timer service picks up the alert template during the whole process.
 
How to collect the filemon trace:
• Create a new item in the list or document library where the alerts should work and start Filemon
•  Run the following query: Select * from eventcache order by EventTime DESC
• Check if the latest result is the one corresponds to your uploaded document. Make sure the EventData and ACL columns are not NULL.
•  After some time, check the EventCache table again to see if the EventData and ACL columns are NULL.
•  If yes, stop Filemon after the EventData and ACL columns are NULL.
•  Analyze the Filemon trace for more information
Advertisements
Tagged with:
%d bloggers like this: