In our automated builds databases get build up from the ground with RoundhousE. We even deploy nightly to a Quality Assurance environment. And this works quite fine for about a year now.

But recently we get build failures with nice messages like: Could not obtain exclusive lock on database 'model'. Retry the operation later. CREATE DATABASE failed.

Strange message at first sight, but it makes sense.

When SQL Server creates a new database, "The SQL Server uses a copy of the model database to initialize the database and its metadata". Also, users could create, modify, drop objects in the Model database. As such, it is important to exclusively lock the model database to prevent copying the data in change from the Model database. For more info on creating the database see: http://msdn.microsoft.com/en-us/library/ms176061.aspx

No exclusive lock? Who’s holding a lock then? Execute following query to find out. You should have no results.

SELECT spid FROM master..sysprocesses WHERE dbid = DB_ID('model')

But in our case it turned out that Microsoft’s SCOM is holding connections open to the Model DB. So each time SCOM is monitoring the build fails miserably.

We managed to add an exclude for the Model DB in the SQL Server Management Pack, but connections are still being made and stay open to long. SCOM is kind of a big black box, at least to us it is.

Our solution for now is to disable the SQL Server Management pack for our QA servers until Microsoft fixes the issue. Bummer.

How far should you take the monitoring of servers in a build farm? What do you think?

So let’s give this a try. It’s free if you want to publically share the presentations you make. After signing up and watching the 6 minute tutorial, you’re ready to make a presentation. It’s really intuitive and easy.

You just type in your ideas, upload some pictures, maybe link to video’s on YouTube. Play with the zooming and add some frames. The frames allow you to group items for zooming. The last step is making the presentation path by clicking on the items in the order you want them to show up.