// T3chNicaL.LEad

“If you don’t know where you’re going, you’re unlikely to end up there.” – Forrest Gump

SharePoint Language Packs and Windows Server 2008 November 18, 2008

We are currently busy with a pilot roll out in Europe and while deploying the farm with various updates I came across the fact that not a lot of information on Windows Server 2008 and Language Packs are available.  In any event, I soldiered on and eventually got it to work thanks to lots of trial and error and a colleague from home.

Now most if not all websites I consulted prior to installing the language packs simply mention that you need to install the MOSS Language Packs if you are running SharePoint and there is no need for the WSS Language Packs.  Well, thanks to a colleague that figured this out the hard way, we installed the WSS language packs after the MOSS language packs (yes I frowned as well) and badaboomtish, the language features started working.

I find it very odd that this isn’t well documented on the net, but ja, here is the installation path I took to get our server farm up and running language packs, infrastructure updates included:

- Scripted MOSS Installation (Not slipestreamed as I’ve read about some issues with it)
- WSS and SPS SP1
- Infrastructure Update (read more here)
- All necessary updates (August Cumulative et al, read more here)
- WSS / MOSS Language Packs (order does not matter)
- Language Pack Service Packs

Note:  If you are busy with a particular update, complete that on all the servers in the farm before moving to the next.  For example, don’t install WSS language packs and move onto the MOSS language packs without installing them on all and executing the configuration wizard.

Pay special attention to each step and if the wizard fails to update (Configuration Failed) there is a 99% chance that your server is not on the same patch level (one or two behind) as the other servers.  Trust me, spending an extra hour on a large farm will save you days in the long run. 

I’ve seen posts where people are asked to add missing files to 12 hive directories and dll’s to the bin directory and honestly, if it gets to that, it’s time to re roll.

If I come across any other funky workarounds I will be sure to update this post.

Happy Deploying.

 

Quote of the Day November 4, 2008

Filed under: Quote of the Day, Software Development — Lawrence Cawood @ 9:22 pm
Tags:

“The first 90% of the code accounts for the first 90% of the development time. The remaining 10% of the code accounts for the other 90% of the development time.” – Tom Cargill

 

MOSS 2007 Visio Shapes October 30, 2008

Filed under: SharePoint — Francois H. Pienaar @ 1:30 am
Tags: ,
MOSS 2007 Visio Shapes

MOSS 2007 Visio Shapes

I came across a very nice collection of Visio shapes for MOSS 2007.  They were created by  Tom Short and they are free.

You can download them here.

 

Vista Gadget: Team Build Monitor October 29, 2008

Filed under: Microsoft — Lawrence Cawood @ 10:09 pm
Tags: , , ,

Windows Vista sidebar gadget that lets you monitor builds in Team Foundation Server.

Video: Walkthrough: Build Monitor Gadget

 

K2.net 2003 Troubleshooting: The Basics October 28, 2008

Faced with an issue?  Not sure where to start looking?  Never fear, the following article will outline the basics of troubleshooting any K2.net 2003 related problem.

K2.net 2003 consists of a number of modules. Each module has it’s own unique function, but the core modules are used in all deployments. They are:

- K2.net 2003 Server: The actual workflow engine;
- K2.net 2003 Service Manager: The tool that manages the server (think of Enterprise Manager for SQL 2000);
- K2.net 2003 Studio: The application used to build (and troubleshoot) the K2 processes;
- K2.net 2003 Workspace: The web based application used for tracking, reporting and worklist interaction.

Note: The basics of support as a whole will not be covered, for example, don’t start troubleshooting the problem if you do not have steps to test, correct user accounts etc etc.

K2 Error Profiles

K2 Error Profiles

The very first thing that needs to be completed when troubleshooting any K2 related problem is to evaluate the error profiles in the K2.net Server 2003 Service Manager. This can be done by completing the following steps:

- Open K2.net 2003 Service Manager;
- Expand the relevant K2 server;
- Click on “Error Profiles”.

You should have an error profile per process, but if you simply have an error profile for all it’s not the end of the world. It just makes it more difficult to troubleshoot if you have many processes. For specific troubleshooting, it’s also a good idea to create an error profile for the particular process based on the specific date testing is taking place, this way you filter out all the old errors.

The error profiles report general exceptions and K2 even gives you the option to automatically fix it. I do not recommend this approach, but it is great to read what action K2 wants to complete. This helps point you in the right direction and in many cases, helps you to solve the problem.

If you have checked the error profiles and still can’t resolve the problem, it’s time to see what the K2 server is doing. To get to the heart of it all you need to start the server in console mode.  This is completed by completing the following steps:

- Navigate to service manager of the server (services.msc from the run dialog);
- Stop the service. Note: This obviously causes downtime so ensure that this is completed outside of business hours if troubleshooting in a production environment;
- Locate the K2.net 2003 Server shortcut, right click on it and select “Run-as”.
- Enter the K2 service account details and start the server.

K2 Console Mode

K2 Console Mode

A blue dialog will appear with step for step tracing information on what is happening on the server. As the server has just started, there will more than likely not be much information, but this is expected.

Now that the server is started in console mode every activity performed on the server is visible and the steps to reproduce the error should be completed. At this point, you will clearly see where the process fails and more than likely get a big fat exception to go along with it. Note: When developing processes, developers have the ability to write debug type information to the console. The syntax is simple for example “Console.Write(“**Start of Leave Process**” + Variable1.ToString())“. Text can be written to the console to make the console more readable and variables can be included for more advanced error reporting. More on this operation later in the post.

When you no longer need the console window, simply close it, but remember to start the service again as closing the “blue dialog” effectively stops the K2 service.

The K2.net 2003 Workspace is the workbench for the users and administrators alike. It allows users to interact with their worklists and, say for managers, view the efficiency of individuals per process. Administrators can use the workspace to visually track the progress of any process and also interrogate the datafields if required.

To allow users (or administrators) to view the progress of a process, you need to set the “View” and “View Participants” permission for the particular process. To enable these permissions, complete the following steps:

- Open the K2.net 2003 Service Manager;
- Expand the relevant K2 server;
- Expand “Processes”;
- Click on the relevant process that you want to troubleshoot;
- In the right hand pane, click on “Users”;
- Select “View” and “View Participants” for the relevant user(s).
- Click on “OK”

Now that you have updated the viewing permission for the appropriate process, you will have the ability to interrogate the process as described above.

The workspace is pretty much a visual representation of what has already happened. Not a lot of intervention can happen through this interface and as described above, it is mainly used for users to view reports and interact with their worklists. The workspace is also security sensitive therefore the administrator can for example not act on behalf of another user. In order to complete this, we need to go back to the K2.net 2003 Service Manager.

In some cases a K2 task is routed to a user that no longer exists or a particular activity is simply stuck, the following steps will guide you as the administrator through the process of routing a worklist item to another user and, if required, updating a process to jump to another activity:

- Open the K2.net 2003 Service Manager
- Expand the relevant K2 server
- Click on “Processes”
- Expand the relevant process
- In the right hand pane, click on “Worklist”

A dialog will be shown allowing you to search for a worklist item. If you know some filtering criteria, fill it in and find the worklist item. Once you have found a worklist item that you want to reroute, click on the icon on the left above the listed worklist items, select the new user, and click on “OK”.

Rerouting a task will allow you to act on behalf of any user at any stage of the workflow. This is obviously pretty useful.

The K2.net 2003 Studio is the application used to develop processes. It is not the place to troubleshoot active processes, but updates to existing processes can be made to report or handle errors better. Earlier in the article I mentioned that tracing information can be written into a process that will allow for better bug tracking, the following steps will take you through an example of this:

- Open K2.net 2003 Studio;
- Open the relevant .KSN (K2.net 2003 solution file) that contains the processes you want to update;
- Double click on the actual process of interest;
- You will be presented with the actual flow of the process. Here you can click on a line rule or activity depending on what you wish to edit;
- To edit the code of a process, right click on any activity and select “Properties”;
- At the bottom right of the properties dialogue, click on “Use Code”. Note: This only applies if the activity actually uses the code, in some instances the activitiy will use the GUI;
- Update the code to include for example boiler plates to show when a process starts or finishes, the state of variables as they pass through the process or even what arguments are being passed into the activity for this instance of the process;
- Save the process;
- Export the process to the relevant development server.

The process now has more debugging information in it, so start the server in console mode and watch the window for the added bits and pieces, but please note that I mentioned to export to a development server for a reason; changes like the update of processes mentioned above should not simply be made and added to a production environment unless there is a total failure of the production system and rollbacks are unavailable.

Updating the process with debugging information is in some instances one of the most effective ways of getting to the bottom of your problem, but this approach is not always feasible due to environmental constraints. A good practise for creating processes is however to include this kind of debugging at development time. Just please don’t write out username’s and passwords to the console, I doubt that your system administrator will be too pleased about that.

K2.net 2003 is a wonderful product, it is robust and each component really serves its purpose well. This post, although simply dealing with the basics, highlights what a rich framework for troubleshooting is available to the developer or consultant. Once you have mastered the above mentioned items, try looking into the error logs in the */bin/ folder or play with the elaborate logging possibilities.

