Changing SQL 2005 tempdb Collation

Posted on August 12th, 2010 in Technology, Work by Jim Prince

I recently had cause to change the SQL Collation of the tempdb database on a SQL 2005 Cluster. The installed collation was SQL_Latin1_General_CP1_CI_AS and I needed to change it to Latin1_General_CI_AS. After some brief research it became apparent that the process isn’t as straightforward as you’d imagine.

My first attempt, based on a couple of blog posts I’d read, suggested restoring the model database from an alternative SQL installation with the desired collation. This worked in that once I’d restarted SQL, tempdb had the correct collation, but unfortunately this caused errors in Management Studio. I think this was because the master database had a different collation to that of tempdb.

Apparently the only way to change the collation of the master database is to rebuild all the system databases. So, in preparation, I detached all the user databases and took a copy of syslogins. Apparently you can only rebuild the system databases from the command line and it took some experimentation before I hit on the right combination of arguments. These were as follows;

setup.exe /qn VS=<virtual server name> INSTANCENAME=<instance name> REINSTALL=SQL_Engine REBUILDDATABASE=1 SQLCOLLATION=Latin1_General_CI_AS GROUP=<cluster group> SKUUPGRADE=1 SQLACCOUNT=<sql service account> SQLPASSWORD=<sql service account password> ADMINPASSWORD=<logged in user password> SAPWD=<sa password>

SKUUPGRADE was required because the server was running service pack 1 but setup.exe was from the RTM version. I don’t know a way around this as you can’t slipstream a SQL 2005 SP1 installation.

ADMINPASSWORD specified the password of the logged in user. I had initially omitted this option but was getting an error “The installation was cancelled by the user” in the logs. After some investigation I discovered that the installer was trying to create a scheduled task on each of the cluster nodes, but was failing because it couldn’t authenticate. As an added bonus this would also lock out my domain account. Nice one Microsoft!

SAPWD was required (despite the SA account being disabled), otherwise I would get the following error in C:\Program Files\Microsoft SQL Server\90\Setup Bootstrap\LOG\Summary.txt.

Error: Action "LaunchPatchedBootstrapAction" threw an exception during execution. Error information reported during run:
"C:\Program Files\Microsoft SQL Server\90\Setup Bootstrap\setup.exe" finished and returned: 1602 Aborting queue processing as nested installer has completed Message pump returning: 1602

Once the installation had completed I attached the user databases and restored the syslogins. See here for details on how to do this.

The moral of the story is to check and double check you have the correct collation at the point of installation. It’s a right pain to change afterwards. Lesson learnt.


Opening documents from MOSS 2007 with Office 2010 (Beta)

Posted on August 2nd, 2010 in Technology, Work by Jim Prince

For a while now I’ve been getting an error when trying to open office documents (Word, Excel etc) from our SharePoint 2007 based Intranet, this has been happening since I upgraded of Office 2010 Beta. The error was always of the type ‘”Could not open ‘http://…”.

moss_error[3]

To get around the issue I’d just download the document to my desktop then re-upload to the Portal, which while not very efficient, worked just fine.

This morning I got fed up and decided to try and fix it.

The solution turned out to be very straightforward, at least on my laptop. Open IE navigate to Tools –> Internet Options –> Connections –> LAN Settings and uncheck the box Automatically detect settings. Problem solved, now if anybody could explain why the hell that should make any difference I would love to know!

ie



SharePoint People Picker AD groups discrepancy

Posted on July 30th, 2010 in Technology, Work by Jim Prince

We recently came across a problem where the People Picker in a SharePoint farm was displaying different numbers of users in AD groups when accessed from different Web Apps. The Web Apps in question were in different SSPs in the same farm.

I spent an hour of so with a colleague trying to work out why this might be and to be honest I gave up and moved onto something else. Luckily John was more tenacious and managed to resolve the problem that evening.

He happened to spot that the Membership and BDC Import status for one of the SSPs with incorrect AD Group Members read “Idle – Completed in 0h 0m 0s” – which clearly wasn’t right.

import[6]

On a hunch based on a similar problem he’d read about he cleared the SharePoint Configuration Cache. This resolved the problem. The list of issues resolved by clearing the configuration cache continues to grow!


Adding SQL Reporting Services to an existing cluster

Posted on June 11th, 2010 in General, Technology, Work by Jim Prince

This morning I had to add SQL Reporting Services to an existing SQL 2008 fail-over cluster. I started the installation selected the existing cluster instance and added the Reporting Services feature. However, when I reached the Installation rules page I got the below failure on the Existing clustered or cluster-prepared instance check. 

"The instance selected for installation is already installed and clustered on computer xxx. To continue, select a different instance to cluster."

SQL Reporting Services


After some investigation I found the following statement buried in the SQL Server 2008 Failover Clustering white-paper

"Note: SQL Server 2008 does not support adding features to an existing failover cluster instance, so Analysis Services cannot be added to an existing instance of SQL Server. To share a resource group with an instance of SQL Server, you must choose to install Analysis Services during the initial installation of SQL Server."

While this is referring to Analysis Services it must also apply to SQL Reporting Services. To get around the issue I carried out a stand alone installation of SQL Reporting Services in "FilesOnlyMode" and used the Reporting Services Configuration tool to create the databases on the fail-over cluster instance. 

I then carried out the same process on the other node in the cluster to create a scale-out deployment as documented here.

All in all quite a frustrating experience, but I got there in the end.

Posted via email from Jim’s Posterous Blog


User renames not being recognised

