<?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-2931150950398014304</id><updated>2011-12-07T07:49:12.162+10:00</updated><category term='alias'/><category term='recovery'/><category term='64-bit'/><category term='SQL Server 2008'/><category term='Print'/><category term='client'/><category term='Unable to load client print control'/><category term='SRS 2005'/><category term='885416'/><category term='934441'/><category term='x86'/><category term='Pending Action'/><category term='Event ID 26021'/><category term='MOM 2005'/><category term='restore'/><category term='Event ID 26006'/><category term='Agent was unable to send data to the mom server'/><category term='sql'/><category term='32-bit'/><category term='OnePoint'/><category term='Event ID 21293'/><category term='x64'/><category term='backup'/><category term='database'/><category term='Report Viewer'/><title type='text'>Matticus Blog</title><subtitle type='html'>All things of technical interest. Specializing in SQL Server (DBA), Programming (VB, ASP, dotnet), System Center (MOM), and just general tech related.
*** Human Knowledge Belongs To The World ***</subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://matticus-au.blogspot.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2931150950398014304/posts/default?max-results=100'/><link rel='alternate' type='text/html' href='http://matticus-au.blogspot.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><author><name>Matticus</name><uri>http://www.blogger.com/profile/07962199415215786355</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://1.bp.blogspot.com/_Zov7KEFJefs/SeQEHmjICqI/AAAAAAAAACE/FkFAYWAZCIU/S220/Snapshot+of+me+2.JPG'/></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>20</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>100</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-2931150950398014304.post-4168153465915390801</id><published>2011-11-18T16:34:00.002+10:00</published><updated>2011-11-18T16:40:08.368+10:00</updated><title type='text'>One step closer..... SQL 2012 RC0 is released</title><content type='html'>Well today we are one step closer to the release of SQL 2012 (aka Denali) with the release of RC0.... actually it was yesterday but I was burried in opperational support yesterday. Anyway this is very exciting to me as there are so many features that offer great new capabilities. &lt;br /&gt;&lt;br /&gt;Here's some links to what others are writing about this because why should I re-invent the information:&lt;br /&gt;&lt;br /&gt;http://blogs.technet.com/b/sqlman/archive/2011/11/18/sql-server-2012-rc0-available-now.aspx&lt;br /&gt;&lt;br /&gt;http://blogs.msdn.com/b/analysisservices/archive/2011/11/17/announcing-microsoft-sql-server-2012-release-candidate-0-rc0.aspx&lt;br /&gt;&lt;br /&gt;http://blogs.technet.com/b/dataplatforminsider/archive/2011/11/01/my-top-5-sql-server-2012-features-by-aaron-bertrand-guest-blogger.aspx&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;You can get the RC0 download at http://www.microsoft.com/download/en/details.aspx?id=28145&lt;br /&gt;&lt;br /&gt;Enjoy!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2931150950398014304-4168153465915390801?l=matticus-au.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://matticus-au.blogspot.com/feeds/4168153465915390801/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://matticus-au.blogspot.com/2011/11/one-step-closer-sql-2012-rc0-is.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2931150950398014304/posts/default/4168153465915390801'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2931150950398014304/posts/default/4168153465915390801'/><link rel='alternate' type='text/html' href='http://matticus-au.blogspot.com/2011/11/one-step-closer-sql-2012-rc0-is.html' title='One step closer..... SQL 2012 RC0 is released'/><author><name>Matticus</name><uri>http://www.blogger.com/profile/07962199415215786355</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://1.bp.blogspot.com/_Zov7KEFJefs/SeQEHmjICqI/AAAAAAAAACE/FkFAYWAZCIU/S220/Snapshot+of+me+2.JPG'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2931150950398014304.post-7206955840951039636</id><published>2011-08-01T14:48:00.005+10:00</published><updated>2011-08-01T15:23:12.445+10:00</updated><title type='text'>Recovering/Restoring the Resource system database in SQL Server 2005</title><content type='html'>Here is the scenario I have been working through in the LAB today:&lt;br /&gt;&lt;br /&gt;The Resource database (mssqlsystemresource) has become corrupt on a SQL 2005 SP4 instance. You are not sure why the database has become corrupt but when you try and start the SQL Server DB Engine the following is reported in the SQL Server ERRORLOG:&lt;br /&gt;&lt;br /&gt;2011-08-01 14:57:23.89 spid5s      Starting up database 'mssqlsystemresource'.&lt;br /&gt;2011-08-01 14:57:23.91 spid5s      Error: 5172, Severity: 16, State: 15.&lt;br /&gt;2011-08-01 14:57:23.91 spid5s      The header for file '\MSSQL.1\MSSQL\DATA\mssqlsystemresource.mdf' is not a valid database file header. The PageAudit property is incorrect.&lt;br /&gt;2011-08-01 14:57:23.95 spid5s      Error: 945, Severity: 14, State: 2.&lt;br /&gt;2011-08-01 14:57:23.95 spid5s      Database 'mssqlsystemresource' cannot be opened due to inaccessible files or insufficient memory or disk space.  See the SQL Server errorlog for details.&lt;br /&gt;2011-08-01 14:57:23.97 spid5s      SQL Trace was stopped due to server shutdown. Trace ID = '1'. This is an informational message only; no user action is required.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;We know that we cannot backup/restore the Resource database using SQL Server (as per &lt;a href="http://msdn.microsoft.com/en-us/library/ms190940%28v=sql.90%29.aspx"&gt;http://msdn.microsoft.com/en-us/library/ms190940%28v=sql.90%29.aspx&lt;/a&gt;) and you could restore the physical file from the server's file system backups. Unfortunately though the file is unable to be recovered from the server's file system backup for an unknown and unrelated external factor.&lt;br /&gt;&lt;br /&gt;Never fear there is a simple fix to this. Reinstall the Service Pack as that will recreate the Resource database.... Hurray&lt;br /&gt;&lt;br /&gt;Here's the steps and things to note when performing the Service Pack install though:&lt;br /&gt;1. Launch the Service Pack install&lt;br /&gt;2. Accept the terms and conditions and click Next&lt;br /&gt;3. When asked to select the Feature to update you will notice that the Database Services for the required instance will already report "Upgraded". Simply select the instance though as this will re-apply the service pack.&lt;br /&gt;4. Complete the service pack install&lt;br /&gt;&lt;br /&gt;Once the Service Pack has been installed you should be able to start the SQL Server Service for the required Instance.&lt;br /&gt;&lt;br /&gt;TIPS: You can use the following TSQL to grab information about your SQL Instance and Resource Database. These were taken from &lt;a href="http://msdn.microsoft.com/en-us/library/ms190940%28v=sql.90%29.aspx"&gt;http://msdn.microsoft.com/en-us/library/ms190940%28v=sql.90%29.aspx&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;SELECT @@VERSION&lt;br /&gt;SELECT SERVERPROPERTY('ResourceVersion');&lt;br /&gt;SELECT SERVERPROPERTY('ResourceLastUpdateDateTime');&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;SQL 2008 / SQL 2008 R2&lt;/span&gt; &lt;br /&gt;For the process to rebuild the Resource database in SQL 2008 follow the instructions at &lt;a href="http://msdn.microsoft.com/en-us/library/dd207003.aspx"&gt;http://msdn.microsoft.com/en-us/library/dd207003.aspx&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Happy Disaster Recovering everyone :)&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2931150950398014304-7206955840951039636?l=matticus-au.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://matticus-au.blogspot.com/feeds/7206955840951039636/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://matticus-au.blogspot.com/2011/08/recoveringrestoring-resource-system.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2931150950398014304/posts/default/7206955840951039636'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2931150950398014304/posts/default/7206955840951039636'/><link rel='alternate' type='text/html' href='http://matticus-au.blogspot.com/2011/08/recoveringrestoring-resource-system.html' title='Recovering/Restoring the Resource system database in SQL Server 2005'/><author><name>Matticus</name><uri>http://www.blogger.com/profile/07962199415215786355</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://1.bp.blogspot.com/_Zov7KEFJefs/SeQEHmjICqI/AAAAAAAAACE/FkFAYWAZCIU/S220/Snapshot+of+me+2.JPG'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2931150950398014304.post-8167548985930175395</id><published>2011-07-25T17:40:00.002+10:00</published><updated>2011-07-25T17:42:43.955+10:00</updated><title type='text'>Search Stored Procedure Code</title><content type='html'>Came across an interesting situation. The database that I was working with was missing from CVS, and I needed to be able to check what Stored Procedures were using Temporary tables. Thankfully I found a blog by one of my favorite authors which saved the day. &lt;br /&gt;&lt;br /&gt;SQL SERVER – 2005 – Search Stored Procedure Code – Search Stored Procedure Text&lt;br /&gt;&lt;a href="http://blog.sqlauthority.com/2007/09/03/sql-server-2005-search-stored-procedure-code-search-stored-procedure-text/"&gt;http://blog.sqlauthority.com/2007/09/03/sql-server-2005-search-stored-procedure-code-search-stored-procedure-text/&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2931150950398014304-8167548985930175395?l=matticus-au.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://matticus-au.blogspot.com/feeds/8167548985930175395/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://matticus-au.blogspot.com/2011/07/search-stored-procedure-code.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2931150950398014304/posts/default/8167548985930175395'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2931150950398014304/posts/default/8167548985930175395'/><link rel='alternate' type='text/html' href='http://matticus-au.blogspot.com/2011/07/search-stored-procedure-code.html' title='Search Stored Procedure Code'/><author><name>Matticus</name><uri>http://www.blogger.com/profile/07962199415215786355</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://1.bp.blogspot.com/_Zov7KEFJefs/SeQEHmjICqI/AAAAAAAAACE/FkFAYWAZCIU/S220/Snapshot+of+me+2.JPG'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2931150950398014304.post-1753144239890741127</id><published>2011-06-09T16:50:00.002+10:00</published><updated>2011-06-09T16:54:12.463+10:00</updated><title type='text'>TSQL to list all Permissions within a Database</title><content type='html'>Came across a situation today while trouble shooting a problem with replication where the subscription database has continually been getting modified by an unknown source and thus breaking replication. To assist with investigating this issue there was a need to look at all the permissions assigned to all users and roles within the database both at the Publisher and the Subscriber..... so here is the TSQL I wrote to help with this.&lt;br /&gt;&lt;br /&gt;select sys.database_permissions.class_desc&lt;br /&gt; , sys.database_permissions.type&lt;br /&gt; , sys.database_permissions.permission_name&lt;br /&gt; , sys.database_permissions.state&lt;br /&gt; , sys.database_permissions.state_desc&lt;br /&gt; , sys.database_principals.name as [grantee_principal_name]&lt;br /&gt; , ISNULL(sys.schemas.name, '') as [schema_name]&lt;br /&gt; , ISNULL(AllObjects.name, '') as [object_name]&lt;br /&gt; , (CASE &lt;br /&gt;  WHEN sys.database_permissions.class = 0 THEN 'GRANT ' + sys.database_permissions.permission_name + ' TO [' + sys.database_principals.name + '];'&lt;br /&gt;  ELSE 'GRANT ' + sys.database_permissions.permission_name + ' ON [' + sys.schemas.name + '].[' + AllObjects.name + '] TO [' + sys.database_principals.name + '];'&lt;br /&gt; END) as [Grant_Perms_Stmnt]&lt;br /&gt; , (CASE &lt;br /&gt;  WHEN sys.database_permissions.class = 0 THEN 'DENY ' + sys.database_permissions.permission_name + ' TO [' + sys.database_principals.name + '];'&lt;br /&gt;  ELSE 'DENY ' + sys.database_permissions.permission_name + ' ON [' + sys.schemas.name + '].[' + AllObjects.name + '] TO [' + sys.database_principals.name + '];'&lt;br /&gt; END) as [Deny_Perms_Stmnt]&lt;br /&gt; , (CASE &lt;br /&gt;  WHEN sys.database_permissions.class = 0 THEN 'REVOKE ' + sys.database_permissions.permission_name + ' FROM [' + sys.database_principals.name + '];'&lt;br /&gt;  ELSE 'REVOKE ' + sys.database_permissions.permission_name + ' ON [' + sys.schemas.name + '].[' + AllObjects.name + '] FROM [' + sys.database_principals.name + '];'&lt;br /&gt; END) as [Revoke_Perms_Stmnt]&lt;br /&gt;FROM sys.database_permissions&lt;br /&gt;INNER JOIN sys.database_principals ON sys.database_principals.principal_id = sys.database_permissions.grantee_principal_id&lt;br /&gt; --AND sys.database_principals.name = 'public' --uncomment this line to restrict the output to a single principal&lt;br /&gt;LEFT JOIN (&lt;br /&gt;  SELECT name, object_id, principal_id, schema_id, parent_object_id, type, type_desc, create_date, modify_date, is_ms_shipped, is_published, is_schema_published&lt;br /&gt;  FROM sys.objects&lt;br /&gt;  UNION&lt;br /&gt;  SELECT name, object_id, principal_id, schema_id, parent_object_id, type, type_desc, create_date, modify_date, is_ms_shipped, is_published, is_schema_published&lt;br /&gt;  FROM sys.system_objects&lt;br /&gt; ) AllObjects ON AllObjects.object_id = sys.database_permissions.major_id&lt;br /&gt;LEFT JOIN sys.schemas ON sys.schemas.schema_id = AllObjects.schema_id&lt;br /&gt;ORDER BY sys.database_principals.name&lt;br /&gt; , sys.database_permissions.class&lt;br /&gt; , sys.schemas.name&lt;br /&gt; , AllObjects.name&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2931150950398014304-1753144239890741127?l=matticus-au.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://matticus-au.blogspot.com/feeds/1753144239890741127/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://matticus-au.blogspot.com/2011/06/tsql-to-list-all-permissions-within.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2931150950398014304/posts/default/1753144239890741127'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2931150950398014304/posts/default/1753144239890741127'/><link rel='alternate' type='text/html' href='http://matticus-au.blogspot.com/2011/06/tsql-to-list-all-permissions-within.html' title='TSQL to list all Permissions within a Database'/><author><name>Matticus</name><uri>http://www.blogger.com/profile/07962199415215786355</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://1.bp.blogspot.com/_Zov7KEFJefs/SeQEHmjICqI/AAAAAAAAACE/FkFAYWAZCIU/S220/Snapshot+of+me+2.JPG'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2931150950398014304.post-6985847596386083242</id><published>2010-11-09T12:06:00.000+10:00</published><updated>2010-11-09T12:50:10.224+10:00</updated><title type='text'>The trend of Human Language verse Storage Size</title><content type='html'>I watched The Social Network movie the other night and after being reminded of the pre-Facebook day's of LiveJournal and other blog sites it got me thinking about the changes in the digital world. I am sure there have been plenty of other people write about this topic but I had quite a simple thought, the human language continues to become a "hybrid" language, yet the amount of storage we require is growing at an unprecedented amount.&lt;br /&gt;&lt;br /&gt;If you think about the "paper" days, the time before every household had a family computer, and more importantly every kid had a laptop or smart phone. Most written communication between friends was done through letters. Be it between too long time friends sending each other letters to update each other on how the family is or a couple of students writing letters to each other to exchange between classes. It was pen ink on paper and usually uncommon for the letter to be read by someone it was not intended for, at least without the recipient actually handing it to the additional person(s). Of cause occasionally a letter would be read by more than the intended audience, typically in a school environment, either by accident or theft.&lt;br /&gt;&lt;br /&gt;Then enter the age of blogs, all of a sudden people started being able to express their thoughts online (much like I am doing here), and while they generally only gave their friends the URL so they knew the intended audience, it was the start of the public information era. Blogs, at least in the early days, still represented much of the letter writing styles with an intended addressee/recipient.&lt;br /&gt;&lt;br /&gt;Then the perfect timing of Facebook, in an age when every household and school has a computer with most having &gt;2, and every kid having some sort of smart phone. The blog was a thing of the past, except at least for technical or news articles, and enter the age of the &lt;B&gt;&lt;I&gt;status updates&lt;/I&gt;&lt;/B&gt;. Here we saw people replace large rants with a few sentences and be able to express that opinion to a large group of people without much thought of the impact (other than wanting to be noticed).&lt;br /&gt;&lt;br /&gt;And in a time when people quickly became use to the concept of status updates, people just as quickly became use to the concept of the &lt;B&gt;&lt;I&gt;Tweet&lt;/I&gt;&lt;/B&gt;. Now this is where the point to my thoughts were. With the 140 character limit on a tweet people quickly started adapting from the already established online chat languages to develop a whole new form of language using even less characters to say more (e.g. m8 = mate).&lt;br /&gt;&lt;br /&gt;At the same time as this was happening a massive change in the Computer Hardware world was occurring, Computers were getting much faster and the cost of Storage was dropping dramatically. Making it much more possible for the common home computer to have &gt;300Gb in storage (and these days ~500Gb - 1Tb).&lt;br /&gt;&lt;br /&gt;So in an age where online communication has become it's own language, with shorter and shorter terms replacing English words all the time, and in an I.T. industry with very cheep storage costs. There is a definite trend that more and more Storage is being requested and historical data being kept for much longer, yet the size of text on individual records being stored is becoming less and less.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2931150950398014304-6985847596386083242?l=matticus-au.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://matticus-au.blogspot.com/feeds/6985847596386083242/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://matticus-au.blogspot.com/2010/11/trend-of-human-language-verse-storage.html#comment-form' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2931150950398014304/posts/default/6985847596386083242'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2931150950398014304/posts/default/6985847596386083242'/><link rel='alternate' type='text/html' href='http://matticus-au.blogspot.com/2010/11/trend-of-human-language-verse-storage.html' title='The trend of Human Language verse Storage Size'/><author><name>Matticus</name><uri>http://www.blogger.com/profile/07962199415215786355</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://1.bp.blogspot.com/_Zov7KEFJefs/SeQEHmjICqI/AAAAAAAAACE/FkFAYWAZCIU/S220/Snapshot+of+me+2.JPG'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2931150950398014304.post-1150078201725395321</id><published>2010-11-08T10:34:00.003+10:00</published><updated>2010-11-08T12:13:03.495+10:00</updated><title type='text'>Infrastructure Saturday - Wrap Up</title><content type='html'>Firstly a huge thank-you to everyone that attended the session on Saturday, and also a thank-you to BenF for assisting with the presentation (and letting me out of the cage for the day).&lt;br /&gt;&lt;br /&gt;I am working with the organizers of Infrastructure Saturday to make the slides available for download, so stay tuned for more information on that front.&lt;br /&gt;&lt;br /&gt;Some interesting questions were raised during the session and I thought I would provide some additional information here for those that were interested.&lt;br /&gt;&lt;br /&gt;During the session some questions/discussions were raised about Virtalisation. I won't go into this in this post because I am actually expecting some interesting news on that front to come out of the SQLPASS which is being held this week in Seattle which although I am not attending I will be following closely.&lt;br /&gt;&lt;br /&gt;At the end of the session I was approached with the question "We currently have multiple SQL 2005/2008 servers but our monitoring is only of the server layer, can you suggest/recommend how we could monitor the SQL layer".&lt;br /&gt;&lt;br /&gt;In my experience a combination of monitoring solutions can offer a much more holistic view of your environment. This also helps when monitoring multiple different Operating Systems (e.g. Windows and Linux). Of cause this is based on my experience with monitoring 220+ servers.&lt;br /&gt;&lt;br /&gt;The reason a combination of monitoring solutions can offer more depth is because some of monitoring platforms offer better network monitoring than others, and other monitoring platforms offer better Application / Software monitoring. &lt;br /&gt;&lt;br /&gt;The challenge with monitoring a SQL Server is that you not only need to monitor the Infrastructure (e.g. ICMP, TCP Port tests, etc) but you need to be able to check Event Logs and that Services are running. Most monitoring systems can provide those tests, however you also need to monitor the actual SQL Instance layer and some of the best ways of doing that is through some form of script which can run a TSQL statement or use SMO to check aspects of the environment and return a status code to the Monitoring environment.&lt;br /&gt;&lt;br /&gt;Some of the key SQL layer aspects that a good monitoring solution should be able to check are:&lt;br /&gt;- SQL Server Memory&lt;br /&gt;- SQL Server Error Log&lt;br /&gt;- SQL Server Settings&lt;br /&gt;- Database File Free Space&lt;br /&gt;- Database Status&lt;br /&gt;- Database Settings (for enforcing environment settings)&lt;br /&gt;- Blocking Locks&lt;br /&gt;&lt;br /&gt;My experience has been largely about using Microsoft Operations Manager (aka MOM) and custom VBScripts to ensure that our business rules are enforced. This has also allowed a number of automated actions to be implemented while allowing for the dynamics of the farm.&lt;br /&gt;&lt;br /&gt;Here are some links to some monitoring platforms to look at:&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;&lt;span style="font-style:italic;"&gt;Microsoft System Center Operations Manager (aka SCOM, the latest release of MOM)&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;a href="http://www.microsoft.com/systemcenter/en/us/operations-manager.aspx"&gt;http://www.microsoft.com/systemcenter/en/us/operations-manager.aspx&lt;/a&gt;&lt;br /&gt;&lt;span style="font-style:italic;"&gt;If I had to recommend an enterprise software it would be SCOM, only because that is where my experience has been with. Of cause there are other offerings from EMC and other vendors which might be more suitable to your environment.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;If your looking for some free monitoring solutions purhaps the following might be of interest:&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;&lt;span style="font-style:italic;"&gt;Zenoss&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;a href="http://www.zenoss.com/"&gt;http://www.zenoss.com/&lt;/a&gt; or &lt;a href="http://community.zenoss.org"&gt;http://community.zenoss.org&lt;/a&gt;&lt;br /&gt;&lt;span style="font-style:italic;"&gt;I have had some experience with using this and it can offer a good monitoring tool for network monitoring (ICMP) and auto discovery. It does take some amount of tweaking to get to work well with Windows (as with any Unix based monitoring tool) however it can provide that first level monitoring quite well and there are a number of ZenPacks available to provide SQL Server monitoring. However I do find it quite challenging to come up with a in-depth SQL monitoring from it, but this is purely because I am use to a Windows Scripting environment.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;&lt;span style="font-style:italic;"&gt;SqlMonitoring Tool&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;a href="http://sqlmonitoring.codeplex.com/"&gt;http://sqlmonitoring.codeplex.com/&lt;/a&gt;&lt;br /&gt;I previously blogged about this (and some other open-source tools). This is still my fav free open-source offering, and a great option if you do not have but budget for SCOM and if you are willing to write your own client front-end, or if you need to plug into an existing monitoring front-end. &lt;br /&gt;&lt;br /&gt;I hope this information helps you to find a way to monitor your SQL database environment. Feel free to post comments should you need more info.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Thanks again to everyone that attended the session.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2931150950398014304-1150078201725395321?l=matticus-au.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://matticus-au.blogspot.com/feeds/1150078201725395321/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://matticus-au.blogspot.com/2010/11/infrastructure-saturday-wrap-up.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2931150950398014304/posts/default/1150078201725395321'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2931150950398014304/posts/default/1150078201725395321'/><link rel='alternate' type='text/html' href='http://matticus-au.blogspot.com/2010/11/infrastructure-saturday-wrap-up.html' title='Infrastructure Saturday - Wrap Up'/><author><name>Matticus</name><uri>http://www.blogger.com/profile/07962199415215786355</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://1.bp.blogspot.com/_Zov7KEFJefs/SeQEHmjICqI/AAAAAAAAACE/FkFAYWAZCIU/S220/Snapshot+of+me+2.JPG'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2931150950398014304.post-6127918998805086974</id><published>2010-11-06T09:03:00.002+10:00</published><updated>2010-11-06T09:06:58.463+10:00</updated><title type='text'>Infrastructure Saturday</title><content type='html'>Today is Infrastructure Saturday at Microsoft Brisbane, I'll be there presenting from 12:35pm – 1:20pm in Theater 2......&lt;br /&gt;&lt;br /&gt;More info at &lt;a href="http://infrastructuresaturday.org/"&gt;http://infrastructuresaturday.org/&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2931150950398014304-6127918998805086974?l=matticus-au.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://matticus-au.blogspot.com/feeds/6127918998805086974/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://matticus-au.blogspot.com/2010/11/infrastructure-saturday.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2931150950398014304/posts/default/6127918998805086974'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2931150950398014304/posts/default/6127918998805086974'/><link rel='alternate' type='text/html' href='http://matticus-au.blogspot.com/2010/11/infrastructure-saturday.html' title='Infrastructure Saturday'/><author><name>Matticus</name><uri>http://www.blogger.com/profile/07962199415215786355</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://1.bp.blogspot.com/_Zov7KEFJefs/SeQEHmjICqI/AAAAAAAAACE/FkFAYWAZCIU/S220/Snapshot+of+me+2.JPG'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2931150950398014304.post-5484667991672248378</id><published>2010-08-31T18:27:00.002+10:00</published><updated>2010-08-31T18:32:44.336+10:00</updated><title type='text'>TSQL to report DB Mirroring status and configuration</title><content type='html'>Have you been faced with the need to report on, or verify the configuration of your SQL Server Database Mirroring. Well maybe you have or maybe you haven't, if you only have a small number of databases with DB Mirroring then this may not be very useful, but for me with 50-100 databases with DB Mirroring I needed a way to quickly check what the status and safety level of the mirrored databases were. Not to mention the fact that I needed to easily identify the databases that were no mirrored to report back to the application owners so they knew what was not in a DR configuration.&lt;br /&gt;&lt;br /&gt;Hopeful this query can save you some time or at least give you a starting point if facing a similar situation:&lt;br /&gt;&lt;br /&gt;SELECT a.name&lt;br /&gt; , ISNULL(b.mirroring_role_desc, 'NOT MIRRORED') as mirroring_role_desc&lt;br /&gt; , ISNULL(b.mirroring_state_desc, '') as mirroring_state_desc&lt;br /&gt; , ISNULL(mirroring_safety_level_desc, '') as mirroring_safety_level_desc&lt;br /&gt;FROM sys.databases a&lt;br /&gt;INNER JOIN sys.database_mirroring b on b.database_id = a.database_id&lt;br /&gt;WHERE a.name NOT IN ('master', 'msdb', 'model', 'tempdb', 'distribution')&lt;br /&gt;ORDER BY a.name&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2931150950398014304-5484667991672248378?l=matticus-au.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://matticus-au.blogspot.com/feeds/5484667991672248378/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://matticus-au.blogspot.com/2010/08/tsql-to-report-db-mirroring-status-and.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2931150950398014304/posts/default/5484667991672248378'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2931150950398014304/posts/default/5484667991672248378'/><link rel='alternate' type='text/html' href='http://matticus-au.blogspot.com/2010/08/tsql-to-report-db-mirroring-status-and.html' title='TSQL to report DB Mirroring status and configuration'/><author><name>Matticus</name><uri>http://www.blogger.com/profile/07962199415215786355</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://1.bp.blogspot.com/_Zov7KEFJefs/SeQEHmjICqI/AAAAAAAAACE/FkFAYWAZCIU/S220/Snapshot+of+me+2.JPG'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2931150950398014304.post-7197175568243329408</id><published>2010-08-02T10:36:00.009+10:00</published><updated>2010-08-02T16:27:16.285+10:00</updated><title type='text'>Export the SSRS Report Server's folder / item structure using TSQL</title><content type='html'>If your faced with the task of migrating your Reports from SSRS 2000/2005 to SSRS 2008 as I am then you're probably looking for a way to export your folder structure to help with the planning. You might be even using the migration as a way to clean up the security and how some of the items are stored (e.g. Data Sources). All of this is not easy without a way to export the folder/item structure from your existing environment. The following TSQL should help you gain an overview of your structure and allow you to start planning the migration.&lt;br /&gt;&lt;br /&gt;Use ReportServer;&lt;br /&gt;SELECT dbo.Catalog.Path&lt;br /&gt;, dbo.Catalog.Name&lt;br /&gt;, dbo.Catalog.Description &lt;br /&gt;, dbo.Catalog.Type&lt;br /&gt;, (CASE &lt;br /&gt; WHEN dbo.Catalog.Type = 1 THEN 'Folder'&lt;br /&gt; WHEN dbo.Catalog.Type = 2 THEN 'Report'&lt;br /&gt; WHEN dbo.Catalog.Type = 3 THEN 'Image'&lt;br /&gt; WHEN dbo.Catalog.Type = 4 THEN 'Linked Report'&lt;br /&gt; WHEN dbo.Catalog.Type = 5 THEN 'Data Source'&lt;br /&gt; WHEN dbo.Catalog.Type = 6 THEN 'Model'&lt;br /&gt; ELSE 'Type_'+CONVERT(char(2), dbo.Catalog.Type)&lt;br /&gt;END) as Type_Name&lt;br /&gt;, dbo.Catalog.CreationDate&lt;br /&gt;, dbo.Catalog.ModifiedDate&lt;br /&gt;, ISNULL(dbo.Catalog.Hidden, 0) as Hidden&lt;br /&gt;, Parent.Name as Parent_Name&lt;br /&gt;FROM dbo.Catalog&lt;br /&gt;INNER JOIN dbo.Catalog Parent ON Parent.ItemID = dbo.Catalog.ParentID&lt;br /&gt;ORDER BY dbo.Catalog.Path, Parent.Name&lt;br /&gt;&lt;br /&gt;In addition to this the following TSQL will provide you with a list of the assigned users and roles to each folder to help with preparing permissions during migration:&lt;br /&gt;&lt;br /&gt;SELECT dbo.Catalog.Path&lt;br /&gt; , dbo.Users.UserName&lt;br /&gt; , dbo.Roles.RoleName&lt;br /&gt;FROM dbo.Catalog&lt;br /&gt;INNER JOIN dbo.Catalog Parent ON Parent.ItemID = dbo.Catalog.ParentID&lt;br /&gt;INNER JOIN dbo.PolicyUserRole ON dbo.PolicyUserRole.PolicyID = dbo.Catalog.PolicyID&lt;br /&gt;INNER JOIN dbo.Users ON dbo.Users.UserID = dbo.PolicyUserRole.UserID&lt;br /&gt;INNER JOIN dbo.Roles ON dbo.Roles.RoleID = dbo.PolicyUserRole.RoleID&lt;br /&gt;WHERE dbo.Catalog.Type IN (&lt;br /&gt; 1 -- Folder &lt;br /&gt; )&lt;br /&gt;ORDER BY dbo.Catalog.Path, dbo.Users.UserName&lt;br /&gt;&lt;br /&gt;When it comes time for the actual migration you might want to look at using a tool such as &lt;a href="http://www.sqldbatips.com/showarticle.asp?ID=62"&gt;RS Scripter&lt;/a&gt;..... I know I will be using that tool for most of my migration&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2931150950398014304-7197175568243329408?l=matticus-au.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://matticus-au.blogspot.com/feeds/7197175568243329408/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://matticus-au.blogspot.com/2010/08/if-your-faced-with-task-of-migrating.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2931150950398014304/posts/default/7197175568243329408'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2931150950398014304/posts/default/7197175568243329408'/><link rel='alternate' type='text/html' href='http://matticus-au.blogspot.com/2010/08/if-your-faced-with-task-of-migrating.html' title='Export the SSRS Report Server&apos;s folder / item structure using TSQL'/><author><name>Matticus</name><uri>http://www.blogger.com/profile/07962199415215786355</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://1.bp.blogspot.com/_Zov7KEFJefs/SeQEHmjICqI/AAAAAAAAACE/FkFAYWAZCIU/S220/Snapshot+of+me+2.JPG'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2931150950398014304.post-6205717013483418426</id><published>2010-07-23T12:33:00.003+10:00</published><updated>2010-07-23T12:55:42.851+10:00</updated><title type='text'>Useful Open Source SQL Tools</title><content type='html'>The following are some useful Open Source tools available to assist with managing and administering a MS SQL Server:&lt;br /&gt;&lt;br /&gt;SqlMonitoring Tool&lt;br /&gt;&lt;a href="http://sqlmonitoring.codeplex.com/"&gt;http://sqlmonitoring.codeplex.com/&lt;/a&gt;&lt;br /&gt;Also mentioned in &lt;a href="http://www.codecapers.com/post/free-scom-alternative-for-sql.aspx"&gt;http://www.codecapers.com/post/free-scom-alternative-for-sql.aspx&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Open DBDiff&lt;br /&gt;&lt;a href="http://opendbiff.codeplex.com/"&gt;http://opendbiff.codeplex.com/&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Performance Analysis of Logs (PAL) Tool&lt;br /&gt;&lt;a href="http://pal.codeplex.com/"&gt;http://pal.codeplex.com/&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Hopefully others will find them as useful as I have with simplifying my day-to-day DBA tasks.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2931150950398014304-6205717013483418426?l=matticus-au.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://matticus-au.blogspot.com/feeds/6205717013483418426/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://matticus-au.blogspot.com/2010/07/useful-open-source-sql-tools.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2931150950398014304/posts/default/6205717013483418426'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2931150950398014304/posts/default/6205717013483418426'/><link rel='alternate' type='text/html' href='http://matticus-au.blogspot.com/2010/07/useful-open-source-sql-tools.html' title='Useful Open Source SQL Tools'/><author><name>Matticus</name><uri>http://www.blogger.com/profile/07962199415215786355</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://1.bp.blogspot.com/_Zov7KEFJefs/SeQEHmjICqI/AAAAAAAAACE/FkFAYWAZCIU/S220/Snapshot+of+me+2.JPG'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2931150950398014304.post-1239765161591262081</id><published>2010-03-30T15:14:00.002+10:00</published><updated>2010-03-30T15:30:41.613+10:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='SQL Server 2008'/><category scheme='http://www.blogger.com/atom/ns#' term='x64'/><category scheme='http://www.blogger.com/atom/ns#' term='x86'/><category scheme='http://www.blogger.com/atom/ns#' term='64-bit'/><category scheme='http://www.blogger.com/atom/ns#' term='alias'/><category scheme='http://www.blogger.com/atom/ns#' term='32-bit'/><category scheme='http://www.blogger.com/atom/ns#' term='client'/><title type='text'>Client Alias's.... don't forget your 32 bit apps</title><content type='html'>I have been caught out by this in the past myself and a colleague wasted a great deal of time trying all sorts of things only to find out there was a simple fix to all his connectivity woes.&lt;br /&gt;&lt;br /&gt;Since the introduction of the 64-bit operating system we have seen applications become split into 32-bit (x86) and 64-bit (x64) branches. While the introduction of 64-bit was a god send for the application developer and server administrators who had been looking for ways to push more memory to applications to allow them to handle the huge tasks that today's business (and sometimes even the home user) wants to throw at them. The unfortunate down side to this was that 32-bit applications were cast out like the lepers of the Bible days and given their own registry space (ahhh you say, now he gets to the point of this, well all I can say is that it was worth it!!!)&lt;br /&gt;&lt;br /&gt;If you don't know 32-bit and 64-bit applications have different registry spaces, because 32-bit applications cannot read anything within 64-bit memory. If you were to look at the registry on a 64-bit operating system it may not look different to the naked eye but if you look closely you will find that there is a new branch &lt;span style="font-style: italic;"&gt;HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node&lt;/span&gt; and it is here were all the 32-bit applications store their registry settings.&lt;br /&gt;&lt;br /&gt;So why is this important to anyone that has anything to do with database connections, because as you would be aware SQL Server allows you to configure Client Alias's within it's Configuration (of the connectivity tools) and it is through the use of these Alias's that we can map a Server Name (or even a made up friendly name) to a FQDN server address and non-standard TCP port. The problem is that on a 64-bit operating system there are both 32-bit and 64-bit Client Alias and depending on what the application you are connecting from is will depend on which type of alias it tries to read.&lt;br /&gt;&lt;br /&gt;The times that I have usually come across this as a problem is when an installation package is asking for the SQL Server details of where it will create a database and the user is unaware if they are using a 32-bit or 64-bit application and create the Client Alias in the wrong branch.&lt;br /&gt;&lt;br /&gt;So my rule is:&lt;br /&gt;&lt;span style="color: rgb(0, 153, 0); font-weight: bold;"&gt;When you setup a Client Alias always set it up in both the 32-bit and 64-bit branches of the SQL Server Configuration Manager.&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2931150950398014304-1239765161591262081?l=matticus-au.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://matticus-au.blogspot.com/feeds/1239765161591262081/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://matticus-au.blogspot.com/2010/03/client-aliass-dont-forget-your-32-bit.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2931150950398014304/posts/default/1239765161591262081'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2931150950398014304/posts/default/1239765161591262081'/><link rel='alternate' type='text/html' href='http://matticus-au.blogspot.com/2010/03/client-aliass-dont-forget-your-32-bit.html' title='Client Alias&apos;s.... don&apos;t forget your 32 bit apps'/><author><name>Matticus</name><uri>http://www.blogger.com/profile/07962199415215786355</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://1.bp.blogspot.com/_Zov7KEFJefs/SeQEHmjICqI/AAAAAAAAACE/FkFAYWAZCIU/S220/Snapshot+of+me+2.JPG'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2931150950398014304.post-38558561523639926</id><published>2010-02-05T14:55:00.003+10:00</published><updated>2010-02-05T15:00:57.061+10:00</updated><title type='text'>SQL Failure After Upgrade from VMWare 3.5 to VSphere 4 Fix</title><content type='html'>Came across this issue today and found this blog so useful I thought I would throw a ping back to it and help others&lt;br /&gt;&lt;br /&gt;SQL Failure After Upgrade from VMWare 3.5 to VSphere 4 Fix&lt;br /&gt;&lt;a href="http://retr0rob.blogspot.com/2009/09/sql-failure-after-upgrade-from-vmware.html"&gt;http://retr0rob.blogspot.com/2009/09/sql-failure-after-upgrade-from-vmware.html&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;In short the issue is that after an upgrade of VMWare, SQL may not start and the event log will report that a timeout occurred when trying to connect but the failure happens immediately. If you try and start SQL from the command line (e.g. in single user mode) then you will receive an application pop-up error "This application has failed to start because MSVCP71.dll was not found. Re-installing the application may fix this problem". To fix this issue download the missing MSVCP71.dll (get it &lt;a href="http://www.dll-files.com/dllindex/dll-files.shtml?msvcp71"&gt;here&lt;/a&gt;) and copy it to %windir%\system32, then reboot.&lt;br /&gt;&lt;br /&gt;NOTE: No warrant is held that this is the solution in all cases but it certainly worked for me, and care should be taken when dealing with system files.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2931150950398014304-38558561523639926?l=matticus-au.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://matticus-au.blogspot.com/feeds/38558561523639926/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://matticus-au.blogspot.com/2010/02/sql-failure-after-upgrade-from-vmware.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2931150950398014304/posts/default/38558561523639926'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2931150950398014304/posts/default/38558561523639926'/><link rel='alternate' type='text/html' href='http://matticus-au.blogspot.com/2010/02/sql-failure-after-upgrade-from-vmware.html' title='SQL Failure After Upgrade from VMWare 3.5 to VSphere 4 Fix'/><author><name>Matticus</name><uri>http://www.blogger.com/profile/07962199415215786355</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://1.bp.blogspot.com/_Zov7KEFJefs/SeQEHmjICqI/AAAAAAAAACE/FkFAYWAZCIU/S220/Snapshot+of+me+2.JPG'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2931150950398014304.post-4662335257244072127</id><published>2009-08-21T12:18:00.004+10:00</published><updated>2009-08-21T17:01:38.328+10:00</updated><title type='text'>Windows 2008 and xp_logininfo</title><content type='html'>I've come across an issue which appears to be caused by changes in the security of Windows 2008.&lt;br /&gt;&lt;br /&gt;Originally I believed this was related to SQL 2008 however I have replicated the same behavior on SQL 2008 and SQL 2005 when running on a Windows 2008 OS.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Scenario&lt;/span&gt;&lt;br /&gt;In an environment where you have user accounts existing in a parent domain (e.g. DOMAIN01) and Computer and Service accounts existing in a Child Domain (e.g. DOMAIN02) you may find that SQL Server running on a computer in the Child Domain will report the following error when you perform specific operations from a SQL Server running either SQL Server 2005 or SQL Server 2008 on a Windows 2008 Operating System.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;Msg 15404, Level 16, State 19, Procedure xp_logininfo, Line 62&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;Could not obtain information about Windows NT group/user 'DOMAIN01\matticus', error code 0x5.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Some operations which may cause this are:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Attempting to restore a database using a 3rd party application such as Red-Gate SQL Backup&lt;/li&gt;&lt;li&gt;Creating a schedule for the re-population of a Full Text Catalogue or creating an SQL agent job with the owner set to a domain account within the Parent Domain (e.g. DOMAIN01)&lt;/li&gt;&lt;li&gt;Using xp_logininfo from within an application / script to check the group membership of a domain user account (e.g. exec xp_logininfo 'DOMAIN01\matticus')&lt;br /&gt;&lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;This error occurs due to changes in the security of Windows 2008 and specifically changes to the Microsoft Windows API calls used to retrieve information about the Windows domains and the Windows user accounts.&lt;br /&gt;&lt;br /&gt;The issue will only occur when SQL Server is attempting to retrieve information regarding Windows Domains and User accounts from the Parent Domain (e.g. DOMAIN01). Queries to AD objects within the same domain (e.g. DOMAIN02) will be successful.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Steps to Reproduce the Issue&lt;/span&gt;&lt;br /&gt;The following steps are provided here to reproduce the error within an environment to meets the configuration as stated in the scenario above.&lt;br /&gt;&lt;ol&gt;&lt;li&gt;Connect to the SQL Server running in DOMAIN02 using SSMS and an account with SYSADMIN rights to the SQL Instance&lt;/li&gt;&lt;li&gt;Open a New Query window&lt;/li&gt;&lt;li&gt;Run the following TSQL to reproduce the error (replacing the account name with an account within the parent domain)&lt;br /&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;exec xp_logininfo 'DOMAIN01\matticus'&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;/li&gt;&lt;li&gt;You should receive the following error:&lt;br /&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;Msg 15404, Level 16, State 19, Procedure xp_logininfo, Line 62&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt; Could not obtain information about Windows NT group/user 'DOMAIN01\matticus', error code 0x5.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;/li&gt;&lt;li&gt;Now run the following TSQL to demonstrate that querying within the same domain is not affected (replacing the account name with the service account within the child domain)&lt;br /&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;exec xp_logininfo 'DOMAIN02\sqlserviceacc01'&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;This should complete successfully and return a result set. The same would occur for any other accounts within the Child Domain.&lt;span style="font-style: italic;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/li&gt;&lt;/ol&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Solution 1&lt;/span&gt;&lt;br /&gt;At this time the only solution I have found to this problem is to add the service account which the SQL Server service is running on to the "BUILTIN\Windows Authorization Access Group" group within the parent domain. This membership could be inherited through another domain group being added to that BuiltIn group if you have a large number of servers to manage in your organisation.&lt;br /&gt;&lt;br /&gt;NOTE: In the past I had found a similar case where membership of the "BUILTIN\Windows Authorization Access Group" group in the parent domain was required. However that was for an issue with the SCOM2007 Service Broker and also SSRS Email Delivery where I believe they had their own methods of querying AD group memberships or had started to implement the changes which MS were planning for Windows 2008 as all servers in that case were running on Windows 2003 OS. These were though due to the accounts for those services being different to the main service account for the related application. That has been the only other case where I have seen this behaviour. I found &lt;a href="http://kbalertz.com/842423/AuthzInitializeContextFromSid-function-during-delivery-subscription.aspx"&gt;this article&lt;/a&gt; which clearly outlines the SSRS Email Delivery issue.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Reference Material&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;How to troubleshoot a SQL Server 8198 error&lt;br /&gt;&lt;a href="http://support.microsoft.com/kb/834124"&gt;http://support.microsoft.com/kb/834124&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;xp_logininfo (Transact-SQL)&lt;br /&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/ms190369.aspx"&gt;http://msdn.microsoft.com/en-us/library/ms190369.aspx&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Some applications and APIs require access to authorization information on account objects&lt;br /&gt;&lt;a href="http://support.microsoft.com/kb/331951"&gt;http://support.microsoft.com/kb/331951&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;xp_logininfo fails for agent account&lt;br /&gt;&lt;a href="http://www.sqlservercentral.com/Forums/Topic612567-149-1.aspx"&gt;http://www.sqlservercentral.com/Forums/Topic612567-149-1.aspx&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2931150950398014304-4662335257244072127?l=matticus-au.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://matticus-au.blogspot.com/feeds/4662335257244072127/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://matticus-au.blogspot.com/2009/08/windows-2008-and-xplogininfo.html#comment-form' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2931150950398014304/posts/default/4662335257244072127'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2931150950398014304/posts/default/4662335257244072127'/><link rel='alternate' type='text/html' href='http://matticus-au.blogspot.com/2009/08/windows-2008-and-xplogininfo.html' title='Windows 2008 and xp_logininfo'/><author><name>Matticus</name><uri>http://www.blogger.com/profile/07962199415215786355</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://1.bp.blogspot.com/_Zov7KEFJefs/SeQEHmjICqI/AAAAAAAAACE/FkFAYWAZCIU/S220/Snapshot+of+me+2.JPG'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2931150950398014304.post-3588591914143393637</id><published>2009-08-19T17:17:00.003+10:00</published><updated>2009-08-19T17:20:01.700+10:00</updated><title type='text'>Just a few SQL 2008 links</title><content type='html'>Just some links relating to SQL 2008 which I have found from fellow bloggers which have some really good information:&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Management Studio Improvements in SQL Server 2008&lt;/span&gt;&lt;br /&gt;&lt;a href="http://www.simple-talk.com/sql/learn-sql-server/management-studio-improvements-in-sql-server-2008/"&gt;http://www.simple-talk.com/sql/learn-sql-server/management-studio-improvements-in-sql-server-2008/&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Activity Monitor – SSMS 2008&lt;/span&gt;&lt;br /&gt;&lt;a href="http://sql-articles.com/blogs/activity-monitor-ssms-2008/"&gt;http://sql-articles.com/blogs/activity-monitor-ssms-2008/&lt;/a&gt;&lt;br /&gt;This is a really good break down of the activity monitor including permissions and the different tabs available.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2931150950398014304-3588591914143393637?l=matticus-au.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://matticus-au.blogspot.com/feeds/3588591914143393637/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://matticus-au.blogspot.com/2009/08/some-good-sql-2008-links.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2931150950398014304/posts/default/3588591914143393637'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2931150950398014304/posts/default/3588591914143393637'/><link rel='alternate' type='text/html' href='http://matticus-au.blogspot.com/2009/08/some-good-sql-2008-links.html' title='Just a few SQL 2008 links'/><author><name>Matticus</name><uri>http://www.blogger.com/profile/07962199415215786355</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://1.bp.blogspot.com/_Zov7KEFJefs/SeQEHmjICqI/AAAAAAAAACE/FkFAYWAZCIU/S220/Snapshot+of+me+2.JPG'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2931150950398014304.post-1413486806027134687</id><published>2009-08-19T13:38:00.001+10:00</published><updated>2009-08-19T17:20:42.280+10:00</updated><title type='text'>New Challenge from the guys at "TSQL Challenges"</title><content type='html'>The guys at "TSQL Challenges" have released Challenge #12&lt;br /&gt;&lt;a href="http://beyondrelational.com/blogs/tc/archive/2009/08/09/tsql-challenge-12-build-sequential-ranges-of-dates-with-propagation-to-missing-values.aspx"&gt;http://beyondrelational.com/blogs/tc/archive/2009/08/09/tsql-challenge-12-build-sequential-ranges-of-dates-with-propagation-to-missing-values.aspx&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2931150950398014304-1413486806027134687?l=matticus-au.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://matticus-au.blogspot.com/feeds/1413486806027134687/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://matticus-au.blogspot.com/2009/08/guys-at-tsql-challenges-have-released.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2931150950398014304/posts/default/1413486806027134687'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2931150950398014304/posts/default/1413486806027134687'/><link rel='alternate' type='text/html' href='http://matticus-au.blogspot.com/2009/08/guys-at-tsql-challenges-have-released.html' title='New Challenge from the guys at &quot;TSQL Challenges&quot;'/><author><name>Matticus</name><uri>http://www.blogger.com/profile/07962199415215786355</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://1.bp.blogspot.com/_Zov7KEFJefs/SeQEHmjICqI/AAAAAAAAACE/FkFAYWAZCIU/S220/Snapshot+of+me+2.JPG'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2931150950398014304.post-8560536358653068673</id><published>2009-06-10T10:30:00.003+10:00</published><updated>2009-06-10T10:41:29.107+10:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='sql'/><category scheme='http://www.blogger.com/atom/ns#' term='restore'/><category scheme='http://www.blogger.com/atom/ns#' term='backup'/><category scheme='http://www.blogger.com/atom/ns#' term='recovery'/><category scheme='http://www.blogger.com/atom/ns#' term='database'/><title type='text'>When is a Backup Considered Successful?</title><content type='html'>Yesterday while reading the many industry related newsletters I subscribe to I came across a really good article which is essentially a DBA's "Best Practise" guide for ensuring they have backups available when they need them and that they are successful. I was please to find that there wasn't anything written in this article which I was not already aware of and performing as part of my DBA role. Of cause performing test restores for the ~13000 databases my team manage is not very realist.&lt;br /&gt;I also found that this was a good article for not just the DBA but also for the end user to read and therefore gain an understanding of exactly what is involved in a Recovery / Restore request and therefore assist in setting a realistic expectation.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;When is a Backup Considered Successful?&lt;/span&gt;&lt;br /&gt;By Steven Bouffard, 2009/06/08 @ SQLServerCentral.com&lt;br /&gt;&lt;a href="http://www.sqlservercentral.com/articles/Backup+and+Recovery/66703/"&gt;http://www.sqlservercentral.com/articles/Backup+and+Recovery/66703/&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2931150950398014304-8560536358653068673?l=matticus-au.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://matticus-au.blogspot.com/feeds/8560536358653068673/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://matticus-au.blogspot.com/2009/06/when-is-backup-considered-successful.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2931150950398014304/posts/default/8560536358653068673'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2931150950398014304/posts/default/8560536358653068673'/><link rel='alternate' type='text/html' href='http://matticus-au.blogspot.com/2009/06/when-is-backup-considered-successful.html' title='When is a Backup Considered Successful?'/><author><name>Matticus</name><uri>http://www.blogger.com/profile/07962199415215786355</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://1.bp.blogspot.com/_Zov7KEFJefs/SeQEHmjICqI/AAAAAAAAACE/FkFAYWAZCIU/S220/Snapshot+of+me+2.JPG'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2931150950398014304.post-2456020336031554578</id><published>2009-04-26T00:11:00.002+10:00</published><updated>2009-04-26T00:12:42.172+10:00</updated><title type='text'>Useful web site for Report Viewer Control</title><content type='html'>Tonight while investigating some issues a client was having with the SRS 2008 Report Viewer control I stumbled across this useful web site. &lt;a href="http://www.gotreportviewer.com/"&gt;http://www.gotreportviewer.com/&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2931150950398014304-2456020336031554578?l=matticus-au.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://matticus-au.blogspot.com/feeds/2456020336031554578/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://matticus-au.blogspot.com/2009/04/useful-web-site-for-report-viewer.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2931150950398014304/posts/default/2456020336031554578'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2931150950398014304/posts/default/2456020336031554578'/><link rel='alternate' type='text/html' href='http://matticus-au.blogspot.com/2009/04/useful-web-site-for-report-viewer.html' title='Useful web site for Report Viewer Control'/><author><name>Matticus</name><uri>http://www.blogger.com/profile/07962199415215786355</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://1.bp.blogspot.com/_Zov7KEFJefs/SeQEHmjICqI/AAAAAAAAACE/FkFAYWAZCIU/S220/Snapshot+of+me+2.JPG'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2931150950398014304.post-1647527752942554321</id><published>2009-04-16T16:28:00.005+10:00</published><updated>2009-04-16T17:01:55.041+10:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='SRS 2005'/><category scheme='http://www.blogger.com/atom/ns#' term='Print'/><category scheme='http://www.blogger.com/atom/ns#' term='Unable to load client print control'/><category scheme='http://www.blogger.com/atom/ns#' term='Report Viewer'/><title type='text'>Report Viewer returning "Unable to load client print control" when trying to print a report</title><content type='html'>This week I came across an issue with the SRS Report Viewer component which I believed we had fixed back in October 2008.... if you cast your minds back you may recall the issue with MS Update KB 956391 and that the update to Kill Bits stopped the Report Viewer's Print functionality. If you don't then read &lt;a href="http://blogs.msdn.com/brianhartman/archive/2008/11/05/client-print-fails-to-load-after-microsoft-update-956391.aspx"&gt;http://blogs.msdn.com/brianhartman/archive/2008/11/05/client-print-fails-to-load-after-microsoft-update-956391.aspx&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;During the investigation into the issue we found a number of forums also mentioning that the issue had re-occurred so hopefully this helps point people in the right direction and save them time in their investigation.&lt;br /&gt;&lt;br /&gt;So back to the client's issue. As with when MS rolled out update &lt;span style="font-style: italic;"&gt;KB 956391&lt;/span&gt; if you were to try and print a report you would receive the "&lt;span style="font-weight: bold;"&gt;Unable to load client print control&lt;/span&gt;" error. After reapplying the hotfix &lt;span style="font-style: italic;"&gt;KB 954606&lt;/span&gt; and then also upgrading the SQL Server to SP3 without any impact on the issue, I started to look further into the clients configuration.&lt;br /&gt;&lt;br /&gt;The clients environment consisted of a front-end Web server which was serving their web site (which includes a front-end custom built report viewer), and also a back-end SQL Server which also has an installation of SRS's Report Manager web interface (and therefore IIS installed) mostly for administration of the report environment. The problem I found was that we were focusing our attention on the SQL Server as an assumption was made that the Report Viewer control was being launched from there. Unfortunately this was not the case, as after checking the clients application I found that their web site (hosted on the front-end web server) actually contained a custom built report viewing tool built in .Net using the Report Viewer component.&lt;br /&gt;&lt;br /&gt;Once I had identified that the issue was related to the front-end web site and not the SQL Server, I was then able to track down the following assemblies for the Report Viewer component being servered by their web application's /bin directory, and what I found that these were actually the incorrect versions and were in fact pre hotfix KB954606.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;Name: Microsoft.ReportViewer.WebForms.dll&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;Version: 8.0.50727.42&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;Name: Microsoft.ReportViewer.Common.dll&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;Version: 8.0.50727.42&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;When I compared these to the version of the assemblies in the GAC on the SQL Server I found that these were quite out dated:&lt;br /&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;Microsoft.ReportViewer.WebForms.dll&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;8.0.50727.1843&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;Microsoft.ReportViewer.Common.dll&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;8.0.50727.1843&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;&lt;span style="font-weight: bold;"&gt;TIP: &lt;/span&gt;To check the versions of a DLL in the GAC correctly, right click the assembly and open it's properties. Then click the Version tab and the correct version will be reported. The version reported on the General tab and also in the GAC list is not reported correctly.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Once we replaced the out dated DLL's with the latest DLL's from the SQL Server the Print functionality started working again.&lt;br /&gt;&lt;br /&gt;On a side note to this I actually found that the Developer had not patched his/her system with either hotfix KB954606 or SP3 for SQL Server and therefore when they published an update to the application they broke the Print functionality again. A lesson should be learnt here to make sure all of your patching is kept up to date, for not only your production systems but also development systems.&lt;br /&gt;&lt;br /&gt;To give credit where credit is due &lt;a href="http://social.msdn.microsoft.com/forums/en-US/vsreportcontrols/thread/67393c46-4c3f-4b92-ba38-3cd3d5869988"&gt;this post&lt;/a&gt; definitely helped me on my way to identifying the cause.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2931150950398014304-1647527752942554321?l=matticus-au.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://matticus-au.blogspot.com/feeds/1647527752942554321/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://matticus-au.blogspot.com/2009/04/report-viewer-returning-unable-to-load.html#comment-form' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2931150950398014304/posts/default/1647527752942554321'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2931150950398014304/posts/default/1647527752942554321'/><link rel='alternate' type='text/html' href='http://matticus-au.blogspot.com/2009/04/report-viewer-returning-unable-to-load.html' title='Report Viewer returning &quot;Unable to load client print control&quot; when trying to print a report'/><author><name>Matticus</name><uri>http://www.blogger.com/profile/07962199415215786355</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://1.bp.blogspot.com/_Zov7KEFJefs/SeQEHmjICqI/AAAAAAAAACE/FkFAYWAZCIU/S220/Snapshot+of+me+2.JPG'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2931150950398014304.post-8337940333712210715</id><published>2009-04-14T14:47:00.003+10:00</published><updated>2009-04-14T15:02:09.149+10:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Event ID 26021'/><category scheme='http://www.blogger.com/atom/ns#' term='934441'/><category scheme='http://www.blogger.com/atom/ns#' term='Event ID 26006'/><category scheme='http://www.blogger.com/atom/ns#' term='885416'/><category scheme='http://www.blogger.com/atom/ns#' term='Agent was unable to send data to the mom server'/><category scheme='http://www.blogger.com/atom/ns#' term='MOM 2005'/><category scheme='http://www.blogger.com/atom/ns#' term='Event ID 21293'/><title type='text'></title><content type='html'>Recently I came across the an issue with MOM 2005 Agents reporting communication issues when trying to contact the Management Server. While investigating the issue I found a number of posts online which indicated had the same symptoms.&lt;br /&gt;&lt;br /&gt;Most of what was being commented about online related to &lt;a href="http://support.microsoft.com/?id=885416"&gt;MS KB 885416&lt;/a&gt; which involves the following events being reported in the Agent's Application Event Log.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;Event Type: Error&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;Event Source: Microsoft Operations Manager&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;Event Category: None&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;Event ID: 21293&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;User: NT AUTHORITY\SYSTEM&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;Description: The agent was unable to send data to the MOM Server at ManagementServerName. The error code is 10054. An existing connection was forcibly closed by the remote host.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;Event Type: Information&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;Event Source: Microsoft Operations Manager&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;Event Category: None&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;Event ID: 26021&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;User: NT AUTHORITY\SYSTEM&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;Description: The agent has restored communication to ManagementServerName&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Unfortunately like the  &lt;a href="http://support.microsoft.com/?id=885416"&gt;MS KB 885416&lt;/a&gt; everything pointed to needing to install a hotfix or Service Pack 1, however like other people posting about this issue I had already installed Service Pack1. In fact this issue is the first thing fixed by Service Pack 1 according to &lt;a href="http://support.microsoft.com/kb/905420"&gt;http://support.microsoft.com/kb/905420&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;After hitting a brick wall with my investigation I ended up contacting Microsoft support for assistance and after providing their technician with a very clear overview of everything I had already investigated he immediately found that there was another error also being logged. This error which he found was:&lt;br /&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;Event ID: 26009&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;Category: None&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;Source: Microsoft Operations Manager&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;Type: Error&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;Machine: ComputerName&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;Message:&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;The agent could not connect to the MOM Server FQDN.MOM.Server. The error reported is 'No connection could be made because the target machine actively refused it.'. Verify the management group name is correct, the MOM Server is running, that it is listening on port 1270, and that any firewalls between this agent and the MOM server are configured to pass TCP and UDP traffic on port 1270.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Where the MS tech found this error is still beyond me as I could never see it but it was either in the Event Log or the MOM log files from the Agent.&lt;br /&gt;&lt;br /&gt;Once this error was detected Microsoft directed me to the &lt;a href="http://support.microsoft.com/?id=934441"&gt;MB KB 934441&lt;/a&gt; which matched the problem we were having.&lt;br /&gt;&lt;br /&gt;After downloading the Hotfix as described in  &lt;a href="http://support.microsoft.com/?id=934441"&gt;MB KB 934441&lt;/a&gt; and applying it to the affected Management Server the communication issue was immediately corrected and monitoring restored.&lt;br /&gt;&lt;br /&gt;I am still not 100% sure of the cause of this as Microsoft never provided a definite cause for why the errors were being reported but the hotfix has definitely corrected almost every case of this issue we came across.&lt;br /&gt;&lt;br /&gt;NOTE: After patching the affected Management Server I also then patched all of my other Management Servers (6 in total) and then proceeded to patch the Agents, which I am still working through.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2931150950398014304-8337940333712210715?l=matticus-au.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://matticus-au.blogspot.com/feeds/8337940333712210715/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://matticus-au.blogspot.com/2009/04/recently-i-came-across-an-issue-with.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2931150950398014304/posts/default/8337940333712210715'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2931150950398014304/posts/default/8337940333712210715'/><link rel='alternate' type='text/html' href='http://matticus-au.blogspot.com/2009/04/recently-i-came-across-an-issue-with.html' title=''/><author><name>Matticus</name><uri>http://www.blogger.com/profile/07962199415215786355</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://1.bp.blogspot.com/_Zov7KEFJefs/SeQEHmjICqI/AAAAAAAAACE/FkFAYWAZCIU/S220/Snapshot+of+me+2.JPG'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2931150950398014304.post-7907349028135546475</id><published>2009-04-14T13:37:00.002+10:00</published><updated>2009-04-14T13:43:26.207+10:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Pending Action'/><category scheme='http://www.blogger.com/atom/ns#' term='MOM 2005'/><category scheme='http://www.blogger.com/atom/ns#' term='OnePoint'/><title type='text'>Querying the pending actions for agents in MOM 2005</title><content type='html'>Recently I came across a situation where I had patched our MOM2005 Management Servers with a MS hotfix to correct a problem we were experiencing and needed to then rollout the patch to all of our agents. As our environment is a combination of agents with either Control Levels Full or None I needed to determine and keep track of which agents I had patched.&lt;br /&gt;&lt;br /&gt;To do this I wrote the following TSQL statement to query the OnePoint database and allow me to export the results to Excell to make it easier to keep track of what was still to be patched.&lt;br /&gt;&lt;br /&gt;SELECT C.[Name] AS Name,&lt;br /&gt;C.[Domain],&lt;br /&gt;CM.[Name] AS ConfigManagerName,&lt;br /&gt;(CASE Convert(varchar(20), C.ManagedType)&lt;br /&gt;WHEN '0' THEN 'Unmanaged'&lt;br /&gt;WHEN '2' THEN 'Agent-Managed'&lt;br /&gt;ELSE Convert(varchar(20), C.ManagedType)&lt;br /&gt;END) as 'Management Mode',&lt;br /&gt;(CASE IsNull(dbo.fn_GetControlLevel(C.idComputer),'FUll')&lt;br /&gt;WHEN 'Full' THEN 'Full'&lt;br /&gt;WHEN 'Group' THEN 'None'&lt;br /&gt;ELSE 'UNK'&lt;br /&gt;END) As ControlLevel,&lt;br /&gt;(CASE Convert(varchar(20),C.PendingAction)&lt;br /&gt;WHEN '0' THEN ''&lt;br /&gt;WHEN '1' THEN 'Approve Manual Agent Install'&lt;br /&gt;WHEN '2' THEN 'Uninstall Agent'&lt;br /&gt;WHEN '4' THEN 'Install Agent'&lt;br /&gt;WHEN '5' THEN 'Requires Patching'&lt;br /&gt;ELSE Convert(varchar(20),C.PendingAction)&lt;br /&gt;END) AS PendingAction&lt;br /&gt;FROM&lt;br /&gt;[dbo].[Computer] C&lt;br /&gt;LEFT OUTER JOIN [dbo].[Computer] CM ON C.[idConfigManager] = CM.[idComputer]&lt;br /&gt;WHERE C.IsAddedByServiceDiscovery = 0&lt;br /&gt;ORDER BY C.Name&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2931150950398014304-7907349028135546475?l=matticus-au.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://matticus-au.blogspot.com/feeds/7907349028135546475/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://matticus-au.blogspot.com/2009/04/querying-pending-actions-for-agents-in.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2931150950398014304/posts/default/7907349028135546475'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2931150950398014304/posts/default/7907349028135546475'/><link rel='alternate' type='text/html' href='http://matticus-au.blogspot.com/2009/04/querying-pending-actions-for-agents-in.html' title='Querying the pending actions for agents in MOM 2005'/><author><name>Matticus</name><uri>http://www.blogger.com/profile/07962199415215786355</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://1.bp.blogspot.com/_Zov7KEFJefs/SeQEHmjICqI/AAAAAAAAACE/FkFAYWAZCIU/S220/Snapshot+of+me+2.JPG'/></author><thr:total>0</thr:total></entry></feed>
