ObSrv Bug Fix – Please read

I’ve fixed a bug with ObSrv that was causing empty image feeds to appear.

There is a long term problem that we need to address, and I need your help to sort it out.

The problem is that Google is limiting the number of image searches that ObSrv can do to 100 per day. The problem is that once we exceed this limit, no images are returned and you get a blank feed.

I’ve temporarily fixed this problem by changing the image search provider. I’m not saying which, as I don’t want to cause any more waves.

But eventually they’ll start blocking excessive image searches as well.

So I’m considering changing ObSrv to require you to supply a Google API key. It won’t be hard to do. All yu need to do is go to the Google Code API console, log in (or create an account) and request an API key.

Future versions of ObSrv will require you to enter that API key as part of the Feed URL.

For now, you don’t need to do anything. Everything should be working perfectly. Your images should come through as expected.

I’m just alerting you to what may have to happen, and I’d like your feedback please.

You once might have had a feed URL that was something like: http://obsrv.com/General/ImageFeed.aspx?mountain+wallpaper

But I’m suggesting we change that to something like: http://obsrv.com/General/ImageFeed.aspx?mountain+wallpaper&APIKEY=[your API KEY]

This way, any ObSrv feed requests will be linked to your API KEY and not mine. And (provided you don’t go over 100 requests per day) Google won’t hassle you. This shouldn’t be a problem. Image feeds don’t update that often. Even if you refreshed the feed every hour you’d be able to have four separate feeds and stay under the limit.

If you exceed Google’s limit, they’ll probably want you to open up a commercial account with them and pay them something. This has nothing to do with me. I’m not asking for your money – I’m just explaining how Google deals with people who use their resources in an unusual way.

Please leave a comment, or email me, and let me know your thoughts.

The challenge we face is that Search Engines are a moving target. Writing a web service like ObSrv that keeps up with this target is difficult, but not impossible.

Windows Home Server 2011

I recently upgraded from Windows Home Server (WHS) to Windows Home Server 2011 (WHS2011).  My old WHS machine was dying, and I was attracted to idea that WHS2011 was a 64 bit OS, and would hopefully perform better.  I installed WHS2011 onto a 64 bit VMWare virtual machine with 4GB ram, a 200GB virtual for the OS, 3TB storage on an external USB HDD and a 100 GB virtual disk to backup the OS.

Incidentally, the OS only formatted up a 2GB partition on the 3GB drive, leaving a separate 1TB partition unused.  I formatted this up later and added it to the pool.

I encountered several problems, but have overcome them all, and am very happy with the result.

1. WHS provided Drive Extender Technology, but WHS2011 does not.

A cool feature about the original WHS was that you could add extra storage to the box on the fly, and WHS would allocate it to one large storage pool.  So rather than having a bunch of disparate disks of all different sizes, they’d all appear as one huge drive.

This feature was dropped from WHS2011.

That meant if one of my drives filled up, and I wanted to add more storage, it would appear in the system as a separate drive, and I’d have to alter my backup plans to use the new drive.

I got around this problem by installing DriveBender – a WHS2011 add-in which allows me to dynamically manage the size of my storage pools, provides redundancy, and makes managing a bunch of drives a lot easier.  It only cost me $40, which (even for a tight-wad like me) was money well spent.

2. WHS2011 won’t backup a Windows 2008 Server

While the original WHS happily backed up all my servers, the WHS2011 connector would not install on my Windows 2008 server.

When I tried to install it, I got an error saying that the computer is running a version of the Windows Operating System that is not supported.

I got around this problem by loging into the WHS2011 server, and editing this file:

C:\Program Files\Windows Server\Bin\WebApps\Client\Package\supportedOS.xml

I added the following line to the XML:

<OS Architecture=”9″ RequiredProductType=”3″ RequiredSuite=”” ExcludedSuite=”” SPMinor=”” SPMajor=”2″ Build=”6002″ Minor=”0″ Major=”6″ Name=”Windows Server 2008, AMD64″ id=”7″/>

EDIT (January 2013).

For a Windows Server 2008 (service pack 2) machine, I added this line:

<OS id=”10″ Name=”Windows Server 2008 R2, AMD64″ Major=”6″ Minor=”0″ Build=”6002″ SPMajor=”2″ SPMinor=”” ExcludedSuite=”” RequiredSuite=”” RequiredProductType=”3″ Architecture=”9″/>

