Thursday, July 12, 2007

Office SharePoint Server 2007 on a single server install failed

I have had a situation happen on occasion where Office SharePoint Server 2007 on a single server (the basic install option) fails. The error can occur for a variety of reasons, needless to say the error log message maybe obscure (it was to me). So here is what it looks like when I was installing:

I installed Microsoft Office SharePoint Server 2007 as a "Basic" install. Then I kicked off the install ...








Somewhere along the configuration wizard, the install would fail. I tried a couple more times after trying different things ... nothing would work.


The log file had the following error:

06/26/2007 01:43:48 8 INF Creating connection string for config db SharePoint_Config_21cd986b-83ca-4908-a9f7-89871f6e458d server MOSSMACHINE\OfficeServers
06/26/2007 01:43:48 8 INF Creating connection string for admin content db SharePoint_AdminContent_9752c1e5-fd30-4a9b-9dbb-e853e39bc837 server MOSSMACHINE\OfficeServers
06/26/2007 01:43:48 8 INF Using NTLM for sql connection string
06/26/2007 01:43:48 8 INF Openning configdb so that I can join it at server MOSSMACHINE\OfficeServers database SharePoint_Config_21cd986b-83ca-4908-a9f7-89871f6e458d in eval mode
06/26/2007 01:43:48 8 INF Now joining to farm at server MOSSMACHINE\OfficeServers database SharePoint_Config_21cd986b-83ca-4908-a9f7-89871f6e458d
06/26/2007 01:43:48 8 ERR Task configdb has failed with an unknown exception
06/26/2007 01:43:48 8 ERR Exception: System.InvalidOperationException: Windows SharePoint Services configuration infrastructure is not initialized. You must wait until completion before joining another server to the farm.
at Microsoft.SharePoint.Administration.SPFarm.Join()
at Microsoft.SharePoint.PostSetupConfiguration.ConfigurationDatabaseTask.CreateOrConnectConfigDb()
at Microsoft.SharePoint.PostSetupConfiguration.ConfigurationDatabaseTask.Run()
at Microsoft.SharePoint.PostSetupConfiguration.TaskThread.ExecuteTask()


Somehow it just couldn't connect to the configuration database. As I mentioned above, I tried all the things that made sense to me ... to no avail. Fortunately I ran into this article on TechNet: Install Office SharePoint Server 2007 on a stand-alone computer

In it, I found the following line:

Note:

If you uninstall Office SharePoint Server 2007 and then later install Office SharePoint Server 2007 on the same computer, the Setup program could fail when creating the configuration database causing the entire installation process to fail. You can prevent this failure by either deleting all the existing Office SharePoint Server 2007 databases on the computer or by creating a new configuration database. You can create a new configuration database by running the following command:

psconfig -cmd configdb -create -database


Running that line solved my problem ... if this solves your problem, remember to delete the configuration databases which were created from the failed attempts and aren't being used.


Hope this helps someone. Good luck!

And my family grows

Its been a while since I have written. Well its time to break the news ... we had a beautiful baby girl. She's great ... time consuming and fun. We are trying to get back into the swing of things. Here is one of my favorite pictures of her. This is our first baby after eight years of marriage. I am happy we had eight years to solidify our relationship ... I can see a new baby straining a young fresh marriage; it can be done nonetheless. Babies are great though ... I have to admit though: I am beginning to have a better understanding of my parents.
Tuesday, March 27, 2007

VMWare Virtual Hard Disk Resize

We use various VM templates which we sysprep after configuring. I have used both Virtual PC and VMWare Workstation. I have had far better results and experiences with VMWare workstation. Most of our VM templates were created using 8 GB virtual hard drives. Often we added a second drive to handle additional data and expand our capacity. Recently my work with SharePoint 2003 and MOSS 2007, I have had very little success keeping my primary drive to obediently remain a nice 7GB or below (to prevent swapping and such). I’ve even moved the virtual paging memory file to my secondary virtual drive, but in the end this has been frustrating and limited.

In my frustrationfrustrated smiley, I sought out a solution on the web. I tried various methods for resize my existing virtual drive … some with more success than others. I am sharing the method which I found the easiest and least error prone for what I needed. Having said that, this may not work for you and you should backup your VM’s and data before attempting any of this. Try this at your own risk!

