Monday, February 26, 2007

SQL 2005 - Database diagram

This error always get me and it reminds me of something Brian has said on one of his agile presentations: First time it occurs, fix it. Second time is coincidence. Third time, refactor it (or something like that...) This is like the 4th time I get this error, so I'm writting it in here so that it get indexed and will help me remember how to fix it.

If you tried to restore a SQL 2000 database backup into a SQL 2005. You will find out that the database diagram does not upgrade easily. If after restoring the database, you click on the database diagrams and get this error:

Database diagram support objects cannot be installed because this database does not have a valid owner. To continue, first use the Files page of the Database Properties dialog box or the ALTER AUTHORIZATION statement to set the database owner to a valid login, then add the database diagram support objects.

There are 3 solutions to this problem:
a. if the default compatibility is other that SQL 2005(90), then set the compatibility level back to sql 2005. This is done by right click on the database then select properties --> Options.

b. Execute the following command on the query analyzer window
then after running this command, you can go ahead and add a new database diagram.

c. If you right-click the database you are interested on. Then select properties, select Files you will see that there is no owner specified on the text box for this database. Enter a valid userID (i.e. sa) in the box. Then the database diagram will start working.

Friday, February 23, 2007

How to Setup Windows Sharepoint Services 3.0

Download the Windows Sharepoint Services 3.0 from the Microsoft Site here. If you are installing it on a Windows 2003 machine, you might get this error:

Setup is unable to proceed due to the following error(s):
-This product requires at least Windows Worflow Foundation version 3.0.4203.2, which is part of the .NET Framework 3.0.
-This product requires ASP.NET v2.0 to be set to 'Allow' in the list of Internet Information Services(IIS) Web
Correct the issue(s) listed above and re-run setup.

Go ahead and download the .NET 3.0 redistributable here.

after installing it and correcting the IIS issue. Run the WSS setup again and select Advanced setup. Then you will come to an screen where you can specify the Server type. From the documentation, this is the difference between Web Front End and Stand-Alone:

Web Front End – only install components required to render content to users. Can add servers to form a SharePoint farm.

A Web server accepts HTTP requests from client computers and passes them to an application server, a database server, or some other computer for processing. When the additional processing is performed, the Web server sends the result back to the client as a Web page. A Web server cannot be used for data storage, search, or as an application server.

Stand-alone – Install all components on a single computer (includes embedded database engine). Cannot add servers to create a SharePoint farm.

A stand-alone, or basic, installation configures a single computer with all the necessary files and settings to create a fully-functioning Windows SharePoint Services implementation, including Web server, application server, and database. An embedded database engine is installed and configured to provide data storage capability. Although the embedded database engine is based on Microsoft SQL Server architecture, it has the following limitations:

  • Lack of enterprise features support.
  • Limited to one CPU.
  • One gigabyte (GB) memory limit for the buffer pool.
  • Databases have a 4 GB maximum size

For the developer machine, choose the stand alone option. After the installation finishes, start the configuration wizard. You might be prompted to start IIS, Sharepoint Admin Service, Sharepoint Timer Service, Click YES on that prompt.

Once this setup is done, you will have a Sharepoint site working on your local machine. You can now create sites with workflows on it and specify different options. It seems that the only workflow you can create is Parallel workflows. I will need to do a little bit more researching on this.

Thursday, February 22, 2007

Delete all RSS feeds from IE 7 on Vista

Annoying. If you need to delete all of the RSS feeds setup on your IE7, you will have to select each entry, right click, select delete, select OK. A quicker way is to go straight to the folder:


and delete them from there.

Tuesday, February 20, 2007

BizUnit and Visual Studio Team Suite

To get BizUnit working, download the latest version of BizUnit from gotDotNet. This is version
2.2 at this point.

Once you install this application (make sure you add the .MSI extension to the file you download). You will need to recompile the bizUnit libraries.

a. Load the BizUnit solution
b. Open the BiztalkSteps project.
c. Open the HostConductorStep.cs file
d. Go to the Execute method and change the credentials to match your environment.

as you can tell the first item is the userID and the second is the password:
creds[0] = "thunderbolt\\administrator";
creds[1] = "1*ehorizon";

e. Now right click on the BiztalkSteps project and rebuild it.
f. Rebuild the Microsoft.Services.BizTalkApplicationFramework.BizUnit project.

This should all be the binaries that you need to run the BizUnit.

Additionally, there are 3 more projects included in the solution:
a. LoadGenSteps
b. MQSeriesSteps
c. OutlookReadStep