You can figure out what numbers to use by running the WinVer utility that comes with windows.  I.e. click on START / RUN and type WINVER [enter]

This will say something like:

Microsoft Windows Server:
Version a.b (build cccc: Service Pack d)

Use “a” as the “Major” parameter.
Use “b” as the “Minor” parameter.
Use “cccc” as the “Build” parameter.
Use “d” as the “SPMajor” parameter.

So my version of “Version 6.0 (Build: 6002: Service Pack 2)” translated to :
Major=”6″ Minor=”0″ Build=”6002″ SPMajor=”2″

After adding this line, and rebooting the server, I was able to install the WHS2011 connector on my server, although I received a warning telling me the OS was not on the list of compatible operating systems.

3. Disk Errors caused backups to fail

After a while, the USB drive started to fail.  WHS 2011 reported that the Windows Server Client Computer Backup Service was not running.  I tried to start it manually, but it failed.  The event log gave the following error:
“ReadHeader File: D:\ServerFolders\Client Computer Backups\Commit.dat Error: Unable to complete the requested operation because of either a catastrophic media failure or a data structure corruption on the disk.”

To get around this problem, I used DriveBender to add a second (2TB) USB drive to the pool. I then used DriveBender to remove the faulty (3TB) UDB drive from the pool.  Removing the faulty drive took about 36 hours.  Basically DriveBender had to check the CRC of every file on the drive before copying it.

After removing the faulty drive, I stil received the same error, so I did a “repair” on the backup database, which fixed the problem.

I was then able to reformat and add the original drive back into the pool.

At the same time, I enabled data redundancy on the pool, so that every file added after that was duplicated on a second drive.

4. I could not connect to WHS2011 with Launchpad from one machine

This was the most annoying error of all and took me days to fix.

I had an old XP machine that refused to connect.

Whenever I tried to sign in I’d get the following error:
The server appears to be offline. Do you want to sign in to offline mode?

This happened, even though I could use Dashboard, and was able to access shares on the server from the old XP machine.

I scoured the web for solutions.  Here’s a few I tried to no avail.

1. Uninstall and reinstall the WHS2011.  As well as uninstalling the connector, I deleted all records of the old XP machine from the WHS2011 catalog.  After reinstalling WHS2011 on the old XP machine Launchpad still would not connect to the server.

2. Uninstall and reinstall the .NET 4.0 framework.  I restarted the machine after uninstalling, and even combined the process with uninstalling / reinstalling WHS2011.  No joy.  I still could not connect.

3. Disable my local firewall.  Disable all inter-computer communication restrictions on my Endian firewall.   Basically I was trying to make sure nothing was blocking communications between the old XP machine and the server.  No success.  I still could not connect.

4. Increase the ServicesPipeTimeout setting in the registry.  The idea behind this was that perhaps it was taking a while for Launchpad to connect with the server.  If I increased the timeout, perhaps it might have a better chance of successfully connecting.  No joy.  I still could not connect.

In desperation, I used the Wireshark packet tracer, as well as my Endian Firewalls log files to trace any packets from the old XP machine to the server.  To my great surprise not a single packet was being transmitted.  There were not even any unsuccessful transmissions.  The workstation didn’t even appear to be trying to communicate.  This led me to think that perhaps there was something wrong with the Winsock component on the client workstation.  I.e. something on the local machine was stopping the communication before it even left the local machine.

So I tried listing all the LSP’s installed on the local machine using this command:

netsh winsock show catalog

This showed up something really interesting.  I noticed that there was an old antivirus system (Comodo Antivirus) installed on the workstation.  It wasn’t being used, but it had installed an LSP which was blocking communication between the old XP machine and the server.

I uninstalled Comodo Antivirus from the workstation, rebooted, and BINGO, Launchpad was able to connect.

I now have a fully functional WHS2011 backup solution.  It has redundancy, scalable storage, and works like a charm.  A couple of weeks ago, one of the local machines failed.  I just rebooted that machine from a WHS2011 recovery CD, and it was up and running again in about 90 minutes.

If you’re having problems with WHS2011, I hope this post helps you sort them out.