I found a program called Virtual DiskManager from RDPSoftware which does that trick. This program is a front-end for VMWare’s vDiskManager. The VM templates were created in VMWare Workstation 4.5. Currently (at the time of this writing), I am using VMWare Workstation 5.5. The following are the steps I took to resize my virtual drive from 8 GB to 30 GB (you can easily resize it to any size you require as far as I can tell):

Resizing the Virtual Hard Drive

  1. Opened the original VM Template in VMWare and upgraded it to a 5.5 VM.
  2. Create a full clone from the VM to eliminate any snapshots.
  3. Run Virtual DiskFactory (VMWare DiskManager would work too) and click on the Expand tab.Disk Factory image of the Expand interface
  4. Enter the desired target size (30 GB in my case).
  5. Browse and choose the Virtual Disk Drive to resize.
  6. Click on Expand Disk. Mine was disabled because I did step 5 and then step 4; Click on the browse button and close the dialog … it should enable the button.
  7. Go get coffee while you wait Smiley
  8. Once complete, you can use your newly resized VM Template. I have backed up these VM Templates so that I don’t have to perform these tasks again.
Virtual Disk Resize from 8 GB to 30 GB
Repartitioning to use the new space

Now for the interesting part … if you open the VM (don’t do it yet) you will find that you have a 30 GB drive but you still have the 8 GB partition. In this example, I want to use all 30 GB but this poses a problem since the operating system is sitting on the primary partition; the same drive I want to repartition. My solution is to map this virtual drive as a secondary drive to a different temporary VM. I have created a separate temporary VM from the same VM template for repartitioning the resized virtual drives.

  1. Create another VM instance (preferably from the same VM Template) to use for repartitioning.
  2. Run Virtual DiskFactory (VMWare DiskManager would work too) and click on the Rename tab.
  3. Rename the newly resized virtual drive to make sure it won’t conflict with the virtual drive from our repartitioning VM. I renamed my virtual drive to “RenamedDisk.vmdk”.
  4. Run Virtual DiskFactory (VMWare DiskManager would work too) and click on the Convert tab. This step may not be necessary for you, you can try step #6. If you cannot add the drive, come back to this step.
  5. Convert your virtual drive to a Growable … catch up on some emails and the latest YouTube videos.
  6. Edit the Virtual Machine Settings and add the existing virtual drive (i.e. RenamedDisk.vmdk). Mine is now on IDE2.
  7. Start the VM.
  8. Go to the Administrative Tools and run the Computer Management console. Under Disk Management, make sure the second drive is recognized and has a drive letter. If not, add it and give it a drive letter.
  9. Using the diskpart.exe tool from Microsoft and the “How to use DiskPart.exe”. Force the partition to take the new partition size. This is from the How-To with a couple modifications:
    1. In a command prompt, run "diskpart.exe"
    2. Type "list volume" to display the existing volumes on the computer.
    3. Type "Select volume [volume number]" where volume number is number of the volume that you want to extend.
    4. Type "extend [size=n] [disk=n] [noerr]" to extend the volume. For example, in my case I used "extend" to use all the space.
    5. Once done, type "exit" to quit Diskpart.exe.
  10. Now you can restore the resized, extended ad renamed virtual disk to the original VM location. You can remove the old drive reference and add the new drive as is, or you can rename the disk to its original name. The VM should load just fine, and the drive should have taken its specified size.
Monday, March 19, 2007

Content Approval vs. Approval Workflow

Understanding the difference between content approval and approval workflow will alleviate much confusion when you begin to use SharePoint. Content approval is a core SharePoint process which is used for publishing documents. This process provides the ability to limit the visibility of a document to approvers until the document is approved to be published. This will change the security of the document such that all users who have access to the list will be able to view it. Approval workflow is a workflow designed for approving documents. When the workflow is initiated, the document approval status is set to “Pending” and a task and an email is created for the specified users and groups to approve the document. Once the task is opened and completed, either “Approve” or “Reject”. The document approval status will change to “Approved” or “Rejected”. Approval workflow does not change visibility on the document. Fortunately, once a list or document library has the content approval feature enabled, the approval workflow will provide an option to link both processes, such that a document only be visible to approvers until the document is approved through the approval workflow. Once approved, the document will be approved and visible to all users.

Wednesday, March 14, 2007

InfoPath web-enabled supported features

