SlideShare una empresa de Scribd logo
1 de 7
SP 2010: Find error messages with a <br />Correlation ID token in SharePoint 2010<br />Author: Tobias Zimmergren http://www.zimmergren.net | http://www.tozit.com | @zimmergren<br />Introduction<br />In SharePoint 2010, you’ve got some new capabilities for error reporting and logs. One of the most noted features for me as a developer is that whenever you bump into an error message – you’ll be presented with a correlation ID token.<br />In this article I will try to explain how you can fetch that token from SharePoint, and also provide a small snippet of code to be able to build your own “Log Searcher Web Part” for your administrators.<br />Correlation ID, what’s that?<br />In SharePoint 2010, you get a Correlation ID (which is a GUID) attached to your logs/error messages when something happens. This ID can then be used to lookup that specific error from the logs.<br />This Correlation ID is used per request-session in SharePoint 2010, and if you are in the process of requesting some information from SharePoint and bump into some problems along the way – your Correlation ID will be the best starting point for searching for what went wrong along that request!<br />You might get an error message like this in SharePoint 2010 (don’t worry, if you haven’t seen one like this one yet – just hang in there, sooner or later you will.. )<br />Search for the log messages based on the Correlation ID token<br />So if you’ve gotten such an error message and want to find out more information about the actual error and don’t have the time to go around poking in the logs and searching – there’s a few methods you can do this rather easily, as described below. <br />Using PowerShell to lookup a log message based on Correlation ID token<br />One of the quick-n-awesome ways to do this is to simply hook up a PowerShell console (SharePoint 2010 Management Shell) and then just write the following command (replace the <GUID> with the Correlation Id):<br />get-splogevent | ?{$_Correlation -eq quot;
<GUID>quot;
 }<br />This will give you the details about your specific error like this in the console:<br />You might want to be more precise and get more specific details out of your query, then you can try something like this:<br />get-splogevent | ?{$_.Correlation -eq quot;
<GUID>quot;
} | select Area, Category, Level, EventID, Message | Format-List<br />This will give you the details about your specific error like this with some juicy details:<br />Finally if you would want these messages to be put into a text or log file instead, you could just add the classic “> C:wesome.log” after the command like this:<br />get-splogevent | ?{$_.Correlation -eq quot;
<GUID>quot;
} | select Area, Category, Level, EventID, Message | Format-List > C:wesome.log<br />On MSDN they have an overvoew of using SP-GetLogEvent which I would recommend!<br />Using SQL queries to find log message based on Correlation ID token<br />You can utilize the SQL logs database to fetch the specific error message based on Correlation id as well. In your logging DB (usually called WSS_Logging, but can be called something else if you’ve changed it) there is a view called ULSTraceLog which you can query with a simple SQL query and fetch the results.<br />I’ve created a query to fetch the items from the logging database like this: <br /> select [RowCreatedTime],  [ProcessName],  [Area],  <br /> [Category],  EventID,  [Message] <br /> from  [WSS_UsageApplication].[dbo].[ULSTraceLog] <br /> where  CorrelationId=< pre>'B4BBAC41-27C7-4B3A-AE33-4192B6C1E2C5'<br />This will render your results in the SQL Query window like this:<br />This can of course be implemented in a Web Part for your convenience as well (I’ve created a bunch of diag. and logging web parts that I’ve got deployed to Central Admin) that could look like this (this way you don’t need physical access to the ULS logs all the time, but can do a quick lookup from the web part):<br />Get the current Correlation ID by using code<br />I got this piece of code from my good friend Wictor’s blog post. Thanks Wictor – this made my Logging-project more satisfying!<br />With the following code you can fetch the current Correlation Id of a request.<br />Create a method (in my case called GetCurrentCorrelationToken()) to wrap up the functionality of returning the current token like this:<br /> public  class  CorrelationId <br /> {<br />     [DllImport (quot;
advapi32.dllquot;
)]<br />     public  static  extern  uint  EventActivityIdControl(uint  controlCode,ref  Guid  activityId);<br />     public  const  uint  EVENT_ACTIVITY_CTRL_GET_ID = 1;<br />     public  static  Guid  GetCurrentCorrelationToken()<br />     {<br />         Guid  g = Guid .Empty;<br />         EventActivityIdControl(EVENT_ACTIVITY_CTRL_GET_ID, ref  g);<br />         return  g;<br />     }<br /> }<br />Then from wherever in your code you can simply call it by using this approach:<br /> protected  void  Button1_Click(object  sender, EventArgs  e)<br /> {<br />     Label1.Text = CorrelationId .GetCurrentCorrelationToken().ToString();<br /> }<br />(Normally you might want this in a try/catch statement or something like that)<br />Summary<br />This article should give you (administrator and developer) an insight in how you easily can track the specific errors your users encounter in their/your application(s). If a user gets an error message in SharePoint 2010, they’ll also see the Correlation ID. <br />If you can train your users to write down that Correlation ID along with a few simple steps on how the error might have been occurring, you’re going to have a much easier way to find the details about that specific error than ever before.<br />
Correlation id token in share point 2010
Correlation id token in share point 2010
Correlation id token in share point 2010
Correlation id token in share point 2010
Correlation id token in share point 2010
Correlation id token in share point 2010