For the LoadGenSteps, if you dont have the Load Generation Tool, then when you try to compile the LoadGenSteps project will give you this error:
Error 52 The type or namespace name 'LoadGen' could not be found (are you missing a using directive or an assembly reference?) C:\Program Files\Microsoft Services\BizUnit 2.2\Src\TestStepLibraries\LoadGenSteps\LoadGenExecuteStep.cs 21 7 LoadGenSteps
and this other error:
Error 53 The type or namespace name 'LoadGenStopEventArgs' could not be found (are you missing a using directive or an assembly reference?) C:\Program Files\Microsoft Services\BizUnit 2.2\Src\TestStepLibraries\LoadGenSteps\LoadGenExecuteStep.cs 102 53 LoadGenSteps

To fix this download the LoadGen tool from the Microsoft site. Install it and then recompile.

For the OutlookReadSteps, when you try to compile this project you will get this error:
Error 51 The type or namespace name 'Interop' does not exist in the namespace 'Microsoft.Office' (are you missing an assembly reference?) C:\Program Files\Microsoft Services\BizUnit 2.2\Src\TestStepLibraries\OutlookReadStep\OutlookReadStep.cs 25 35 OutlookReadStep
You can just ignore this for now, since outlook might not be installed on the local machine.

Now we are ready to write unit test against any of the artifacts for Biztalk. Create your Test project and add a reference to the BizUnit assembly:


On the TestInitialize read the SETUP.XML. Inside each of the TestMethod read the TEST#.XML containing your settings for that particular test.

Your code will look something like this:
using Microsoft.Services.BizTalkApplicationFramework.BizUnit;

public void Setup()
// Stopping and Starting BizTalkHostInstance
BizUnit bizUnit = new BizUnit(_PathLocation + "Test_Setup.xml", BizUnit.TestGroupPhase.TestGroupSetup);

public void ValidateDiscount_Rejected()
// Stopping and Starting BizTalkHostInstance
BizUnit bizUnit = new BizUnit(_PathLocation + "Test_1_DiscSystem.xml");
For BizUnit to work, it reads the configuration files. Each configuration file will contain the same regions into it:
a. TestSetup
b. TestExecution
c. TestCleanup

this will stop and start the host, to make sure that we are using the latest biztalk assembly. A typical configuration file for the setup will look like this:

this is the configuration file that will execute the actual unit test. Noticed that you can use any XPath queries inside the ValidationStep. This XPath queries will be your asserts into the values inside the message.

Friday, February 16, 2007

I have won the lottery, South African Lottery that is.

Yes you read it right, I have won the South African NATIONAL Lottery. Please read the section in RED if you would like to participate in next year's drawing, because I have won this year World Cup. :D

Ahhh, maybe I have won this lottery as a gesture of gratitude for all of my help, regarding the frozen African account from the Royal family. Which I helped liberated by providing my Credit card and Bank account number.

And they said that there is no such a thing as free money… :D [<--my notes]


SERIAL NUMBER: 144-66584
BATCH NUMBER: BT-4478474121P

DRAWS NUMBERS: 6, 7, 11, 21, 26, 37, 44.


We are pleased to inform you of the release, of the long awaited results of the South African 2010 World cup Bid award INTERNANTIONAL LOTTERY PROMOTION held in Zurich, Switzerland on the 12th AUGUST 2006.You were entered as dependent clients with: Reference SERIAL NUMBER: 144-66584 and Batch number BT-4478474121P.

Your email address attached to the ticket number: 74454774 that drew the lucky winning number, which consequently won the sweepstake in the first category, in four parts. You have been approved for a payment of US$2,000,000.00 (Two million United States Dollars) in cash credited to file reference number: IPL/4249859609/WP1.This is from a total cash prize of US ($400,000,000.00) shared among the first 200 Hundred and lucky winners in this category world-wide. <--This beats the MegaMillions.!!!

All participants were selected through a computer ballot system drawn from (100,000,00) companies and individual emails address, as part of our international promotion program.
Due to mixed up of some names and addresses, we ask that you keep this award personal, till your claims has been processed and your funds remitted to you. This is part of our security measures to avoid double claiming or unwarranted taking advantage of the situation by other participants or impersonators, You are therefore directed to contact your claim agent immediately on receipt of this massage for quickened and urgent release of your wining fund. His contact information is as follows: <--Massage? Hummm which site did I go to…. ;)

NAME: MR. James Zulu. <--Related to Mr. Zulu?

TEL: +27-73-135-8128

