WSS 2.0 Upgrade To WSS 3.0 Failed With Violation of UNIQUE KEY constraint 'AllUserData_Url'
Couple of days a ago I had a very strange problem performing full upgrade from TFS 2005 to TFS 2010, the TFS upgrade went just fine but the WSS upgrade from 2 to 3 throws many couple of wired errors.
The WSS 2.0 to WSS 3.0 upgrade suppose to be “easy”, but this time I was though I got to a dead-end:
- WSS 2.0 Prescan –> Scan finished without failure.
- Installed WSS 3.0 and choose to perform Upgrade.
- Configuration \ Upgrade Failed.
After a deep dive in couple of upgrade logs I found the following error:
[SPContentDatabaseSequence] [ERROR] [9/13/2010 1:43:45 PM]: Action 184.108.40.206 of Microsoft.SharePoint.Upgrade.SPContentDatabaseSequence failed.
[SPContentDatabaseSequence] [ERROR] [9/13/2010 1:43:45 PM]: Violation of UNIQUE KEY constraint 'AllUserData_Url'. Cannot insert duplicate key in object 'dbo.AllUserData'.
The statement has been terminated.
Violation of UNIQUE KEY constraint 'AllUserData_Url'. Cannot insert duplicate key in object 'dbo.AllUserData'.
This issue occurs when the WSS 2.0 site content includes discussion boards that have similar names.
For example, this issue occurs when the names of the discussion boards are Discussion Board1, Discussion Board2, and Discussion Board3.
In this case, the upgrade process cannot determine the unique name of each discussion board because the names of the discussion boards are similar.
To resolve this issue, use Microsoft Office SharePoint Designer 2007 or Microsoft Office FrontPage 2003 to rename the discussion boards before you try to upgrade from Windows SharePoint Services 2.0.
*** The discussion board names may looks completely different from WSS, but the real name will only revel him self using SharePoint Designer and front page. ***
Hope this helps.
How To: Create TFS 2010 Backup Plan
In my last post I wrote about Sept 2010 TFS Power Tools Release Available, this post will go though the steps in order to create TFS 2010 Backup plan from the “Team Foundation Server Administration Console”.
Open “Team Foundation Server Administration Console”
Navigate to TFS 2010 installation folder (“C:\Program Files\Microsoft Team Foundation Server 2010\Tools”) and run “TfsMgmt.exe”, this will open the Mgmt Console.
Click on “Team Foundation Backups” and “Create Backup Plan”
Choose the backup Network drop location and the retention (how long this backup is valid?).
Define when you would like to perform a backup
After you finished the Backup Plan wizard you can try it by clicking on the “Take Full Backup Now” button:
Sept 2010 TFS Power Tools Release Available
Brian Harry Just post regarding a new release of TFS Power Tools, this release of Power Tools also contains large number of bug fixes also mentioned in Brian’s Blog.
You find the download for the latest version of the Power Tools here:
As with the previous release, these require a TFS 2010 client. If you want Power Tools with a previous TFS client, you will need the 2005 or 2008 Power Tools.
There are 3 “new features” in this Power Tools release:
Team Foundation Server Backup Plan:
The backup plan power tool provides a complete, automate backup solution for Team Foundation Server 2010. Through the wizard interface you are able to choose which components of TFS you would like to backup, and create and automated backup schedule.
You can use the branches command to convert a folder to a branch, to convert a branch back to a normal folder, to re-parent a branch, to list branches, or to view and update branch properties. These operations are already available in Visual Studio 2010. The tfpt branches command extends these operations to support scripting.
Team Explorer Enhancements
- The View With feature allows a file to be opened with a specific editor from Source Control Explorer.
- The Clone Build Definition feature allows a copy of a build definition to be created.
- The Copy Work Item Shortcut feature places shortcut(s) to the selected work item(s) on the clipboard for easy pasting into email, etc.
Black Jack Using Scrum – Winner Winner Chicken Dinner
Last year I attended MIX10 conference in Las Vegas, because MIX is very near (Yes I’m GOING!!!!) I decided to plan my strategy of wining (I lost the last time…) in “Black Jack” based on Scrum Methodology.
Many thanks Yaniv Kessler for helping me finish this article.
So Before I Reveal My Custom Scrum Methodology let's talk about? -> What is Scrum?
Scrum is an iterative, incremental framework for project management and agile software development.
Although Scrum was intended for management of software development projects, it can be used to run software maintenance teams, or as a general project/program management approach.
Really what is Scrum?
[Full Article] SCRUM is a loose set of guidelines that govern the development process of a product, from its design stages to its completion.
It aims to cure some common failures of the typical development process, such as:
· Chaos due to changing requirements - the real or perceived requirements of a project usually change drastically from when the product is designed and until it is released. Under most product development methodologies, all design is done at the beginning of the project, and then no changes are allowed for or made when the requirements change.
· Unrealistic estimates of time, cost, and quality of the product - the project management and the developers tend to underestimate how much time and resources a project will take, and how much functionality can be produced within those constraints. In reality, this cannot be predicted accurately at the beginning of the development cycle.
· Developers are forced to lie about how the project is progressing - When management underestimates the time and cost needed to reach a certain level of quality, the developers must either lie about how much progress has been made on the product, or face the indignation of the management.
Among the most important ideas of scrum are developing in short iterations and having daily meetings with your team, these ideas help tackle and fix problems quickly, help measure the project’s velocity and finally allows for a more accurate estimation of the project’s completion date.
If you want to know more about Scrum in couple of minutes I’ll recommend you to see Scrum in under 10Min by Hamid Shojaee
Let’s Get Started – Scrum Vegas Style
Everyone who comes to Vegas and wants to gamble has a “Product” ready:
Product = “Earn A Lot Of Money & Have A Great Time” -> It is the “What” that will be built or achieved.
So with this idea in mind, I started planning my Product Backlog (integrating some important lessons from the last visit) by filling my wish list:
Sprints – Define how long you’re going to Play
The general recommendation is that iterations should be as short as possible, in Scrum max 30 days for sprint, each Sprint should contains the Goal of a specific sprint – My was – Not Losing!
Because my Vegas trip is limited only for 4 days I decide to schedule 8 Sprints (it’s also recommend to create at least 4 sprints).
* You need to define the total time (Money) you can afford to achieve your Product. – My was 1000$ or 4 Days
Sprint duration will be no more than 7 hours (Normal is between 3-30 days) and will include between 125$ - 250$ (In Development this is Work Remaining) – It is Very Important not to exceed the amount above – if so, this is the Time to speak with your Scrum Master (See below about Roles) and discuss how to continue with our Sprints and check if the Product release will be delayed or worst will not achieved? (Depends on how much money you lost :-()
After each Sprint you need to perform a 1 hour break (The normal is 15 minutes) that will include a stand up meeting (Monitor your progress – Burn Down Chart – See Below) with your Scrum Master (As I wrote above discuss all your problems and plan ahead), Pipi time, Search for another Table (Change Table change Luck) and Rest, because each day contains 2 Sprints. (Not Normal)
Roles & Tips
This "Product” cannot rely solely on your shoulders, So Let’s meet the Team
The main roles in Scrum are:
- The “ScrumMaster”, who maintains the processes (typically in lieu of a project manager)
- The “Product Owner”, who represents the stakeholders and the business
- The “Team”, a cross-functional group of about 7 (Default) people who do the actual analysis, design, implementation, testing, etc.
In our “Product” I’ll have the “Product Owner” role (After all I know what I want and it’s my Money :-D) and the “Team” role (I’m not letting anyone playing with my money….).
But the “ScrumMaster” has to be someone you trust (anyone beside you) in helping you. Now, you’re probably asking yourself why would you need someone’s help?
- If you are losing too much money, you become a “compulsive gambler” and you don’t want to stop or can’t – your Scrum Master is needed to pull you back to your room until the next sprint.
- On the gambling floor, the Drinks are FREE, if you can’t control yourself - counting cards becomes impossible – the Scrum Master will help you count the cards.
- You’re gambling and manage to control yourself from drinking alcohol, but than a Show comes up and couple of Beautiful Ladies are dancing just around your table and cause you to lose focus – Again, the ScrumMaster has to be there and ask those ladies to go and wait in your room, No No No – the ScrumMaster should help you continue your game by removing those obstacles!!!
- The ScrumMaster has to be someone you Trust and even in very bad situations, such as when you are drunk. His words must have a deep effect on you. (Thanks Adam)
- Buy your return Flight Ticket before and make sure this is “No Refund Ticket” – so you can’t use your way back home as stakes in a gamble.
- Don’t come to play with 10$(If you don't know how much you can spend, use a subject expert matter to examine your budget and define a reasonable amount to Play – Same as Estimated Work) this is still a game of luck (Same as Life), have a basic amount to help you cross the BadMojo. :-D
Start and Track
After each sprint it’s very important to monitor your progress (This is what you do in the Stand Up Meeting) using “Burn Down Chart” - The “Burn Down Chart” is the number 1 reason for Scrum popularly, Burn Down shows remaining work (or Remaining Money) in the sprint backlog, this will help you see if your product is progressive smoothly.
Using the “Burn Down Chart” and it’s very easy to calculate the “Burn Down Velocity” - Velocity only helps you make achievable commitments in future iterations.
Finally “Burn Down Chart” helps you to provide a good estimation about the project’s completion date.
For example: if you allocate between 125$-250 (Developer = Remaining Work) for each sprint and from Sprint 1 to Sprint 2 I lost 500$ (1400$ - 900$) I could use the “Burn Down Chart” to see that in the current velocity (the velocity in which you lose money) you are going to lose all of it when we get to the 4th Sprint. (This is good for Development Team because this means that on the 4th Sprint the remaining work will be 0 and you’re done, but certainly not good for me.)
You might say to yourself that it is only an approximation and not the real thing- You are absolutely right - Burn Down shows"ESTIMATION"
but the graph below shows the same result in life as it shows in the graph above.
I hope this article helped you to understand Scrum from a different perspective and made you think about moving to developing\playing with Scrum.
Next time I get to Vegas, I’ll try my Black Jack Scrum Methodology and you can be sure I’ll let you know how it fared!
Enjoy – Winner Winner Chicken Dinner