Más contenido relacionado

La actualidad más candente

Css eng r1
Css eng r1Css eng r1
Css eng r1
sbe37
 
Advanced Google Analytics
Advanced Google AnalyticsAdvanced Google Analytics
Advanced Google Analytics
Jeff Wisniewski
 
Sql Injection and Entity Frameworks
Sql Injection and Entity FrameworksSql Injection and Entity Frameworks
Sql Injection and Entity Frameworks
Rich Helton
 

La actualidad más candente (19)

Field Level Security - Spring 20
Field Level Security  -  Spring 20Field Level Security  -  Spring 20
Field Level Security - Spring 20
 
Css eng r1
Css eng r1Css eng r1
Css eng r1
 
Building a YellowAnt Application with Ruby on Rails
Building a YellowAnt Application with Ruby on RailsBuilding a YellowAnt Application with Ruby on Rails
Building a YellowAnt Application with Ruby on Rails
 
Sql Injection Attacks Siddhesh
Sql Injection Attacks SiddheshSql Injection Attacks Siddhesh
Sql Injection Attacks Siddhesh
 
Ivanti Cheat Sheet by Traversys Limited
Ivanti Cheat Sheet by Traversys LimitedIvanti Cheat Sheet by Traversys Limited
Ivanti Cheat Sheet by Traversys Limited
 
Advanced Google Analytics
Advanced Google AnalyticsAdvanced Google Analytics
Advanced Google Analytics
 
Sql Injection and Entity Frameworks
Sql Injection and Entity FrameworksSql Injection and Entity Frameworks
Sql Injection and Entity Frameworks
 
SharePoint 2010, Claims-Based Identity, Facebook, and the Cloud
SharePoint 2010, Claims-Based Identity, Facebook, and the CloudSharePoint 2010, Claims-Based Identity, Facebook, and the Cloud
SharePoint 2010, Claims-Based Identity, Facebook, and the Cloud
 
Claims-Based Identity in SharePoint 2010
Claims-Based Identity in SharePoint 2010Claims-Based Identity in SharePoint 2010
Claims-Based Identity in SharePoint 2010
 
Code injection
Code injectionCode injection
Code injection
 
New Form Element in HTML5
New Form Element in HTML5New Form Element in HTML5
New Form Element in HTML5
 
Sql injection
Sql injectionSql injection
Sql injection
 
CIS14: OAuth and OpenID Connect in Action
CIS14: OAuth and OpenID Connect in ActionCIS14: OAuth and OpenID Connect in Action
CIS14: OAuth and OpenID Connect in Action
 
A Detailed Guide to Securing React applications with Keycloak - WalkingTree ...
A Detailed Guide to Securing React applications with Keycloak  - WalkingTree ...A Detailed Guide to Securing React applications with Keycloak  - WalkingTree ...
A Detailed Guide to Securing React applications with Keycloak - WalkingTree ...
 
html 5 new form attribute
html 5 new form attributehtml 5 new form attribute
html 5 new form attribute
 
Sql injection
Sql injectionSql injection
Sql injection
 
Advanced SQL Injection
Advanced SQL InjectionAdvanced SQL Injection
Advanced SQL Injection
 
Logging
LoggingLogging
Logging
 
Simple ado program by visual studio
Simple ado program by visual studioSimple ado program by visual studio
Simple ado program by visual studio
 

Destacado (7)

Baltimore share point user group june 2015
Baltimore share point user group june 2015Baltimore share point user group june 2015
Baltimore share point user group june 2015
 
Sentri Webinar: Windows Azure Overview
Sentri Webinar: Windows Azure Overview Sentri Webinar: Windows Azure Overview
Sentri Webinar: Windows Azure Overview
 