He is your agent, and responsible for the processing and transfer of your winnings to you. YOUR SECURITY FILE NUMBER IS Z-90237-Y67/U4 (keep personal) Remember, your winning must be claimed not later than (1 MONTH) From the date of acknowledgement receipt. Failure to claim your fund will be added to the next 10 Million Dollars lottery promotion. Furthermore, should there be any change in your address, do inform your claims agent as soon as possible. Once again, Congratulations.





Yours Sincerely,

MR. Koya Williams.

Monday, February 12, 2007

Vista User Access Control (UAC)

When installing Vista for the first time, you will need to install a whole bunch of development tools. The easier way to install all of the dev tools, is to Turn off the UAC (User Access Control) temporarily, while installing all software. Then once you are done installing them, turn it back on.

This is how you access this feature:

Control Panel --> User Accounts --> User Accounts

Friday, February 09, 2007

Exposing Orchestration as Web Service

Created a very simple orchestration and then deploy it as a web service. Inside the orchestration, on the message assignment calculate the age of the customer based on a distinguished property (BirthYear). Then place this calculated field back into the message for the Age element.

Here is the schema being used:

This is the simple orchestration to test this

On the construct shape, this is the code inside the assignment shape:
outMsg = InMsg;
iAge = System.DateTime.Now.Year - InMsg.BirthYear ;
outMsg.Age = iAge;

Configuration basic:

The port is setup as a One-Way port with Public - no limit for the access restrictions.

On the IIS manager, removed all of the restrictions

when publishing the orchestration, select the following settings:

the Namespace in here is the same namespace than the schema used inside the orchestration. However this is not a requirement for the Orchestration to work.

Once this orchestration is published. Trying to call it from a GUI client (web studio, Windows forms, etc...) you might get several distinct errors on the Application Event Log.

a. Isolated Host
When trying to call it, if you get this error in the Event Log:

The Messaging Engine failed to register the adapter for "SOAP" for the receive location "/SimpleWeb_Proxy/SimpleWeb_Main_IncomingPort.asmx". Please verify that the receive location exists, and that the isolated adapter runs under an account that has access to the BizTalk databases.

This error, tells you that you have not configure the isolated host correctly. The account used, is not part of the Isolated Host User Group.

b. Routing Failure
Event Type: Error
Event Source: BizTalk Server 2006
Event Category: BizTalk Server 2006
Event ID: 5778
Date: 2/11/2007
Time: 1:04:37 PM
User: N/A
Computer: QSI_TEST
The Messaging engine failed to process a message submitted by adapter:SOAP Source URL:/SimpleWeb_Proxy/SimpleWeb_Main_IncomingPort.asmx. Details:The published message could not be routed because no subscribers were found. This error occurs if the subscribing orchestration or send port has not been enlisted, or if some of the message properties necessary for subscription evaluation have not been promoted. Please use the Biztalk Administration console to troubleshoot this failure.

For more information, see Help and Support Center at

The message will be suspended. Looking at the Hub Group you can see why this message is being suspended: 0xC0C01B4e(Routing Failure Report).

Right click on the Routing Failure Entry, and then select Troubleshoot Routing Failure, then select Find failed service instance.

If you look at the service details of the message, you can see that the Message Type is empty.

When the message type is empty or not defined, it might be because the pipeline define in the receive location was not set to be an XML pipeline. Change the pipeline and it should work.

Monday, February 05, 2007

Biztalk Pattern Wizard - Beta 1

So Jon Flanders, has put the new pattern wizard for Biztalk 2006 installation on Codeplex. This wizard will allow you to create some of the the most commonly used Enterprise Patterns in Biztalk 2006.

awesome job.!!

Thursday, February 01, 2007

Exporting BAM Activities from Excel 2003

When creating a BAM activity. I wanted to export it to XML.

I get this error: Invalid procedure call or argument

I have read in this BAM FAQ ,that this is problem is due partly because of a security patch from Microsoft.

However, when I followed the instructions to get the patch installed, I get this error message:

Installation Error: File not Found
A required installation file SKU111.CAB could not be found

However, looking at my installation CD, I can't seem to find that particular CAB file. Then I found the Microsoft Knowledge Base 896885 addressing this issue. It has to do with the installation CD that was used to install the product. Apparently the customer here installed the office product with the retail version, and I am running Enterprise version.

Office Professional Enterprise Edition 2003 SKU011.CAB
Office Professional 2003 (Retail) SKU111.CAB
Office Professional 2003 w/ InfoPath (Retail) SKU1E3.CAB

Running the LISTool did not fix the problem. I had to re-installed with my Enterprise version of Office in order to get Excel patch correctly, so that I can export the BAM activities to XML. What a pain.