Go to content Go to navigation Go to search

SQL Server 2008 - RTM
· 2008-08-06 20:06 by Thijs Kroesbergen for Brokenwire.NET

Another cool product I’ve been looking forward to has been released into the wild today: SQL Server 2008 .
It is available from the MSDN subscriber site right now! Dig in, enjoy!

Now we can finally use C# as a scripting language for SSIS packages. Besides that there are a lot more exciting new features in SSIS .

Permalink -

New hosting provider
· 2008-07-19 17:10 by Thijs Kroesbergen for Brokenwire.NET

I'm happy to announce that this site is now hosted on a decent server ;-).

The old Pentium II 450 MHz with 192mb ram can now finally retire! And I'm no longer dependant on the goodwill of the UPC DHCP-gods to keep a static IP. The pages are now served by a (shared) server that has a lot more horsepower and is located in a proper data center, with a nice uplink. W00t w00t?.

All this is thanks to Kumina, a small company run by several ex-schoolmates. They are specialized in managed operations and technical services, and I know they are the best in what they do!

Permalink -

SQL Server Service Broker: cleanup
· 2008-06-05 09:26 by Thijs Kroesbergen for Brokenwire.NET

Imagine that you've been playing with the SQL Server Service broker, and you've got thousands of conversations stuck in the queue. And then you discover that there is nothing like "truncate table" possible on the queue... You can cleanup each conversation in the queue with the "end conversation with cleanup" statement.

So, a bit of searching and this is the result:

WARNING: DO NOT USE THIS ON A PRODUCTION ENVIRONMENT: the messages in the queue are lost forever!

use [YOURDB] declare @handle uniqueidentifier declare conv cursor for select conversation_handle from sys.conversation_endpoints open conv fetch next from conv into @handle while @@FETCH_STATUS = 0 Begin END Conversation @handle with cleanup fetch next from conv into @handle End close conv deallocate conv

To see how many conversations there a left:

select count(*) from sys.transmission_queue

Have fun! (I know I did)
More about the Service Broker and ending conversations soon on this channel.

UPDATE:

The really really quick 'n dirty way:

ALTER DATABASE LogistiekeMeetpuntenAdministratie WITH NEW_BROKER

Permalink -

TFS BuildStore: Stopping and removing builds
· 2008-04-11 12:17 by Thijs Kroesbergen for Brokenwire.NET

Here is a quick tip on how to remove a build that got stuck in your Team Foundation Server build environment.

The scenario: You've started a build and someone else has decided that it's a good idea to shutdown the buildserver... (Hi Martijn!)
After that you're left with a started build in the TFS buildstore with a BuildStatus of "Compilation Started". The problem here is that this build will never finish (because the server was shutdown while building). As an additional bonus you'll have team explorer sorting this build to the top of the list as well, which is confusing. On top of that: the list of builds doesn't have a button to delete a build.

So we want to remove it. How? PowerShell!

I used my friend get-tfs, and added a line to the script for the BuildController object. The complete get-tfs function now looks like this:

function get-tfs ( [string] $serverName = $(Throw 'serverName is required') ) { # load the required dll [void][System.Reflection.Assembly]::LoadWithPartialName("Microsoft.TeamFoundation.Client") $propertiesToAdd = ( ('VCS', 'Microsoft.TeamFoundation.VersionControl.Client', 'Microsoft.TeamFoundation.VersionControl.Client.VersionControlServer'), ('WIT', 'Microsoft.TeamFoundation.WorkItemTracking.Client', 'Microsoft.TeamFoundation.WorkItemTracking.Client.WorkItemStore'), ('BS', 'Microsoft.TeamFoundation.Build.Common', 'Microsoft.TeamFoundation.Build.Proxy.BuildStore'), ('BC', 'Microsoft.TeamFoundation.Build.Common', 'Microsoft.TeamFoundation.Build.Proxy.BuildController'), ('CSS', 'Microsoft.TeamFoundation', 'Microsoft.TeamFoundation.Server.ICommonStructureService'), ('GSS', 'Microsoft.TeamFoundation', 'Microsoft.TeamFoundation.Server.IGroupSecurityService') ) # fetch the TFS instance, but add some useful properties to make life easier # Make sure to "promote" it to a psobject now to make later modification easier [psobject] $tfs = [Microsoft.TeamFoundation.Client.TeamFoundationServerFactory]::GetServer($serverName) foreach ($entry in $propertiesToAdd) { $scriptBlock = ' [System.Reflection.Assembly]::LoadWithPartialName("{0}") > $null $this.GetService([{1}]) ' -f $entry[1],$entry[2] $tfs | add-member scriptproperty $entry[0] $ExecutionContext.InvokeCommand.NewScriptBlock($scriptBlock) } return $tfs }

Next I had to figure out the BuildUri for the broken build. I used the following snippet to get all builds with a status of "Compilation Started" from the BuildStore:

$tfs = get-tfs http://tfs-server:8080 $tfs.BS.GetListOfBuilds("TeamProject", "DailyBuild") | where {$_.Buildstatus -eq "Compilation Started"}

Before running this, I made sure no other builds where running and to make sure you are going to delete the correct build you MUST double check the results here! Next I copied the BuildUri from the build that I wanted to stop & delete.

Then the following three lines of PowerShell made the magic happen:

$message = "" $tfs.BC.StopBuild("vstfs:///Build/Build/04102008_134057_94286", [ref] $message) $tfs.BC.DeleteBuild("vstfs:///Build/Build/04102008_134057_94286", [ref] $message)

If something goes wrong the $message variable will be filled with a helpful error message.

By combining the BuildStore and the BuildController objects it is also possible to write an automated build-cleanup mechanism using PowerShell. (TFS2008 has this functionality built-in, but version 2005 doesn't)
The pseudo code for this script would look like this:

Loop through ListOfBuilds WHERE BuildQuality equals "Rejected" (maybe another Quality?)
And for each build found:

Writing this in PowerShell should be easy now. And as usual: the actual implementation of this script is left as an exercise for my dear readers ;)

Let me know if you succeed (or fail, in that case we'll sort it out together).

Permalink -

A NASty device
· 2008-04-05 21:09 by Thijs Kroesbergen for Brokenwire.NET

As of today I am the proud owner of a 1TB network attached storage device.

It’s name is "CH3SNAS". I’ve used two 500 gb Western Digital GP harddisks. These disks are made to be energy efficient. I thought that would be a good thing for a device that will be always-on. And the disks won’t be stressed out much because all data has to travel through the network before hitting the disk. So speed is not an issue. Besides that: more power more heat, more heat more cooling and more cooling == more noise and dying disks.

I’ve also upgrade the network switch to gigabit because the old switch was dying and its not a lot of fun to reset your switch every few minutes while trying to download something. Now the CH3SNAS is the only 1000mbit device connected but now I can upgrade the others gradually.

This device also has an UPnP AV Media server on board, so I can easily browse through all my movies, music and pictures. I’ve also found a nice UPnP compatible music/movie player for my IPaq (but it’s not free so better suggestions are welcome!).

It also has a scheduled download option, which means that the NAS can download stuff while your PC is off.

Maybe the most important thing this device can do: it has support for so called "funplugs" (the hardware is almost identical to the D-Link DNS-323 NAS, only the CH3SNAS is cheaper). Which means that you can add your own software to it. The thing actually runs Linux and has quite a decent CPU so there’s all kind of fun things to run on there. I’m thinking bittorrent, hellanzb, slimserver, ssh, nfs-server… a lot to play with ;-) Oh and there’s a new firmware out soon as well.

Permalink -

Come work with me!
· 2008-04-05 20:33 by Thijs Kroesbergen for Brokenwire.NET

Let me ask you a few questions. Do you like:

If you said yes to on ore more of the above items, please stay where you are. You are probably happy with your job and we all know good things will happen if you wait long enough!

But... If you disagree with all of this, take a look at this opportunity I have for you! This might be the moment for you to decide that your career needs an upgrade! And even if you are satisfied with your current job, you can always take a look. (The grass is greener on this side... it is)

So, if you:

Then you're the one we are looking for! Click the blue banner to go to a form where you can leave your information. "Don't call us, we will call you!" :)
By clicking you can also see a lot more about the company and the people. (That site is written in Dutch... but that makes sense...)

No, that's not us on the picture, we are really cool :-)

If you want to see more, here is a list of weblogs maintained by some of my colleagues:

Dick Dijkstra
Jan Kieftenbeld
José Carballosa Coré
Leon Meijer
Mathieu Diepman
Paul Deen
Ruben D'Arco

And maybe we can welcome you in our "family" soon as well!

Remember, most of the (technical) stuff I write on this blog is just part of my every day life. I get to work with latest technologies and I have the opportunity to study (getting certified & visiting conferences (in Barcelona) is just part of that).

(Yes I know, this blog post is a shameless job offering. More tech stuff blog posts are being worked on, I promise! I Do! And if you're one of my colleagues and you want a link to your blog, send me an email and I'll fix it)

Permalink -

Previous Next