SharePoint Performance at SPS Philly
SharePoint Performance at SPS PhillySharePoint Performance at SPS Philly
SharePoint Performance at SPS Philly
 
SharePoint logging & debugging
SharePoint logging  & debugging SharePoint logging  & debugging
SharePoint logging & debugging
 
SystemCenter webinar 12 6 12
SystemCenter webinar 12 6 12SystemCenter webinar 12 6 12
SystemCenter webinar 12 6 12
 
SharePoint Administration with PowerShell
SharePoint Administration with PowerShellSharePoint Administration with PowerShell
SharePoint Administration with PowerShell
 
SEOmoz Pitch Deck July 2011
SEOmoz Pitch Deck July 2011SEOmoz Pitch Deck July 2011
SEOmoz Pitch Deck July 2011
 

Similar a Correlation id token in share point 2010

Agile methodologies based on BDD and CI by Nikolai Shevchenko
Agile methodologies based on BDD and CI by Nikolai ShevchenkoAgile methodologies based on BDD and CI by Nikolai Shevchenko
Agile methodologies based on BDD and CI by Nikolai Shevchenko
Moldova ICT Summit
 
Intention Oriented Model Interaction
Intention Oriented Model InteractionIntention Oriented Model Interaction
Intention Oriented Model Interaction
Yasir Karam
 
Implementing Your Full Stack App with MongoDB Stitch (Tutorial)
Implementing Your Full Stack App with MongoDB Stitch (Tutorial)Implementing Your Full Stack App with MongoDB Stitch (Tutorial)
Implementing Your Full Stack App with MongoDB Stitch (Tutorial)
MongoDB
 
Advisor Jumpstart: JavaScript
Advisor Jumpstart: JavaScriptAdvisor Jumpstart: JavaScript
Advisor Jumpstart: JavaScript
dominion
 
How not to suck at Cyber Security
How not to suck at Cyber SecurityHow not to suck at Cyber Security
How not to suck at Cyber Security
Chris Watts
 
Summer '16 Realease notes
Summer '16 Realease notesSummer '16 Realease notes
Summer '16 Realease notes
aggopal1011
 
TangoWithDjango - ch8
TangoWithDjango - ch8TangoWithDjango - ch8
TangoWithDjango - ch8
Asika Kuo
 
.NET Portfolio
.NET Portfolio.NET Portfolio
.NET Portfolio
mwillmer
 

Similar a Correlation id token in share point 2010 (20)

Silverlight 2 for Developers - TechEd New Zealand 2008
Silverlight 2 for Developers - TechEd New Zealand 2008Silverlight 2 for Developers - TechEd New Zealand 2008
Silverlight 2 for Developers - TechEd New Zealand 2008
 
Chat php
Chat phpChat php
Chat php
 
Access tips access and sql part 4 building select queries on-the-fly
Access tips  access and sql part 4  building select queries on-the-flyAccess tips  access and sql part 4  building select queries on-the-fly
Access tips access and sql part 4 building select queries on-the-fly
 
C# Security Testing and Debugging
C# Security Testing and DebuggingC# Security Testing and Debugging
C# Security Testing and Debugging
 
Agile methodologies based on BDD and CI by Nikolai Shevchenko
Agile methodologies based on BDD and CI by Nikolai ShevchenkoAgile methodologies based on BDD and CI by Nikolai Shevchenko
Agile methodologies based on BDD and CI by Nikolai Shevchenko
 
Intention Oriented Model Interaction
Intention Oriented Model InteractionIntention Oriented Model Interaction
Intention Oriented Model Interaction
 
Implementing Your Full Stack App with MongoDB Stitch (Tutorial)
Implementing Your Full Stack App with MongoDB Stitch (Tutorial)Implementing Your Full Stack App with MongoDB Stitch (Tutorial)
Implementing Your Full Stack App with MongoDB Stitch (Tutorial)
 
How to implement sso using o auth in golang application
How to implement sso using o auth in golang applicationHow to implement sso using o auth in golang application
How to implement sso using o auth in golang application
 
Advisor Jumpstart: JavaScript
Advisor Jumpstart: JavaScriptAdvisor Jumpstart: JavaScript
Advisor Jumpstart: JavaScript
 
How to Validate Form With Flutter BLoC.pptx
How to Validate Form With Flutter BLoC.pptxHow to Validate Form With Flutter BLoC.pptx
How to Validate Form With Flutter BLoC.pptx
 