InfoPath web-enabled forms are extremely useful, and are one of the features helping MOSS enter new industries. These forms are rendered such that a variety of web browsers (not just IE) can use and view the forms. This is powerful because you can now create forms which have a specific look and feel including limited custom code to display and capture information. For companies with legacy systems such as Lotus Notes, this opens new doors where they can use InfoPath forms to move their Notes applications into. Now, this isn't what I would advise, but it does open that door if it is a strict requirement. Having said that, there are many limitations to web-enabled forms. I was quite surprised to find how limited as well. Understanding the technology behind InfoPath helped me understand why those limitations were there, and how to find some workarounds (I will share these as I can in future posts). InfoPath is based on Xml and Xsl. Thus, the presentation has to be handled by Xsl which is why it has many limitations. I can't go into the technology specifics, but there are many Xsl and Xml tutorials out there. I have to say it did make me feel a little more at peace to know that (I was quite annoyed by the limitations). It still don't make me love web-enabled InfoPath forms, but I know how to work with them and achieve the behaviors I need.
For a complete list of the features supported by InfoPath web-enabled forms go to http://office.microsoft.com/en-us/infopath/HA102040851033.aspx.

Creating a custom group/role with unique permissions

SharePoint creates several groups with permissions, which are used as roles, when a site collection is created. Optionally, more groups with permissions are created when additional sites are created. The following instructions can be used to create a custom group with permissions for a particular need or requirement.

  1. Click “Site Actions”
  2. Click “Site Settings”
  3. Click “People and Groups”
  4. Click “Site Permissions” (left column)
  5. At the top-site, Click “Settings”
  6. Click “Permission Levels”
  7. Else, if inheriting permissions from parent site:

a. Click “Actions”

b. Click “Manage Permissions of Parent”

c. Click “Settings”

d. Click “Permission Levels”

  1. Else, if not inheriting permissions from parent site:

a. Click “Actions”

b. Click “Edit Permissions”

c. Click “Settings”

d. Click “Permission Levels”

  1. Click “Add a Permission Level”
  2. Enter name of permission level (ex. “Author”)
  3. Under List Permissions, check “Add Items” and “View Items” (and if necessary “Open Items”)
  4. Make sure “Edit Items” and “Delete Items” are unchecked
  5. Under Site Permissions, check “View Pages” and “Open”
  6. Click “Create”

Workflows in SharePoint: When to use Designer vs. Visual Studio?

SharePoint has two primary tools available from Microsoft for design and development: SharePoint Designer 2007 and Visual Studio 2005. Both tools allow creating custom workflows in SharePoint. SharePoint Designer 2007 is a tool used when a no coding approach is required and a one time solution workflow is required. The SharePoint Designer allows users to create workflow by creating conditional logic based on the list’s data, and the user can publish the workflow directly to the list or library for immediate use. A one time solution workflow is a workflow that will be specific to a particular site and library in SharePoint. The workflow will not be portable and it is only configurable through the SharePoint Designer tool. Visual Studio 2005 can be used to create complex and logic rich workflows through programming. The workflows can be designed and developed to be portable and configurable. To deploy workflows design and developed with Visual Studio 2005, an administrator must approve the workflow as trusted code and upload the new “feature” to the SharePoint server. Once uploaded, the site collection administrators will have to “Activate” the new workflow before users can use the workflows in their lists and libraries.


Tuesday, March 13, 2007

Making a mark on the web

Hi Everyone,

I hope to use this blog to document my SharePoint finding's among other things. Often I have learned things I'd like to put somewhere, but I have yet to actually do this as I'd like. A blog isn't exactly what I've had in mind, but after two years of thinking this ... I figure it works for others, why not? right?! So I will share my findings with others ... some things of course won't make it here as they may be specific IP to a client or my employer. Otherwise, I hope this will benefit me and others. I look forward to reading positive feedback as well. I invite other to help me enrich the knowledge shared here.

I am a senior consultant for the Gimmal Group in Houston, TX. Our company specializes in Enterprise Content Management. Previously, we have been a Documentum shop; With the emergence of MOSS 2007, we have added MOSS as a strategic tool which compliments Documentum and other ECM systems. Having said that, SharePoint isn't an full blown ECM system, but it offers many content management features to business for a very affordable price.

I look forward to writing more ... later

-Brian