Other resources that might help in your quest to solve your K2.net 2003 problem include:
- http://portal.k2workflow.com/ (Login required)
- http://www.k2underground.com/
- http://kb.k2workflow.com/rss/kbrss/kbrss.aspx

 

MOSS 2007 and Windows Server 2008 October 21, 2008

Filed under: Deployment, Design, SharePoint — Francois H. Pienaar @ 4:20 pm
Tags: , ,

If you are reading this post, you have more than likely hit the same brick wall as what I did some time ago.  Yes, you tried to install MOSS 2007 on Windows Server 2008 without SP1.  FAIL!

Microsoft do not allow the installation of MOSS 2007 without SP1 on Windows Server 2008 without the SP1 as a result of a number of known compatibility issues.  Good idea, but is still annoying I guess. 

Anyway, here are some links that will help you through the process:

 Happy Deploying!

 

17 videos on testing with Team System October 12, 2008

Filed under: Software Development — Lawrence Cawood @ 9:21 pm
Tags: , ,

Here’s a bunch of videos on testing with Team System. They cover topics such as unit testing, load testing, manual testing, code coverage, defect tracking, using the Load Test Agent, creating bug work items, test-driven development, tuning web app performance with profiling, etc.

 

You don’t need to copy PDB files to the GAC to debug… October 10, 2008

Filed under: Software Development — Lawrence Cawood @ 9:55 am
Tags:

It’s just as easy to debug in the GAC as it is in BIN if you configure the development environment correctly. Unfortunately, few know how to do this because the internet is polluted with pages full of bad information that is a held over from previous versions of .Net. You can spot these easily because they will say you need to copy the debug symbols (.pdb file) to the GAC. In and of itself, that will not work. These days it is also completely unnecessary.

To configure VS 2005 to debug the assemblies properly, do the following…

http://www.elumenotion.com/Blog/Lists/Posts/Post.aspx?ID=23

 

SharePoint 2009: Improvements to Lists architecture October 8, 2008

Filed under: Microsoft, SharePoint — Lawrence Cawood @ 10:57 pm
Tags: , ,

According to a keynote by Bill Gates at the Microsoft SharePoint Conference 2008, the next version of SharePoint will feature an improved lists architecture – lists will apparently be more tightly integrated with SQL to allow for more flexibility.

From the keynote address:

Bill Gates:And so in the case of SharePoint, we’ve got these lists that in some ways are better than tables.

They have rich behavior that is not you don’t see in SQL tables, but then in SQL you have very rich behaviors, including the flexibility of queries, and kind of scale that you can do that goes beyond what you have as lists. So what’s the answer? What you want to get to is having SQL not just have these lists at a layer above the database, but actually have those be native capability, and literally take the richness of tables, but enhanced to do things like we do with lists.

So in the next version of SharePoint we take a big step in terms of being able to put a table in, and have all that SQL capability, or be able to take a lot of those list-type features and have those against tables. This is the kind of roadmap thing that we should probably get into in the breakout sessions, talk about how far we’re going in 14, and get feedback about that. The direction is pretty straightforward. You want list semantics to be in the database engine itself, so that the kind of rich data types, and scaling, and query capability that you almost take for granted when you’re in a SQL environment, that you have those without giving up the reasons that we invented lists, because of the approachability and capabilities you have there.

Hopefully this means that we’ll be able to utilize lists in more advanced ways without having to worry so much about the performance problems that currently affect lists containing large numbers of items.

This improvement will also mean that teams can implement relational data structures simply by using lists; no need to write data layers, manage connection strings and DB security, database deployments, etc. All one would theoretically need is access to the SharePoint API?

I definitely think there’s a lot of potential here.

 

Folders in SharePoint Pages Library October 7, 2008

Filed under: SharePoint — Lawrence Cawood @ 8:29 pm
Tags: , ,

An irritating problem that our team ran into this morning is the fact that folders in the Pages library are not supported.

We tried forcing the Pages library to accept subfolders – this does not work – items are added at the root of the Pages library no matter which folder you try to add them to. According to the article above, “Although the Pages library can be configured to let you create subfolders, many of the Pages library features will not recognize any subfolders that you create.

I’m not sure what the real reason was behind this decision, but it seems quite odd that this common functionality is not supported. Organising and categorizing content is one of the primary functions of any CMS, so when utilising SharePoint’s content management functionality one expects to be able to perform basic operations such as grouping content into folders.

In order to show a list of grouped Pages on our site, we now have to resort to workarounds such as using metadata to organise Pages, or creating subsites recursively to recreate a hierarchical structure of Page libraries.

If anyone has figured out a solution to this problem, I’m all ears… :)