ASP.NET MVC3 RAD
ASP.NET MVC3 RADASP.NET MVC3 RAD
ASP.NET MVC3 RAD
 
How not to suck at Cyber Security
How not to suck at Cyber SecurityHow not to suck at Cyber Security
How not to suck at Cyber Security
 
Summer '16 Realease notes
Summer '16 Realease notesSummer '16 Realease notes
Summer '16 Realease notes
 
Better User Experience with .NET
Better User Experience with .NETBetter User Experience with .NET
Better User Experience with .NET
 
Apex Enterprise Patterns: Building Strong Foundations
Apex Enterprise Patterns: Building Strong FoundationsApex Enterprise Patterns: Building Strong Foundations
Apex Enterprise Patterns: Building Strong Foundations
 
TangoWithDjango - ch8
TangoWithDjango - ch8TangoWithDjango - ch8
TangoWithDjango - ch8
 
How my team is applying JS framework for PHP projects.
How my team is applying JS framework for PHP projects.How my team is applying JS framework for PHP projects.
How my team is applying JS framework for PHP projects.
 
Asp.Net MVC Intro
Asp.Net MVC IntroAsp.Net MVC Intro
Asp.Net MVC Intro
 
How to implement golang jwt authentication and authorization
How to implement golang jwt authentication and authorizationHow to implement golang jwt authentication and authorization
How to implement golang jwt authentication and authorization
 
.NET Portfolio
.NET Portfolio.NET Portfolio
.NET Portfolio
 

Más de UGAIA

4512 giraudy
4512 giraudy4512 giraudy
4512 giraudy
UGAIA
 

Más de UGAIA (20)

Milo-AI Milo AI Congress est conçu pour transformer votre compréhension de l'IA
Milo-AI Milo AI Congress est conçu pour transformer votre compréhension de l'IAMilo-AI Milo AI Congress est conçu pour transformer votre compréhension de l'IA
Milo-AI Milo AI Congress est conçu pour transformer votre compréhension de l'IA
 
KIT GOV-1 · @peg500and's KIT-Governance Book
KIT GOV-1 · @peg500and's KIT-Governance BookKIT GOV-1 · @peg500and's KIT-Governance Book
KIT GOV-1 · @peg500and's KIT-Governance Book
 
Smartphone et Copilot dans Windows 11 - Rendus sur PC.
Smartphone et Copilot dans Windows 11 - Rendus sur PC.Smartphone et Copilot dans Windows 11 - Rendus sur PC.
Smartphone et Copilot dans Windows 11 - Rendus sur PC.
 
ConversationsAvecChatGPT-v5.pdf
ConversationsAvecChatGPT-v5.pdfConversationsAvecChatGPT-v5.pdf
ConversationsAvecChatGPT-v5.pdf
 
Model-OpenAI-EROLw11-English.pdf
Model-OpenAI-EROLw11-English.pdfModel-OpenAI-EROLw11-English.pdf
Model-OpenAI-EROLw11-English.pdf
 
Prompts-3languages en PDF v2
Prompts-3languages en PDF v2Prompts-3languages en PDF v2
Prompts-3languages en PDF v2
 
Retirer les time code dialogue de film d'un document dans Word et le transfor...
Retirer les time code dialogue de film d'un document dans Word et le transfor...Retirer les time code dialogue de film d'un document dans Word et le transfor...
Retirer les time code dialogue de film d'un document dans Word et le transfor...
 
Model-OpenAI-EROLw11-English.pptx
Model-OpenAI-EROLw11-English.pptxModel-OpenAI-EROLw11-English.pptx
Model-OpenAI-EROLw11-English.pptx
 
Conversation avec ChatGPT-2.pdf --- v1 ---
Conversation avec ChatGPT-2.pdf --- v1 ---Conversation avec ChatGPT-2.pdf --- v1 ---
Conversation avec ChatGPT-2.pdf --- v1 ---
 
Prompts in 3 Languages US-FR-CATv2
Prompts in 3 Languages US-FR-CATv2Prompts in 3 Languages US-FR-CATv2
Prompts in 3 Languages US-FR-CATv2
 
Conversation pendant 24h avec une AI - ChatGPT
Conversation pendant 24h avec une AI - ChatGPTConversation pendant 24h avec une AI - ChatGPT
Conversation pendant 24h avec une AI - ChatGPT
 
SPEAK with CHATGPT -US
SPEAK with CHATGPT -US SPEAK with CHATGPT -US
SPEAK with CHATGPT -US
 
