Windows Server 2003 ships with UDDI server that is out-of-the-box compatible with SQL Server 2000 as a storage engine. If you don’t have any databases, the installer can also install local MSDE engine for you.
I was recently involved in a CSF deployment that utilized clustered SQL Server 2005 instance as a storage for all CSF and application databases and we decided to study whether it was possible to configure it for UDDI as well making the installation distributed.
Microsoft has a knowledgebase article that refers to the case where you need to install on a local SQL Server 2005. However, in our case, the UDDI installer did not allow us to select the SQL cluster that we had sitting in the network, so we needed to take matters into our own hands.
So let’s describe the servers we had:
UDDI Server: This should be the host of the UDDI.
Sql Server: The SQL Server 2005 cluster
Here are the high-level steps we had to take in order to install UDDI on SQL2005 or to move the database to SQL 2005:
-
Install UDDI normally with MSDE. If it fails, see below for tips.
-
Test that UDDI is accessible with a browser (http://localhost/uddi).
-
Stop MSDE UDDI instance service.
-
Copy UDDI database files from the UDDI data folder to SQL Server machine’s appropriate data folder. If you have a clustered instance, you may need to place log files on a different shared disc etc.
-
If needed, create an AD account that the UDDI service will use to access the database. We’ll call it UDDIService here.
-
Attach the database files to SQL Server. Set access rights for UDDIService account for this database.
-
On UDDI server, modify registry values at key LOCAL MACHINE\Software\Microsoft\Uddi\Database to point to the SQL Server instance instead of local machine instance.
-
Modify IIS UDDI application pool and set the Identity that the pool will run under as UDDIService account created earlier.
-
Add UDDIService account into the local IIS_WPG group.
-
Restart IIS (iisreset)
-
Use browser to test that UDDI is up and running
-
You may then proceed and uninstall the MSDE instance from the UDDI server.
If UDDI installation fails with an error in MSDE setup, you may need to install a temporary, local SQL Server instance on UDDI server. For this to succeed, refer to this Microsoft knowledge base article first.
The method described here also applies to the case where you want to load-balance (NLB) the UDDI server and keep the data in one place. That we did as well.
Thanks for this useful post. Did your MMC snap-in “UDDI Services Console” connect successfully to the DBServer components after moving the database from MSDE to SQL Server 2005 ?
Yes I think so, the MMC snap-in works. One additional step we had to take that is missing from above is the transfer of additional UDDI error messages from the system tables. Without those, some errors from UDDI’s stored procedures may look different that you’re used to. Actually, you will see quite weird errors instead and those might be quite confusing.