Posted on June 8th, 2010 in General, Technology, Work by Jim Prince

I recently resolved a problem where one of our applications wouldn't recognise the user type of accounts renamed in Active Directory. The solution was fairly generic so I thought I'd document it here in the hope that it helps someone else.

Basically if you renamed an account in AD and then signed into the application it would still believe you had the old user name. This was proved by navigating to a test aspx page containing the following

< % =System.Web.HttpContext.Current.User.Identity.Name %>

Curiously if you rebooted the server the correct user name was identified so clearly information was being cached somewhere. After some further investigation (by which I mean judicious use of Google) I stumbled across the following Microsoft Knowledgebase Article - http://support.microsoft.com/kb/946358

In a nut shell disabling the local SID cache fixed the problem, renamed users simply needed to re-authenticate to pick up the change to their username.

Note that this does not appear to be an issue under Windows Server 2008.

Posted via email from Jim’s Posterous Blog


Operating System Analogies

Posted on March 19th, 2010 in General, Technology, Work by Jim Prince

According to Security expert Charlie Miller "Mac OS X is like living in a farmhouse in the country with no locks, and Windows is living in a house with bars on the windows in the bad part of town."

I'd be inclined to agree but it's left me thinking what is Linux or more specifically FreeBSD? The only analogy I can come up with is like living on your own in an underground nuclear bunker with no doors or windows….after Armageddon.

I'm sure you can do better… 

Posted via email from Jim’s Posterous Blog


GD Library versions and Ubuntu

Posted on January 14th, 2010 in General, Technology, Work by Jim Prince

I'd been having a problem with GD being out of date on a LAMP installation on Ubuntu. This was odd because the installation is the latest (9.10) release. After some digging, it would seem that in Ubuntu PHP5 is not compiled with the version of GD that comes bundled with PHP! 

There's a really helpful article explaining how to recompile PHP5 with support for the latest version of GD here. You'll probably need to update the directories and file names depending on the release you're using but it worked for me.

Posted via email from Jim’s Posterous Blog


Publishing vsftp though ISA – 550 permission denied

Posted on November 24th, 2009 in General, Technology, Work by Jim Prince

A simple one that caught me out recently. I’d setup an FTP site using vsftpd which was published through ISA 2006. By default FTP Filtering on an ISA rule is setup as read only. So if you try to upload a file you’ll get an error 550 permission denied.

Read Only

The fix is simply to right click on the rule in ISA and select Configure FTP. Then un-tick Read Only. Click OK and Apply.


Dell OpenManage on CentOS 5.4

Posted on November 23rd, 2009 in General, Technology, Work by Jim Prince

I'd been having a problem configuring Dell OpenManage with CentOS 5.4 so I've written it up here so that;

  1. I don't forget it.
  2. It may help someone else with the same problem.

Basically when starting the daemons you'd get the following error;

/etc/init.d/dsm_om_shrsvc start
Starting DSM SA Shared Services: /bin/bash: line 1: 3119 Aborted /etc/delloma.d/oma/bin/dsm_om_shrsvc32d [FAILED]

I'd already made sure that all pre-requisites had been met and that the software installed correctly. A colleague even posted the problem on the Dell Support Forums. I got fed up waiting for a response so I installed strace to see what was going on behind the scenes. 

Looking at the system calls I could see lots of errors of the type;

open('/usr/lib/locale/en_UK.UTF-8/LC_IDENTIFICATION';, O_RDONLY) = -1 ENOENT (No such file or directory)

So I ran locale which produced

locale: Cannot set LC_CTYPE to default locale: No such file or directory
locale: Cannot set LC_MESSAGES to default locale: No such file or directory
locale: Cannot set LC_ALL to default locale: No such file or directory

The fix was to add;

export LC_ALL=en_GB.UTF-8
export LANG=en_GB.UTF-8

to /etc/profile and then run . /etc/profile.

Now the daemons start correctly and the locale command runs without errors.

 

Posted via email from Jim’s Posterous Blog


Error Code: 500 Internal Server Error. An internal error occurred. (1359)

Posted on October 18th, 2009 in General, Technology, Work by Jim Prince

I spent more time than I should have trying to diagnose, what turned out to be, a relatively simple problem last week.
 
We were using an ISA 2006 Array to load balance a Silverlight App between multiple web servers. Each server was added to a web farm in ISA and the rule was configured using the ISA publishing wizard. The app was accessed via the Internet over SSL with the SSL connection terminating on the ISA server.
 
Having applied the rule changes I attempted to access the website through the browser only to be greeted with a dirty great 500 internal server error. I double checked the settings for the rule and clicked the 'test rule' button and everything seemed to be correct. Slightly baffled I confirmed that I could access each of the web servers directly, and again didn't get any errors.
 
Next I clicked on the Monitoring option in ISA and navigated to the monitoring tab, I setup a filter to monitor traffic specifically for the rule and could see the requests were reaching the relevant ISA Server then bombing out with the 500 error.
 
It was only when I clicked the connectivity verifier tab that I noticed the big red x-marks next to each of the servers. It transpires that ISA had setup a connectivity verifier in the format https://*/ which had of course failed because the servers were serving requests over http not https. As each verifier failed ISA removed the offending server from the array leaving no available servers to handle requests!
 
Once I'd updated the connectivity verifier everything settled down and started working correctly.
 
In hindsight if I'd bothered to check the Event Viewer on each of the ISA servers I'd have spotted the root cause much sooner… you live and learn.

Posted via email from Jim’s Posterous Blog