BOUCLES-DECOUVERTES NICE
BOUCLES-DECOUVERTES NICEBOUCLES-DECOUVERTES NICE
BOUCLES-DECOUVERTES NICE
 
Les-OTTOMANS-NICE-T3
Les-OTTOMANS-NICE-T3Les-OTTOMANS-NICE-T3
Les-OTTOMANS-NICE-T3
 
Bibliographie outils de Genealogie
Bibliographie outils de GenealogieBibliographie outils de Genealogie
Bibliographie outils de Genealogie
 
Power automate desktop 2021
Power automate desktop 2021Power automate desktop 2021
Power automate desktop 2021
 
Raci course b
Raci course bRaci course b
Raci course b
 
Livre dunod
Livre dunodLivre dunod
Livre dunod
 
Ugsf les url des présentations et des speakers pour la réunion du 11.12.13
Ugsf  les url des présentations et des speakers pour la réunion du 11.12.13Ugsf  les url des présentations et des speakers pour la réunion du 11.12.13
Ugsf les url des présentations et des speakers pour la réunion du 11.12.13
 
4512 giraudy
4512 giraudy4512 giraudy
4512 giraudy
 

Último

Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers:  A Deep Dive into Serverless Spatial Data and FMECloud Frontiers:  A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Safe Software
 
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
?#DUbAI#??##{{(☎️+971_581248768%)**%*]'#abortion pills for sale in dubai@
 

Último (20)

Manulife - Insurer Transformation Award 2024
Manulife - Insurer Transformation Award 2024Manulife - Insurer Transformation Award 2024
Manulife - Insurer Transformation Award 2024
 
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
 
Emergent Methods: Multi-lingual narrative tracking in the news - real-time ex...
Emergent Methods: Multi-lingual narrative tracking in the news - real-time ex...Emergent Methods: Multi-lingual narrative tracking in the news - real-time ex...
Emergent Methods: Multi-lingual narrative tracking in the news - real-time ex...
 
Strategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a FresherStrategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a Fresher
 
Apidays Singapore 2024 - Modernizing Securities Finance by Madhu Subbu
Apidays Singapore 2024 - Modernizing Securities Finance by Madhu SubbuApidays Singapore 2024 - Modernizing Securities Finance by Madhu Subbu
Apidays Singapore 2024 - Modernizing Securities Finance by Madhu Subbu
 
Boost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdfBoost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdf
 
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
 
Polkadot JAM Slides - Token2049 - By Dr. Gavin Wood
Polkadot JAM Slides - Token2049 - By Dr. Gavin WoodPolkadot JAM Slides - Token2049 - By Dr. Gavin Wood
Polkadot JAM Slides - Token2049 - By Dr. Gavin Wood
 
Artificial Intelligence Chap.5 : Uncertainty
Artificial Intelligence Chap.5 : UncertaintyArtificial Intelligence Chap.5 : Uncertainty
Artificial Intelligence Chap.5 : Uncertainty
 
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers:  A Deep Dive into Serverless Spatial Data and FMECloud Frontiers:  A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
 
"I see eyes in my soup": How Delivery Hero implemented the safety system for ...
"I see eyes in my soup": How Delivery Hero implemented the safety system for ..."I see eyes in my soup": How Delivery Hero implemented the safety system for ...
"I see eyes in my soup": How Delivery Hero implemented the safety system for ...
 
A Beginners Guide to Building a RAG App Using Open Source Milvus
A Beginners Guide to Building a RAG App Using Open Source MilvusA Beginners Guide to Building a RAG App Using Open Source Milvus
A Beginners Guide to Building a RAG App Using Open Source Milvus
 
Data Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonData Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt Robison
 
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, AdobeApidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
 
TrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data DiscoveryTrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
 
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
 
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
 
Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...
 
ICT role in 21st century education and its challenges
ICT role in 21st century education and its challengesICT role in 21st century education and its challenges
ICT role in 21st century education and its challenges
 
EMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWER
EMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWEREMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWER
EMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWER
 

