<?xml version='1.0' encoding='UTF-8'?><?xml-stylesheet href="http://www.blogger.com/styles/atom.css" type="text/css"?><feed xmlns='http://www.w3.org/2005/Atom' xmlns:openSearch='http://a9.com/-/spec/opensearchrss/1.0/' xmlns:georss='http://www.georss.org/georss' xmlns:gd='http://schemas.google.com/g/2005' xmlns:thr='http://purl.org/syndication/thread/1.0'><id>tag:blogger.com,1999:blog-3404080747670172952</id><updated>2011-07-07T13:19:40.272-07:00</updated><category term='SharePoint MOSS workflow audit history'/><title type='text'>My Technical Brain Extension</title><subtitle type='html'></subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://coderjones.blogspot.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3404080747670172952/posts/default?max-results=100'/><link rel='alternate' type='text/html' href='http://coderjones.blogspot.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><author><name>Jeremiah</name><uri>http://www.blogger.com/profile/16982200628765138203</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>5</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>100</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-3404080747670172952.post-7151703000171936791</id><published>2008-08-21T17:37:00.000-07:00</published><updated>2008-08-21T18:01:15.482-07:00</updated><title type='text'>SharePoint 2007 Disaster Recover Disaster</title><content type='html'>&lt;!--StartFragment--&gt;  &lt;p class="MsoNormal"&gt;I am just getting my feet wet in the waters of SharePoint 2007 disaster recovery.&lt;span style="mso-spacerun: yes"&gt;  &lt;/span&gt;I have been checking out blogs that speak of mirroring databases, etc.&lt;span style="mso-spacerun: yes"&gt;  &lt;/span&gt;What I tried to do, in my ignorance, was to move the content and config databases to our DR servers.&lt;span style="mso-spacerun: yes"&gt;  &lt;/span&gt;I attempted to attach to the config database, but this failed due to permissions issues I had with our admin account.&lt;span style="mso-spacerun: yes"&gt;  &lt;/span&gt;After resolving this, I was able to attach and tried moving the central administration site to our DR web server.&lt;span style="mso-spacerun: yes"&gt;  &lt;/span&gt;This would not work, and, in the process of troubleshooting, I applied a hotfix, office2007-kb939077-fullfile-x64-glb.exe.&lt;span style="mso-spacerun: yes"&gt;  &lt;/span&gt;This still didn’t resolve my issue, and so I decided to go back to our test servers to restore that site.&lt;span style="mso-spacerun: yes"&gt;  &lt;/span&gt;However, I ran into problems when I ran the configuration wizard:&lt;br /&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;strong&gt;&lt;span style="font-weight:normal;mso-bidi-font-weight: bold"&gt;An exception of type Microsoft.SharePoint.Administration.SPUpdatedConcurrencyException was thrown. &lt;/span&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/strong&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;strong&gt;&lt;span style="font-weight:normal;mso-bidi-font-weight: bold"&gt;I ended up running the following command:&lt;/span&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/strong&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;span style="font-size:10.0pt;line-height:115%;font-family: Arial;mso-bidi-font-family:Arial"&gt;stsadm -o upgrade -inplace&lt;/span&gt;&lt;strong&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/strong&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;strong&gt;&lt;span style="font-weight:normal;mso-bidi-font-weight: bold"&gt;&lt;span style="mso-spacerun: yes"&gt; &lt;/span&gt;and now the website is available, but the central administration site is still unavailable.&lt;span style="mso-spacerun: yes"&gt;  &lt;/span&gt;I now see this error in the event log:&lt;/span&gt;&lt;/strong&gt;&lt;b style="mso-bidi-font-weight:normal"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/b&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;The schema version (3.1.3.0) of the database SharePoint_AdminContent_ on &lt;dbserver&gt; is not consistent with the expected database schema version (3.0.149.0) on &lt;web&gt;. &lt;span style="mso-spacerun: yes"&gt; &lt;/span&gt;Connections to this database from this server have been blocked to avoid data loss.&lt;span style="mso-spacerun: yes"&gt;  &lt;/span&gt;Upgrade the web front end or the content database to ensure that these versions match.&lt;/p&gt;  &lt;p class="MsoNormal"&gt;At this point I notice that WSS SP1 is installed in DR, but not test.&lt;span style="mso-spacerun: yes"&gt;  &lt;/span&gt;After installing SP1 on test I am able to access Central Administration.&lt;br /&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;Our current DR solution is going to be automated stsadm full backups:&lt;/p&gt;&lt;p class="MsoNormal"&gt;stsadm -o backup -directory \\drserver\backup_dir -backupmethod incremental (only after first running a full backup)&lt;/p&gt;&lt;p class="MsoNormal"&gt;Then on the DR server:&lt;/p&gt;&lt;p class="MsoNormal"&gt;stsadm -o restore -directory \\drserver\backup_dir -restoremethod new -newdatabaseserver &lt;dbservername&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;We did this because the site will be moving to entirely different set of servers.  During the restore we can specify new db server names, new database names and new administrator accounts.  This isn't everything we want, but it will work.&lt;/p&gt;  &lt;!--EndFragment--&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3404080747670172952-7151703000171936791?l=coderjones.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://coderjones.blogspot.com/feeds/7151703000171936791/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3404080747670172952&amp;postID=7151703000171936791' title='36 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3404080747670172952/posts/default/7151703000171936791'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3404080747670172952/posts/default/7151703000171936791'/><link rel='alternate' type='text/html' href='http://coderjones.blogspot.com/2008/08/sharepoint-2007-disaster-recover.html' title='SharePoint 2007 Disaster Recover Disaster'/><author><name>Jeremiah</name><uri>http://www.blogger.com/profile/16982200628765138203</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>36</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3404080747670172952.post-8902640213958571125</id><published>2008-08-18T18:27:00.001-07:00</published><updated>2008-08-18T18:58:55.994-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='SharePoint MOSS workflow audit history'/><title type='text'>SharePoint 2007 Lacks Workflow Auditing</title><content type='html'>&lt;span class="Apple-style-span"  style=" ;font-family:Times;"&gt;&lt;div style="border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 3px; padding-right: 3px; padding-bottom: 3px; padding-left: 3px; width: auto; font: normal normal normal 100%/normal Georgia, serif; text-align: left; "&gt;I have been working on an interface to our workflows.  One of our system requirements is to facilitate viewing workflow history on a per user basis.  Specifically, I need to be able to generate a list of all current and past workflows a user, or their team members, has initiated.  Then they need to be able to view a detailed history of the workflow. This has lead me to find some frustrating things about MOSS workflow auditing.  I have discovered there really no reliable way out of the box to audit workflows within MOSS.&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-weight: bold; "&gt;Workflow History&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-weight: bold; "&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;When we associate a workflow with a list, we specify a workflow history list for instances of that workflow.  There are some problems with the implementation of this feature.  By default, history items are made unavailable after 60 days.  This is done by a timer job that deletes the association between the history item and the workflow, and you can work around this in a number of ways.  The job can be disabled or you can programmatically set the &lt;a href="http://msdn.microsoft.com/en-us/library/microsoft.sharepoint.workflow.spworkflowassociation.autocleanupdays.aspx"&gt;AutoCleanUpDays&lt;/a&gt; setting on the &lt;a href="http://msdn.microsoft.com/en-us/library/microsoft.sharepoint.workflow.spworkflowassociation.aspx"&gt;SPWorkflowAssociation&lt;/a&gt; to 9999 days, among others.  However, If anything happens to the workflow template, such as redeployment or item deletion then the history is lost as well. &lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;There are other issues with workflow history such as the possibility of users with sufficient permissions to alter history.  I have read in other blogs, but have not direct documentation, that Microsoft has not intended this to be a permanent record and is more like a log file that gets purged periodically.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-weight: bold; "&gt;WSS Audit Log&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-weight: bold; "&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;MOSS can make use of the WSS auditing features.  There is &lt;a href="http://msdn.microsoft.com/en-us/library/bb466223.aspx"&gt;plenty&lt;/a&gt; &lt;a href="http://office.microsoft.com/en-us/sharepointserver/HA100997261033.aspx?pid=CH101237681033"&gt;documentation&lt;/a&gt; on how to turn this on at the site, list or &lt;a href="http://msdn.microsoft.com/en-us/library/bb397403.aspx"&gt;item&lt;/a&gt; levels.  We can turn this on, and we can even write custom entries into the Audit Log.  However, a log entry is only associated with a site collection, list or item.  This means we can not specifically search for a workflow instance without extra lifting.  It is possible to store XML data in the &lt;a href="http://msdn.microsoft.com/en-us/library/microsoft.sharepoint.spauditentry.eventdata.aspx"&gt;EventData&lt;/a&gt; property of the &lt;a href="http://msdn.microsoft.com/en-us/library/microsoft.sharepoint.spauditentry.aspx"&gt;SPAuditEntry&lt;/a&gt; class, but this is not an efficient way to search if we just want a list of all workflows a user has initiated.  &lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-weight: bold; "&gt;Custom Solution&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-weight: bold; "&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;At this point I have come to the conclusion that a custom solution is in order.  I plan to create an audit database outside of MOSS that my workflows will write to and my workflow interface will read.  This is not the solution I would like to have, but this is what I believe will be the most efficient and straight-forward way of meeting my requirements.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;This post is lacking in lots of specifics and details.  I suggest you read through the following blog entries for the full story:&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;a href="http://blogs.msdn.com/mattlind/archive/2007/12/11/tracking-auditing-events-in-a-sharepoint-workflows.aspx"&gt;Mattias talks about SharePoint, BizTalk, .NET, TFS, etc. : Tracking/Auditing Events in a SharePoint Workflows&lt;/a&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;a href="http://www.sharepointblogs.com/llowevad/archive/2007/09/21/huge-workflow-issue-what-is-microsoft-thinking.aspx"&gt;Huge MOSS Workflow Issue... What is Microsoft Thinking!!!! - Dave ...&lt;/a&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;a href="http://www.sharepointblogs.com/llowevad/archive/2007/11/21/huge-moss-workflow-issue-what-is-microsoft-thinking-part-2.aspx"&gt;Huge MOSS Workflow Issue... What is Microsoft Thinking!!!! - Part ...&lt;/a&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="color: rgb(89, 83, 67); font-family: Arial; font-weight: bold; "&gt;  &lt;/span&gt;&lt;span class="Apple-style-span" style="color: rgb(89, 83, 67); font-family: Arial; "&gt;&lt;a href="http://www.thorprojects.com/blog/archive/2007/10/16/spworkflowassociation-autocleanupdays.aspx"&gt;SPWorkflowAssociation.AutoCleanupDays&lt;/a&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="color: rgb(89, 83, 67); font-family: Arial;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="color: rgb(89, 83, 67); font-family:Arial;"&gt;&lt;a href="http://www.thorprojects.com/blog/archive/2008/03/13/what-is-not-a-huge-moss-workflow-issue-take-2.aspx"&gt;What is not a Huge MOSS Workflow Issue (Take 2)&lt;/a&gt;&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3404080747670172952-8902640213958571125?l=coderjones.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://coderjones.blogspot.com/feeds/8902640213958571125/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3404080747670172952&amp;postID=8902640213958571125' title='4 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3404080747670172952/posts/default/8902640213958571125'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3404080747670172952/posts/default/8902640213958571125'/><link rel='alternate' type='text/html' href='http://coderjones.blogspot.com/2008/08/sharepoint-2007-lacks-workflow-auditing_18.html' title='SharePoint 2007 Lacks Workflow Auditing'/><author><name>Jeremiah</name><uri>http://www.blogger.com/profile/16982200628765138203</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>4</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3404080747670172952.post-6708905953376110086</id><published>2008-08-17T18:24:00.001-07:00</published><updated>2008-08-17T18:33:10.362-07:00</updated><title type='text'>Debugging MOSS Workflows</title><content type='html'>An initial issue I had when I first started building workflows was how to debug the workflows.  Normally, I would do an attach to process to w3wp and let the debugging process take over.  However, if your dll is in the GAC, then this may not work.  You'll need to do the following steps to get it to recognize your code&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;ol&gt;&lt;li&gt;Make sure you are generating a pdb file for your assembly&lt;br /&gt;&lt;/li&gt;&lt;li&gt;In Visual Studio click Tools -&gt; Options&lt;br /&gt;&lt;/li&gt;&lt;li&gt;Under the Debugging section and uncheck Enable Just My Code (Managed)&lt;br /&gt;&lt;/li&gt;&lt;li&gt;Attach to process and start debugging.&lt;/li&gt;&lt;/ol&gt;&lt;div&gt;This post is a very crude run down on how to do this.  I found this information, which is explained much better and with screenshots at:&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;a href="http://www.elumenotion.com/Blog/Lists/Posts/Post.aspx?ID=23"&gt;You Don't Need to Copy PDB Files to Debug in the GAC!&lt;/a&gt;&lt;br /&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3404080747670172952-6708905953376110086?l=coderjones.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://coderjones.blogspot.com/feeds/6708905953376110086/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3404080747670172952&amp;postID=6708905953376110086' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3404080747670172952/posts/default/6708905953376110086'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3404080747670172952/posts/default/6708905953376110086'/><link rel='alternate' type='text/html' href='http://coderjones.blogspot.com/2008/08/debugging-moss-workflows.html' title='Debugging MOSS Workflows'/><author><name>Jeremiah</name><uri>http://www.blogger.com/profile/16982200628765138203</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3404080747670172952.post-5420763228878500991</id><published>2008-08-17T18:21:00.001-07:00</published><updated>2008-08-17T18:22:33.557-07:00</updated><title type='text'>SharePoint 2007</title><content type='html'>I am currently programming MOSS (Microsoft Office SharePoint Server 2007) workflows.  It has turned out to be quite a learning process.  I imagine most of these posts will revolve around MOSS.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3404080747670172952-5420763228878500991?l=coderjones.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://coderjones.blogspot.com/feeds/5420763228878500991/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3404080747670172952&amp;postID=5420763228878500991' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3404080747670172952/posts/default/5420763228878500991'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3404080747670172952/posts/default/5420763228878500991'/><link rel='alternate' type='text/html' href='http://coderjones.blogspot.com/2008/08/sharepoint-2007.html' title='SharePoint 2007'/><author><name>Jeremiah</name><uri>http://www.blogger.com/profile/16982200628765138203</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3404080747670172952.post-1939991943112776769</id><published>2008-08-17T18:19:00.000-07:00</published><updated>2008-08-17T18:20:58.251-07:00</updated><title type='text'>First Entry</title><content type='html'>This blog is meant to be my diary of technical lessons that I come across, yet do not need often enough to remember.  I've tried blogging in the past with minimal success.  So, here I go again...&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3404080747670172952-1939991943112776769?l=coderjones.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://coderjones.blogspot.com/feeds/1939991943112776769/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3404080747670172952&amp;postID=1939991943112776769' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3404080747670172952/posts/default/1939991943112776769'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3404080747670172952/posts/default/1939991943112776769'/><link rel='alternate' type='text/html' href='http://coderjones.blogspot.com/2008/08/first-entry.html' title='First Entry'/><author><name>Jeremiah</name><uri>http://www.blogger.com/profile/16982200628765138203</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry></feed>
