February 2009 - Posts
Network response time is one of the important factors that affect SharePoint farm design. Measure the latency between SharePoint servers and users to reorganize servers according the smallest response time. This factor is a key point consideration to determine which of the supported deployment solutions to implement for your Office SharePoint Server deployment. (Latency is the time required for a packet to travel from one point on a network to another).
Use the Ping tool (ping.exe) to measure latency, which affects:
- users - from the client computer to the Web server on the server farm
- data centres, that host servers of the same farm - from a Web server in the remote data centre to the database server in the primary data centre
Do not forget to divide the round-trip result by two, because all measures are one way only, not round-trip. Compare results to the data below, and adopt environment to have latency lower those values.
| Number of users | Concurrent users (10%) | Central Solution | Distributed solution |
| 100-5,000 | 10-500 | Bandwidth: 3+ Mbps (dual T1) Latency: < 100 ms | Bandwidth: 1.5 Mbps (T1) Latency: <100 ms |
| 10,000 | 1,000 | Bandwidth: 3+ Mbps (dual T1) Latency: <250 ms | Bandwidth: 1.5 Mbps (T1) Latency: <500 ms |
| 100,000 | 10,000 | Bandwidth: 3+ Mbps (dual T1) Latency: < 250 ms | Bandwidth: 1.5 Mbps (T1) Latency: <500 ms |
Overstepping these values will increase the page-load times dramatically, in 4 times at least. The critical bandwidth is 1.5 Mbps (T1) with 500ms latency.
Available network bandwidth and existed latency influences planning for geographic deployments in which data travels across WAN links that span multiple cities, states, provinces, countries, or continents.
Have anything to add?! Send your tips to be published via this form
The administrative way of getting SharePoint version is navigating to “Central Administration > Operations > Servers in Farm”. But what if you need to get version programmatically?!
It might be that your feature relies on the specific version, lets say SharePoint SP1 + Infrastructure Update installed, and you need to check version of the SharePoint when feature installs. The way to get version programmatically is use the following SQL script
1: SELECT Version, UserName
2: FROM Versions
3: WHERE VersionId = '00000000-0000-0000-0000-000000000000'
4: ORDER BY Id DESC
This script should be run against the Central Administration content database, and it returns the value which is show in “Service In Farm”. Refer the following post to find which Update/Patch corresponds to SharePoint version number.
Use the following code-snippet to find the content database of the Central Administration site, to be used in the SQL script
1: using (SPSite startSite = new SPSite("<Central Admin url>"))
2: {
3: SPFarm farm = startSite.WebApplication.Farm;
4: SPWebService service = farm.Services.GetValue<SPWebService>("");
5:
6: foreach (SPWebApplication webApplication in service.WebApplications)
7: {
8: foreach (SPSite site in webApplication.Sites)
9: {
10: Console.WriteLine(string.Format("{0} - {1}", site.Url, site.ContentDatabase.Name));
11: }
12: }
13: }
Current "SharePoint Tips and Tricks" series has been moved to its own "SharePoint SandBox" site, to leave the place for others SharePoint posts on this blog
Adding users explicitly to SharePoint Groups, instead of adding AD security groups affects how crawling performs.
If you add/remove users from the SharePoint group it will force search to crawl content - "Security only crawl". Incremental crawl starts to update security changes, and all “Updated ACL’s” must be pushed down to all affected items within the index. This process might take a lot of time if changes affect a lot of items in SharePoint and you have big number of users in SharePoint.
Managing users via AD groups won't cause ACL changes, and no security only crawls will occur.
Source
Have anything to add?! Send your tips to be published via this form
This month I’m reading my first SharePoint presentation in Sydney (Australia), so I welcome NSW ppl to come to listen to me and to criticize a bit :)
I’m planning to run about 3 presentations of “best practices” for SharePoint infrastructure and Development, so this one starts with the basis of how to create the SharePoint farm
Detail info below
|
‘Best Practices of SharePoint Farm Deployment’
Presented by Michael Nemtsev (MVP), Senior Developer - Readify
Wednesday 25 February, 6:00pm – 8:00pm | Cliftons, 190 George Street, Sydney
In this RDN session, Michael will highlight best practices of how to deploy and configure the SharePoint environment from scratch, covering different farm scenarios and providing practical instructions of how to generate a strong SharePoint baseline. ...register now
Find out more about RDN or download the RDN Information Brochure (PDF).
« Register Now»
|
Topics are:
- Why infrastructure
- Architecture Planning
- SharePoint Installation
- Farm Configuration
- Logical Architecture planning
- Backup and Recovery Strategy
- Development Environment
- Post Deployment
- Virtual Environment
PowerPoint presentation is available to download in PDF format
Have you ever tried to import User Profiles? It’s a bit slow process. A lot of stuff is created in background. For the large farm, when you need to import a lot of profiles plan enough time for this.
Profile database import takes roughly an hour for every 200 profiles
Have anything to add?! Send your tips to be published via this form
People Picker is a nice feature of SharePoint which allows search for a user/group when assigning permissions for example. But it has one issue, selecting accounts and groups which are “disabled” by default. To do this you need to apply LDAP filters via STSADM command
stsadm -o setproperty -pn peoplepicker-searchadcustomfilter -url ">">http://<site> –pv (!userAccountControl=514)
Source
Have anything to add?! Send your tips to be published via this form
There are several ways to build disconnected systems based on SharePoint. But all of them have pros and cons. The following table shows what each of disconnected scenarios supports.
| Feature | File System | Outlook 2007 | Groove 2007 | Access 2007 |
| Offline documents | Yes | Yes | Yes | No |
| Offline Lists | No | Yes | No | Yes |
| More then one document at a time | No | Yes | Yes | N/A |
| Automatic sync for documents | No | No | Yes | N/A |
| Two-Way sync | No | Yes (PIM list only) | Yes | Yes (lists only) |
Have anything to add?! Send your tips to be published via this form
Instead of resetting IIS to clean SharePoint cache the recommended solution is to reset application pools. This is preferable for the production boxes, when you have several sites on your box and you don’t want that all application were affected by IIS reset.
Use the following command to reset application pool
cscript c:\windows\system32\iisapps.vbs /a "<app_pool_name" /r.
In Windows 2008 you need to install IE6 scripting tools (Add/Remove Programs -> Windows Components). Alternatively, in development, you can use utility http://www.harbar.net/articles/apm.aspx with interface allowing to chose which pool to reset.
Current "SharePoint Tips and Tricks" series has been moved to its own "SharePoint SandBox" site, to leave the place for others SharePoint posts on this blog
There are several standard columns, like "Title" and etc, which can't be delete from lists. The workaround for this in creating the custom content type list and hiding the "title" column there.
Step-by-Step instructions described there: http://www.bloggix.com/blogs/microsoft/archive/2008/07/06/how-to-create-a-custom-list-with-your-own-content-type-getting-rid-of-field-title.aspx
Have anything to add?! Send your tips to be published via this form
When you are configuring a new application pool and assigning the user account, you need to specify just the <username> for the ApplicationPoolUserName field only if SharePoint is the part of workgroup.
In case of SharePoint as the part of Active Directory, you need to use <server>\<username> pattern.
Have anything to add?! Send your tips to be published via this form
SharePoint doesn’t provide you Administrative functionality to change the default layout page after you created Site Collection. This maybe an issue, for the SharePoint hosting, when you create site once, but need to change your your welcome page after.
So, the only way to do this is via SharePoint API – Featere Receiver. Use the following code-snippet to do this:
1: public overridevoid FeatureActivated(SPFeatureReceiverProperties properties)
2: {
3: SPWeb site = (SPWeb)properties.Feature.Parent;
4: SPFolder folder = site.RootFolder;
5: folder.WelcomePage = "Wiki Pages/How To Use This Wiki Site.aspx";
6: folder.Update();
7: }
Current "SharePoint Tips and Tricks" series has been moved to its own "SharePoint SandBox" site, to leave the place for others SharePoint posts on this blog
Virtualized SharePoint solutions became very popular after Microsoft officially announced support of VPC, Hyper-V and 3rd party virtualization for SharePoint farms. So, number of virtualized implementations increased. But, there is one trap, which you need to avoid – is installing SharePoint on virtualized Windows 2008 Server with Domain Controller role.
There is nothing bad with SharePoint and DC together, except that the best practices recommends you not to have them together on one box. The actual problem in performance of hard drive when you activate DC in virtualized Windows 2008 Server.
After DC is activated, Windows turn off any hard drive caching and have direct reads/writes to keep AD integrity
“To help preserve the integrity of the Active Directory database if a power loss or another failure were to occur, the Active Directory directory service performs unbuffered writes and tries to disable the disk write cache on volumes hosting the Active Directory database and log files. Active Directory also works in this manner when it runs in a virtual hosting environment.”
More details in Microsoft Knowledgebase article 888794
So, any installations to DC Windows 2008 server will be not effective at all. DC must be separate box, without any others applications, because when you activate DC on your Windows 2008 Server you end up with HDD limitation (3mb/sec only)
PS: This behaviour is applicable only for virtualized Windows 2008, not physical installation.
Have anything to add?! Send your tips to be published via this form
Use stsadm |find "<name>" to find the commands which contain the name used in find command.
For example, you forgot the command which contains the “feature” word, and trying to find all commands with such name

Have anything to add?! Send your tips to be published via this form