Correlation id token in share point 2010

  • 1. SP 2010: Find error messages with a <br />Correlation ID token in SharePoint 2010<br />Author: Tobias Zimmergren http://www.zimmergren.net | http://www.tozit.com | @zimmergren<br />Introduction<br />In SharePoint 2010, you’ve got some new capabilities for error reporting and logs. One of the most noted features for me as a developer is that whenever you bump into an error message – you’ll be presented with a correlation ID token.<br />In this article I will try to explain how you can fetch that token from SharePoint, and also provide a small snippet of code to be able to build your own “Log Searcher Web Part” for your administrators.<br />Correlation ID, what’s that?<br />In SharePoint 2010, you get a Correlation ID (which is a GUID) attached to your logs/error messages when something happens. This ID can then be used to lookup that specific error from the logs.<br />This Correlation ID is used per request-session in SharePoint 2010, and if you are in the process of requesting some information from SharePoint and bump into some problems along the way – your Correlation ID will be the best starting point for searching for what went wrong along that request!<br />You might get an error message like this in SharePoint 2010 (don’t worry, if you haven’t seen one like this one yet – just hang in there, sooner or later you will.. )<br />Search for the log messages based on the Correlation ID token<br />So if you’ve gotten such an error message and want to find out more information about the actual error and don’t have the time to go around poking in the logs and searching – there’s a few methods you can do this rather easily, as described below. <br />Using PowerShell to lookup a log message based on Correlation ID token<br />One of the quick-n-awesome ways to do this is to simply hook up a PowerShell console (SharePoint 2010 Management Shell) and then just write the following command (replace the <GUID> with the Correlation Id):<br />get-splogevent | ?{$_Correlation -eq quot; <GUID>quot; }<br />This will give you the details about your specific error like this in the console:<br />You might want to be more precise and get more specific details out of your query, then you can try something like this:<br />get-splogevent | ?{$_.Correlation -eq quot; <GUID>quot; } | select Area, Category, Level, EventID, Message | Format-List<br />This will give you the details about your specific error like this with some juicy details:<br />Finally if you would want these messages to be put into a text or log file instead, you could just add the classic “> C:wesome.log” after the command like this:<br />get-splogevent | ?{$_.Correlation -eq quot; <GUID>quot; } | select Area, Category, Level, EventID, Message | Format-List > C:wesome.log<br />On MSDN they have an overvoew of using SP-GetLogEvent which I would recommend!<br />Using SQL queries to find log message based on Correlation ID token<br />You can utilize the SQL logs database to fetch the specific error message based on Correlation id as well. In your logging DB (usually called WSS_Logging, but can be called something else if you’ve changed it) there is a view called ULSTraceLog which you can query with a simple SQL query and fetch the results.<br />I’ve created a query to fetch the items from the logging database like this: <br /> select [RowCreatedTime], [ProcessName], [Area], <br /> [Category], EventID, [Message] <br /> from [WSS_UsageApplication].[dbo].[ULSTraceLog] <br /> where CorrelationId=< pre>'B4BBAC41-27C7-4B3A-AE33-4192B6C1E2C5'<br />This will render your results in the SQL Query window like this:<br />This can of course be implemented in a Web Part for your convenience as well (I’ve created a bunch of diag. and logging web parts that I’ve got deployed to Central Admin) that could look like this (this way you don’t need physical access to the ULS logs all the time, but can do a quick lookup from the web part):<br />Get the current Correlation ID by using code<br />I got this piece of code from my good friend Wictor’s blog post. Thanks Wictor – this made my Logging-project more satisfying!<br />With the following code you can fetch the current Correlation Id of a request.<br />Create a method (in my case called GetCurrentCorrelationToken()) to wrap up the functionality of returning the current token like this:<br /> public class CorrelationId <br /> {<br /> [DllImport (quot; advapi32.dllquot; )]<br /> public static extern uint EventActivityIdControl(uint controlCode,ref Guid activityId);<br /> public const uint EVENT_ACTIVITY_CTRL_GET_ID = 1;<br /> public static Guid GetCurrentCorrelationToken()<br /> {<br /> Guid g = Guid .Empty;<br /> EventActivityIdControl(EVENT_ACTIVITY_CTRL_GET_ID, ref g);<br /> return g;<br /> }<br /> }<br />Then from wherever in your code you can simply call it by using this approach:<br /> protected void Button1_Click(object sender, EventArgs e)<br /> {<br /> Label1.Text = CorrelationId .GetCurrentCorrelationToken().ToString();<br /> }<br />(Normally you might want this in a try/catch statement or something like that)<br />Summary<br />This article should give you (administrator and developer) an insight in how you easily can track the specific errors your users encounter in their/your application(s). If a user gets an error message in SharePoint 2010, they’ll also see the Correlation ID. <br />If you can train your users to write down that Correlation ID along with a few simple steps on how the error might have been occurring, you’re going to have a much easier way to find the details about that specific error than ever before.<br />