Blog - Title

December, 2010

  • Database layer in SP 2010

     

       
    • Configuration Database

    The configuration database handles all administration of the deployment, directing requests to the appropriate database, and managing load-balancing for the back-end databases. When a front-end Web server receives a request for a page in a particular site, it checks the configuration database to determine which content database holds the site's data. You can run the configuration database on the same computer as a Web server or on a remote computer running Microsoft SQL Server. The configuration database concepts are relatively unchanged in Microsoft SharePoint Server 2010. In MOSS 2007 and Windows SharePoint Services 3.0 the Site Map table was stored in the configuration database which provided information about which content database contains data for a given site. When Windows SharePoint Services or Microsoft Office SharePoint Server 2007 received the URL of a request, settings in this database determine which content database contains data for the site. In Microsoft SharePoint Server 2010 and Windows SharePoint Services 4.0 the Site Map is serialized to disk to improve performance and reduce database callback operations that could result in contention when serving requests on large server farm deployments.

     

    • Content Database

    The back-end content database stores all site content, including site documents or files in document libraries, list data, and Web Part properties, as well as user names and rights. All the data for a specific site resides in one content database on only one computer.

     

    • Central Administration Content Database

    As the Content Database.

     

    • Shared Services Provider (SSP)

    The Shared Services Provider layer is obsolete in Microsoft SharePoint Server 2010 replaced with Shared Services Applications, to understand changes in database design associated with the Shared Services Provider database, see also Search and People in this section.

     

    NOTE

    MOSS 2007 SSPs when upgraded will result in a new Search, User Profile, Excel Services, Application Registry Backwards Compatibility, and Managed Metadata Service shared services applications. New databases will be created as required to support the upgrade and Web application settings are preserved through establishing a proxy for each service application.

     

    • Usage and Health Data Collection Service

    The Usage and Health Data Collection Service collects and logs SharePoint health indicators and usage metrics for analysis and reporting purposes.

    Logging Database

    The logging database is the Microsoft SQL Server, MSDE, or WMSDE database that stores health monitoring and usage data temporarily, and can be used for reporting and diagnostics.

     

    • Search Service

    Administration Database

    The Administration Database is what the Shared Services Provider database was in Microsoft Office SharePoint Server 2007 and is instantiated once per Search application aligning with the Administration Component. The Administration Database hosts the Search application configuration and access control list (ACL) for the content crawl.

    Property Database

    The Property Database stores crawled properties associated with the crawled data to include properties, history data, crawl queues, etc.

    Crawl Database

    The Crawl Databases host the crawled data and drives crawl - the Crawl Database is what the Search database was in Microsoft Office SharePoint Server 2007.

     

    • Web Analytics Service

    The Web Analytics Service provides rich analytics giving you insights into your web traffic, search, and SharePoint assets enabling you to better understand your user and deployments. With SharePoint Web Analytics, you’ll be able to tailor the system to meet the needs of your users, optimize how they use and discover information, and create targeted content for your sites.

     

    Staging Database

    The Web Analytics Staging database is the working database that stores un-aggregated Fact Data, asset metadata, queued batch data, and provides short term retention of this content.

    Reporting Database

    The Web Analytics Reporting database stores aggregated standard report tables, Fact Data aggregated by Site Group, date, and asset metadata in addition to diagnostics information.

    • User Profile Service

    The User Profile Service encompasses user profiles and My Sites.

    Profile Database

    The user profile database is a flexible database that stores and manages user and associated information. The database allows for a flexible schema that supports multiple data types. It can be queried and it can be updated. For example, a company can define the attributes of an employee record in the profile database. Then for each record, an employee object will be created and saved. This information is now usable in a number of ways, such as in Web Parts, in the Web service, or to create rule based groups or roles.

    1. Properties
    1. Profiles
    2. Multiple values
    3. Vocabularies
    1. Colleagues
    1. Memberships
    1. Change Log

     

    Synchronization Database

    The synchronization database is used to store configuration and staging data for synchronization of profile data from external sources such as Active Directory.

    Social Tagging Database

    The social tagging database stores social tagging records and their respective Url which are coupled with information from the profile and taxonomy databases at the front-end layer at execution/request. This database is used to store social tags and notes created by users.

     

    • Managed Metadata Service

    The Managed Metadata Service publishes a term store and, optionally, a set of content types.

    Term Store Database

    A database in which managed metadata is stored. The Web front end public APIs interact with the data layer to get or set data. The data layer talks to the term store directly if the shared service is local to the farm, or it talks to a backend Web service on an application server if the shared service is not local. The backend Web service then interacts with the data layer on the application server to get to the term store.

     

    • State Service

    The State Service maintains temporary state information for InfoPath Forms Services.

    State Database

    The state database maintains temporary state information for InfoPath Forms Services.

     

    • Business Data Connectivity Service

    The Business Database Connectivity Service provides a means for storing, securing, and administering external content types and related objects.

    Database

    Stores external content types and related objects.

     

    • Secure Store Service

    The Secure Store Service replaces the Single Sign On Service in previous versions of the product.

    This service provides storage and mapping of credentials such as account names and passwords. Portal site–based applications can retrieve information from third-party applications and back-end systems such as Enterprise Resource Planning (ERP) and Customer Relations Management (CRM) systems.

    The use of Secure Store functionality enables users to authenticate without asking the user multiple times for the credentials needed to authenticate in that system.

    Store Database

    Provides storage and mapping of credentials such as account names and passwords.


    Quote of the day:
    Anyone who eats three meals a day should understand why cookbooks outsell sex books three to one. - L. M. Boyd
     
  • SharePoint 2010 is now mirroring-aware

     
    SharePoint 2010 has built in support for database mirrors, and allows you to define a failover SQL server for any databases you have mirrored. You can mirror one database, you can mirror several, it's all up to you. You can do this with content databases or service application databases. To take advantage of this simply add the instance name of the SQL server where the mirror of your database is in the settings for the database, like below:

    clip_image001

      

    You can define a database name for every content database. This effectively allows SharePoint 2010 will automatically be aware of database mirroring. If the primary SQL server dies, SharePoint will automatically re-connect to the failover database.

    For example; you have content database SQLDB1 and failover database SQLDB2. By default SharePoint will communicate with SQLDB1. But in case SQLDB1 dies or SharePoint unable to communicate with SQLDB1 it will automatically retry connection to failover database and start communication with SQLDB2. SQLDB2 is a mirror to the SQLDB1. The default timeout to connect to failover database is 15 seconds.

    It will retry automatically, so you have no need to worry about any manual process to change the database.

    However, You will have to configure the database mirroring independent of SharePoint. SharePoint does not configure the mirroring in SQL for you. SharePoint will however verify the instance you specify is valid. The values for the failover instances for the databases an be set through the Central Admin UI except for the Configuration database which needs to done through PowerShell.

      

    To make SharePoint Server 2010 aware that failover mirrored databases exist, perform the following procedure for all configuration and content databases.

     

    Note :  It is recommended to use Windows PowerShell cmdlets to set failover database values. Although you can use the Central Administration Web site to set some failover database values, you cannot use

       it for all databases like the Configuration Database.

     

    To configure SharePoint 2010 Products to be aware of mirrored databases by using Windows PowerShell

     

    1. Verify that you meet the following minimum requirements: See Add-SPShellAdmin.
    2. On the Start menu, click All Programs.
    3. Click Microsoft SharePoint 2010 Products.
    4. Click SharePoint 2010 Management Shell.
    5. At the Windows PowerShell command prompt, type the following commands, and then press ENTER

     

    $db = get-spdatabase | where {$_.Name -eq "database name "}
    $db.AddFailoverServiceInstance("mirror server
    ")
    $db.Update()

     

    For more information, see Get-SPDatabase.

    After running these cmdlets when you look at the connection strings for the databases, they will look something like following

    DatabaseConnectionString :  Data Source=<primary SQL instance>;Failover Partner=<mirror SQL instance>;
    Initial Catalog=<SharePoint_Config>;Integrated Security=True;Enlist=False;Connect Timeout=15

    LegacyDatabaseConnectionString  : =<primary SQL instance>;Database=<SharePoint_Config>;Trusted_Connection=yes;
    App=Microsoft SharePoint Foundation;Timeout=15;Failover Partner=<mirror SQL instance>

    Test the fail over capability

    Test the automatic failover capability of the mirror by shutting down the principal server. You will notice that the mirror server will become the principal server while continuing to host database operations. Power on the principal server. Any database changes made on the mirror server will be restored to the principal server.

    Next, shut down the mirror server so the principal server can once again become the primary server. Power on the mirror server.

    To configure a failover instance for all databases (except for the Logging database):

    Get-SPDatabase | ? {$_.Type -ne “Microsoft.SharePoint.Administration.SPUsageDatabase”} | ? {!$_.FailoverServiceInstance} | ForEach ($_) {$_.AddFailoverServiceInstance(“SERVERNAME\INSTANCENAME”); $_.Update()}

    The supported topologies include mirroring all content databases, the configuration database, the Central Administration content database, and the service application databases except for the Web Analytics Staging database and the User Profile Synchronization database.

    Note:
    We do not recommend that you mirror the Usage and Health Data Collection Logging database. A SharePoint environment can continue to run if this database fails, and this data can be quickly regenerated.

    Avoid topologies that do not have matching principal server and database instances and mirror server and database instances. Also, keep the configuration database and the administration content database on the same server.

    The information about which databases would be better to mirror is available at http://technet.microsoft.com/en-us/library/ff628961.aspx


    Also, you can run the following command to get list of all databases and failover instances (if set)

    Get-SPDatabase | SELECT Farm, Name, Type, FailoverServer | Sort-Object Name

    Alternatively, you can export the output to a csv file using the following command:

    Get-SPDatabase | SELECT Farm, Name, Type, FailoverServer | Sort-Object Name | Export-CSV Database_List_$env:computername.csv

  • New Databases in SharePoint 2010

     

    New Databases

    SharePoint Shared Services became deprecated in SharePoint 2010, and instead we have new Services architecture, where all services are independent from each other. Such architecture affected the way information and configuration are stored and each services has it's own database.

    Previously, with SharePoint 2007 we had at least 6 databases for each installation

    1. Central Administration - [SharePoint_AdminContent<GUID>]
    2. Configuration - [SharePoint_Config]
    3. SSP - 3 databases for SSP settings, MySites, and Search
    4. Web Application - custom database

    With SharePoint 2010 model we still have Central Administration and other databases, but instead of point 3 we end up with the separate database for each Service, for example [Access Services], [Metadata Services], [WebAnalytics Reporting] and etc.

    User Profiles use 3 databases: [Profiles] - for the actual profile content, [Synchronization] to keep configurations of the external data and [Social Tagging] to store tags and noted created by users.

    This model describes the SQL Server databases that are integral to SharePoint 2010 Products. The databases used in a specific environment are determined by the product, version, edition, and features that are running.

    Databases that support SharePoint 2010 Products

    Will try to cover some additional details regarding the databases used in SharePoint 2010 in upcoming posts.

  • Quote Unquote


    Quote of the day:
    A timid person is frightened before a danger, a coward during the time, and a courageous person afterward. - Jean Paul Richter
  • How to Setup Mail Enabled Document Libraries in SharePoint 2010

     

    E-mail is an integral part of any SharePoint installation as it is the backbone of communication with in a SharePoint farm and its users. Needless to say, it becomes imperative for any SharePoint administrator to know the basics of configuring the SharePoint environments to send and receive emails.

     

    Dave Coleman (Microsoft MVP) has an excellent series of blog posts which provide step-by-step instructions to setup incoming and outgoing email. You can access it here.   

  • Inside a SharePoint Content DB

     

    Below are some of the basic tables within a content database and a very high level diagram on some of the relationships between them.

      

    Features

    Table that holds information about all the activated features for each site collection or site.

    Sites

    Table that holds information about all the site collections for this content database.

    Webs

    Table that holds information about all the specific sites (webs) in each site collection.

    UserInfo

    Table that holds information about all the users for each site collection.

    Groups

    Table that holds information about all the SharePoint groups in each site collection.

    Roles

    Table that holds information about all the SharePoint roles (permission levels) for each site.

    All Lists

    Table that holds information about lists for each site.

    GroupMembership

    Table that holds information about all the SharePoint group members.

    AllUserData

    Table that holds information about all the list items for each list.

    AllDocs

    Table that holds information about all the documents (and all list items) for each document library and list.

    RoleAssignment

    Table that holds information about all the users or SharePoint groups that are assigned to roles.

    Sched Subscriptions

    Table that holds information about all the scheduled subscriptions (alerts) for each user.

    ImmedSubscriptions

    Table that holds information about all the immediate subscriptions (alerts) for each user.

     

    SharePointContentDatabaseModel

     

    NOTE: Never update any SharePoint database directly. Always use the SharePoint API (Object Model) for any updates.

    For more info about the support for changes to the databases used by SharePoint, look at http://support.microsoft.com/kb/841057

    Technorati Tags: ,,,,,,,,,,,,,,,,,,,,,,,,,,,

     

  • Setting up load balancing on a SharePoint farm running on Windows Server 2008

     

      
    1. Install Network Load Balancing Feature on each Web Front End

     

    On each front end in the farm, within Server Manager, add the NLB feature:

     

                   clip_image001

     

    • Click Install and wait a bit

     

       clip_image002

     

    1. Add a New Cluster

     

    • Through the start menu, Administrator Tools, click Network Load Balancing Manager:

     

      clip_image003

     

    • Right click Network Load Balancing Clusters, and choose New Cluster:

     

     clip_image004

     

    • Type the IP address of one of the web fronts in the farm to serve as the first host in the cluster

     

     clip_image005

     

    • Click Connect.
    • Click next.
    • Leave the defaults and click next again:

     

     clip_image006

     

    1. Set Cluster IP Address

     

    • This IP Address is the dedicated IP address for the cluster and is what DNS will point to, to get load balanced between the front ends. On the Cluster IP Addresses box, click Add and type an available dedicated IP address and subnet mask:

               clip_image007

     

    • Optionally, you can setup many clusters IPs for fault tolerance purposes, but for most cases you'll just have one:

     

               clip_image008

     

    • Click next.

     

    1. Specify Cluster Parameters

     

    • Select the Multicast operation mode, and click next:

     

               clip_image009

     

    1. Specify Port Rules

     

    • Click edit on the default port rule:

     

               clip_image010

     

    • Deselect the "All" checkbox, and choose the Network filtering mode:

              

               clip_image011

     

    • Click Ok.
    • Click Finish.
    • After finish, the NLB manager will show it has begun the configurations changes. If you're in a remote desktop to the server, you'll lose your connection temporarily while it re-configures:

     

                clip_image012

     

     

    1. Add Any Additional Hosts to the Cluster

     

    Now that the cluster is ready to go, you can add additional hosts/web front ends. Right click on the cluster IP address and click Add Host To Cluster and type the IP of another web front end in the farm. Repeat until they're all added.

     

               clip_image013

     

     

    Interesting read

     

  • Fantastic 40 Application Templates for SharePoint (WSS & MOSS)

     

    What are Application templates

    Application templates are out-of-the-box custom scenarios which are developed to address the needs and requirements of specific business processes or sets of tasks as in they can be used to create a dedicated site or workspace for a particular business process or task.

    Application templates in WSS and MOSS are separated into two group of templates; Server Admin Templates and Site Admin Templates.

    Server Admin Application Templates

    These are created as site definitions and require administrator permissions on the server to install. Below is a list of these 20 templates with a brief description of their purpose.

     

    1. Absence Request and Vacation Schedule Management
      A site for teams to share information on when team members will be away from the office and who to contact for issues.
    2. Help Desk
      A site for teams to submit and manage customer support issues.  It provides lists to track service request history and includes a knowledge base.
    3. Budgeting and Tracking Multiple Projects
      A site for teams to track multiple projects.  It provides lists to track general project information, project tasks, and project issues.
    4. Inventory Tracking
      A site to track inventory items, levels, sales, and orders.
    5. Bug Database
      A site for teams to track bugs in their shared software projects.
    6. IT Team Workspace
      A site for an IT team site to manage incoming issues, projects, and bugs.
    7. Call Center
      A site for teams to track customer support calls.  It provides lists to track customers, service request history and includes a knowledge base.
    8. Job Requisition and Interview Management
      A site for teams to manage their job requisitions, candidates, and interviews.
    9. Change Request Management
      A site for teams to track change requests in multiple projects.  It provides lists to track change requests, general project information, project tasks, project issues, and project risks.
    10. Knowledge Base
      A site to manage and create knowledge assets within an organization.
    11. Compliance Process Support Site
      A site for teams to help plan compliance processes.
    12. Lending Library
      A site to track the assets of a team lending library.
    13. Contacts Management
      A site for teams to track their shared contacts.
    14. Physical Asset Tracking and Management
      A site for teams to track their existing physical assets and manage the process of proposing new assets.
    15. Document Library and Review
      A site for teams to store documents and provide feedback on a per-version basis.
    16. Project Tracking Workspace
      A site that supports team collaboration on projects.  This site includes Project Documents, Project Issues, Project Risks, and Project Deliverables lists which may be linked to tasks in Microsoft Office Project Server 2007.
    17. Event Planning
      A site for teams to plan and manage events like conferences.
    18. Room and Equipment Reservations
      A site for teams to manage the use of shared rooms and equipment.
    19. Expense Reimbursement and Approval Site
      A site for teams to submit and manage expense reports.
    20. Sales Lead Pipeline
      A site for sales teams to track contacts, accounts, leads, and opportunities.

     

    Note: To install or remove a server admin template, you must have Administrator rights to both the Windows SharePoint 

              Services site and to the root of the server on which it is to be installed or removed.

      Installation and removal are done via the 'Stsadm.exe' command-line utility located at

      '%PROGRAMFILES%\Common files\Microsoft Shared\Web Server Extensions\12\Bin'
     

    Site Admin Templates

    These are custom templates which can be installed by individual site administrators in a template gallery without requiring farm administration access. Below is a list of these 20 templates
       

    1.      Board of Directors

    The Board of Directors application template provides a single location for an external group of members to store and locate common documents such as quarterly reviews, shareholder meeting notes and annual strategy documents. The template also tracks tasks, issues and calendar items so board members have a single location to view information relevant to them

    2.      Business Performance Rating
    The Business Performance Reporting application template helps organization managers track the satisfaction of customers through a combination of surveys and discussions. Surveys can be sent via Office InfoPath 2007 which are then consolidated by the template to give an overall response to a series of questions.

     

    3.      Case Management for Government Agencies

    The Case Management for Government Agencies application template helps case managers track the status and tasks required to complete their work. When a case is created, standard tasks and documents are created which are modified based on the work each case manager has completed.

     

    4.      Classroom Management
    The Classroom Management application template helps instructors and students organize and store information related to a particular class. The site includes document libraries to store assignments and lecture notes as well as calendars and announcement capability to enable communication from instructor to students.

     

    5.      Clinical Trial Initiation and Management
    The Clinical Trial Initiation and Management application template helps teams manage the process of tracking clinical trial protocols, objective setting, subject selection and budget activities. The site provides useful Office Word 2007 templates as well as the capability to create, track and assign tasks and issues related to a particular clinical trial.

     

    6.      Competitive Analysis Site
    The Competitive Analysis Site application template helps teams organize information about competitors and their products. The site provides useful Microsoft Office 2007 documents to perform SWOT and other useful competitive analysis techniques. Links to industry, company and product news can also be included to provide a single location for all competitive information.

     

    7.      Discussion Database
    The Discussion Database application template provides a location where team members can create and reply to discussion topics. Discussions are organized by categories, which are created by a site manager, and can be linked to Office Outlook 2007 via an RSS feed.

    8.      Disputed Invoice Management
    The Disputed Invoice Management application template helps accounts payable departments track open invoices including the potential savings associated with paying the invoice early. The site includes useful templates for analyzing the reasons invoices are being disputed as well as tracking who to contact for more information.

     

    9.      Employee Activities Site
    The Employee Activities Site application template helps manage the creation and attendance of events for employees. Activity owners use the site to review proposals for new activities and create event calendar items. Employees use the site to sign up as well as track which activities they’ve attended in the past.

     

    10.  Employee Self-Service Benefits
    The Employee Self-Service Benefits application template provides tools for an organization to inform employees about available benefits as well as enabling them to enroll for each benefit.

     

    11.  Employee Training Scheduling and Materials
    The Employee Training Scheduling and Materials application template helps instructors and employees manage courses and related materials. Instructors can use the site to add new courses and organize course materials. Employees use the site to schedule attendance at a course, track courses they've attended and to provide feedback.

     

    12.  Equity Research

    The Equity Research application template helps teams collaborate on researching stocks and other equities. It provides a central location for teams to store documents, post links, track news, and hold discussions related to the equities tracked by the site.

     

    13.  Integrated Marketing Campaign Tracking

    The Integrated Marketing Campaign Tracking application template helps marketing managers track the implementation and success of outbound marketing activities. The template allows a manager to create marketing activities and track the results of those activities, such as responses generated and sales completed. The template contains multiple methods of analyzing the success of the campaigns including automated calculations and Office Excel 2007 templates for more detailed analyses.

     

    14.  Manufacturing Process Management

    The Manufacturing Process Management application template helps teams to model and track manufacturing processes as well as tasks and issues that arise in the upkeep of these processes.

     

    15.  New Store Opening
    The New Store Opening application template helps a team manage the opening of new store locations or re-modeling of existing store location. The site provides a single location to manage tasks, issues, and documents for all store opening processes, enabling end users to view relevant information and providing project managers insight across the entire project.

     

    16.  Product and Marketing Requirements Planning

    The Product and Marketing Requirements Planning application template enables teams to manage the process of collecting and documenting requirements for new products. The site provides several Microsoft Office 2007 templates providing useful techniques for Marketing, Product and Steering committee actions as well as a template for meeting notes and financial information

     

    17.  Request for Proposal
    The Request for Proposal application template helps manage the process of creating and releasing an initial RFP, collecting submissions of proposals and formally accepting the selected proposal from amongst those submitted. The site also helps simplify the process of notifying individuals about the status of the RFP and submitted proposals.

     

    18.  Sports League
    The Sports League Site application template helps an intra-company league administrator manage a baseball league. The site tracks team information, players, captains and scheduled team activities such as games, practices and social events. Team members can enter in game results and perform analysis at a team, game or individual player level. The site also enables discussions between league members through a League Discussion board.


    19.  Team Work Site
    The Team Work Site application template provides a place where project teams can upload background documents, track scheduled calendar events and submit action items that result from team meetings. The site also tracks the creation and purpose of "sub-teams" as well as enables discussion of topics created by members of the team.

    20. Timecard Management
    The Timecard Management application template helps teams track hours spent working on various projects. The site enables team members to "punch in" on a particular project and "punch out" when they cease work. The system automatically generates the time worked by project, and can show managers who is working on a particular project, total hours versus budgeted time and the details of who worked on a each project entered into the site.

     

    Downloads

    • All 20 Site Admin templates                                                     (Available in English only)
    • All 20 Server Admin Templates                                                (Available in Multiple languages)

     

    Download the files and extract them to a folder on your local system say 'C:\Fab40' directory.

    Listed below are the steps to install and deploy the WSPs and STPs to your SharePoint farm. Additionally, you can use the  commands to create a batch file that will help you expedite the installation and deployment of Server Admin and Site Admin Templates.

    I have created a text file with the required set of commands for automating the installation and deployment of the templates. Change the file extension from ‘.txt’ to ‘.bat’ and then run the executable to complete the installation.

     

    Install the Application Template Core Solution

     

    1.      Before installing a server admin template, you must first download and install the Application Template Core solution called ApplicationTemplateCore.wsp.

    2.      After downloading the solution, double click on the 'exe' to extract the files to a location on the server; e.g. 'C:\Fab40'

    3.      Via command line, run "Stsadm -o addsolution -filename "C:\Fab40\ApplicationTemplateCore.wsp".

    4.      Next, run "Stsadm -o deploysolution -name ApplicationTemplateCore.wsp -allowgacdeployment -immediate".

    Note:

    Additional attributes may be required based on your Windows SharePoint Services configuration like
    Single Server:  [-local | -time <time to deploy at>]
    Farm              :  [-immediate | -time <time to deploy at>]

    To see the list of attributes, run Stsadm -help deploysolution or visit http://technet.microsoft.com/en-us/library/cc288449(office.12).aspx

     

    5.      Run ‘Stsadm -o copyappbincontent

    6.      To check the deployment status, browse to Central Administration > Operations tab > Solution management under Global Configuration. The solution(s) will be marked as Globally Deployed.

     

    Install a template

     

    1.      Download the template you want to install to the server.

    2.      Double-click the .exe file to extract the files to a location on the server; e.g. 'C:\Fab40' .

    3.      Via command line, run "Stsadm -o addsolution -filename "C:\Fab40\\<template_name>.wsp", where <template_name>.wsp is the .wsp file for your template.

    4.      Next, run "Stsadm -o deploysolution -name <template_name>.wsp -allowgacdeployment"

    Note:

    Additional attributes may be required based on your Windows SharePoint Services configuration like
    Single Server :  [-local | -time <time to deploy at>]
    Farm              :  [-immediate | -time <time to deploy at>]

    To see the list of attributes, run ‘Stsadm -help deploysolution’ or visit http://technet.microsoft.com/en-us/library/cc288449(office.12).aspx

     

    5.      To check the deployment status, browse to Central Administration > Operations tab > Solution management under Global Configuration. The solution(s) will be marked as Globally Deployed.

    6.      Run IISreset from the command line.

     

    Using the new templates to create a new site

     

    To create a new site, follow these steps

     

    • From the Site Actions drop-down menu in the top right, select Site Settings.
    • Under the Site Administration section, select 'Create Site' to create a new site using a site template.

     Site Actions

    • Complete the new SharePoint site information.
    • In the Template Selection section, we will now have the new templates available under the “Application Templates” and “Custom” tabs.
    • All deployed templates will be listed in this tab.
    • Select the template to use for this site and click Create.
    • A site will now be created using the chosen template.

     Template selection

    Removing a template

    This process will not remove any sites that were already created using the template. It will only prevent users from creating new sites based on the template. The Application Template Core solution must remain installed and deployed for other server admin templates to be installed.

    1.      Removing a solution is done via the ‘Stsadm’ command line utility.

    2.      To retract a solution from being available to SharePoint sites, run ‘Stsadm -o retractsolution -name <template_name>.wsp’ where <template_name>.wsp is the .wsp file for your template.

     

    To see a list of optional attributes available with this command, run ‘Stsadm -help retractsolution’ or visit http://technet.microsoft.com/en-us/library/cc287669(office.12).aspx

    3.      To remove a solution from the server, run ‘Stsadm -o deletesolution -name <template_name>.wsp’

    To see a list of optional attributes available with this command, run ‘Stsadm -help deletesolution’ or visit http://technet.microsoft.com/en-us/library/cc288697(office.12).aspx

    4.      The application template is now unavailable to SharePoint sites and the solution has been removed from the solution store.

     

    Note:

    You must be a Farm administrator to complete the installation and once you do these templates will be universally available. You will now have two new tabs called ‘Application Templates’ and ‘Custom’ under the ‘Template Selection’ section when you create a new site.

  • SharePoint 2010 >> Taxonomy Picker.ascx Failed Error

     

    On SharePoint 2010 you will run into the following error :

    Log Name        :  Application
    Source             :  Microsoft-SharePoint Products-SharePoint Foundation
    Date                : 
    9/27/2010
    Event ID          :  7043
    Task Category  :  Web Controls
    Level                :  Error
    Keywords         :
    User                 : 
    MSS\SPFARM
    Computer         : 
    MOSSSERVER
    Description       : 

    Load control template file /_controltemplates/TaxonomyPicker.ascx failed: Could not load type  'Microsoft.SharePoint.Portal.WebControls.TaxonomyPicker' from assembly 'Microsoft.SharePoint.Portal, Version=14.0.0.0, Culture=neutral,  PublicKeyToken=71e9bce111e9429c'.

     

    Here's how it looks it in the Application logs

     

    Untitled

     

     

    Cause

    The file drive:\Program Files\Common Files\Web Server Extensions\14\TEMPLATE\CONTROLTEMPLATES\TaxonomyPicker.ascx is badly formed and  doesn't compile.

     

    Solution

    You can change the bad syntax of the file as follows

    • Navigate to /14/ControlTemplates/TaxonomyPicker.ascx user control
    • Open the user control in a text editor and locate the first line
    • Find the character string &#44; and replace with a comma ‘,’ (without quotes).
    • Save the user control.

     

    clip_image002[4]

     

     

    UPDATE

    Sometimes, the error does not go away even after following the steps listed above. In such cases, the fix is to rename the 'TaxonomyPicker.ascx' to  something like 'TaxonomyPicker.ascx_broken' so that we do not try to recompile it each time the AppPool is started. The user control is never used  within SharePoint and therefore serves no real purpose.

  • SharePoint 2010 database attach upgrade with managed paths

     

    Issue with performing a database attach upgrade from 2007 to 2010. Apparently, when you have additional wildcard managed paths (anything other than '/sites') when you upgrade that database to SharePoint 2010 you will end up with a bunch of explicit managed paths in SharePoint 2010. Here’s how the whole thing looks

    2007 Wildcard managed paths

    • /sites
    • /IN
    • /WC

    2007 Site collections in content database

    • /
    • /Sites/SCDefault
    • /IN/Inclusion
    • /WC/Wildcard

    After attaching the content database to new SharePoint 2010 web application using the 'Mount-SPContentDatabase' PowerShell command, the managed paths section looks like follows

    • /Sites              -  wildcard
    • /IN/Inclusion   -  explicit
    • /WC/Wildcard  -  explicit

    image

    Clearly, the managed paths created are not the same as they were in 2007 and this is not a scenario we want to be in. For one when we try to create a new site collection named ‘upgrade’ under ‘IN’ we will not be able to create it at ‘/IN/upgrade’ since the managed path for ‘IN’ no longer exists.

    Note All of your site collections will still be available in the above scenario.

    Solution

    Create managed paths before attaching 2007 content databases

    Make a note of the managed paths you need before performing the upgrade and follow these steps

    • Create a new web application in 2010.
    • Go into Central Admin > Web Application management and the click your web application
    • Select managed paths from the ribbon to create your wildcard manage paths. 
    • Run the 'Mount-SPContentDatabase' command to upgrade and attach the 2007 content database the 2010.

    If you are already facing this issue, follow the steps listed below

    • Go into Central Admin > Manage Content databases and remove the upgraded databases.
    • Once they are detached we need to delete all of the explicit managed paths for the database.
    • Create the wild card paths which you want.
    • Reattach your content database.

    that’s it folks!!

  • How to Improve SharePoint Performance and Scalability

    SharePoint is a database driven product and makes frequent database trips for almost all of its work. Most of what is shown to the user is either a list or a document (also called a BLOB) and both come from the database.

    As a result, SharePoint performance is often not very good (slow response times). Slow response times can frustrate users and in case of customer facing applications, you can even lose customers and as a result direct revenue.

    The SharePoint performance problems occur primarily due to the two reasons:

    • BLOBs overwhelm SQL Server: SQL Server is a relational database that was designed to store structured relational data and not large binary data. Therefore, when SharePoint stores its documents (BLOBs) in SQL Server, it overwhelms the database and this slows down SharePoint performance considerably. More than 90% of the data stored in SQL Server for SharePoint is BLOB data.
    • Too many database trips for lists: Lists are the central characteristic of SharePoint and everything is displayed as lists to the user. And, all these lists are stored in SQL Server and SharePoint makes too many trips to the database which also overwhelms it and this slows down SharePoint performance.

    image

     

    Figure 1: SharePoint deployment with performance bottlenecks

    As you can see in Figure 1, the Web Front End (WFE) servers are frequently going to the SQL Server cluster for meta data, list content, and BLOBs. On top of this, Index Server and Query Servers are also going to the same database. The entire database is overloaded and slows down quite a bit. That is the reason why in typical deployments SharePoint performance cannot scale beyond 6-7 WFE servers in a load-balanced web farm.

    So what's the solution?...............Externalize BLOBs and Use Caching

    What you need is better SharePoint performance with faster response times even as your increase the number of users or number of WFE servers in the web farm. Better SharePoint performance results in satisfied users and an increase in revenue or website loyalty if your application is customer facing.

    You can dramatically improve SharePoint performance if you use a few of intelligent techniques. They are:

    • Externalize Documents (BLOBs): By moving all your BLOBs out of SQL Server and into a file system or SAN/NAS storage, you will relieve a lot of pressure from the database. This will allow SQL Server to focus more on what it does best, namely to process relational data transactions. And, a faster SQL Server means better SharePoint performance with more scalability.
    • Cache Lists and BLOBs: By using caching on lists, you would reduce the database traffic even further since most structured data in SharePoint is displayed as lists. Caching list should reduce lists traffic by 50-70% since most database operations for lists are read-operations. Additionally, by caching BLOBs in an extremely fast in-memory cache, you’re even reducing trips to the file server of SAN/NAS storage and improving your BLOB read performance greatly which improves SharePoint performance.

    image

    Figure 2: Better SharePoint Performance with externalized BLOBs & Caching

    Figure 2 shows how by using a combination of external BLOB storage (EBS) and in-memory caching, you can dramatically improve not only SharePoint performance but keep this good performance even when you increase user/transaction load on your SharePoint deployment.

    The database trips are now made only to read lists once and then they’re cached for a configurable period of time so you don’t have to make these expensive database trips for lists again. Additionally, BLOBs are moved out of SQL Server and therefore all BLOB operations no longer go to the database. And, on top of all this, in-memory caching is used on both BLOBs and Lists which improves access time from WFE server to the cache and results in better SharePoint performance.

  • Send a basic and formatted e-mail message from a workflow

     

    Send a basic and formatted e-mail message from a workflow

      

    In workflow designing, Send E-mail is the arguably the most popular and commonly used action. Now the out of the box formatting used by the designer is something most of us would like to modify so as to improve the look and feel of the mail which is generated by the workflow. However the editor of the e-mail body does not contain any formatting tools, this can be done by the designer……………Read On

    Since the Workflow Designer supports only inline styles for formatting messages, and not external or embedded cascading style sheet (CSS) formatting, you must do any formatting that you want by using the style attribute with HTML tags. You can do this either by typing the HTML tags directly into the Define E-mail Message dialog box in the Workflow Designer, or by creating the body of your message in Code view and Design view and then pasting it into the Define E-mail Message dialog box.

     

    Design the HTML needed in the body

     

    1. Create a new HTML page from File > New > HTML.
    2. In the new pane, select Split view from the bottom left corner of the screen

     

    clip_image001

    There are two considerations when you use HTML in workflows :

     

    Consideration 1

    • Workflow e-mails do not support class-based styles. All the formatting must be done using inline styles.
    • If you format the message text in Code view and Design view, you must set Style Application to Manual so that SPD 2007 does not add CSS classes, which the server cannot render in workflow mail.
    • For this, click the Style Application icon on the bottom bar.
    • Make sure that Style Application is set to Manual and the Target Rule is set to New Inline Style.
      

    clip_image001

     

     

    Consideration 2

    • Any white space will affect how the designed HTML will be displayed. So it is recommended to remove it.
    • This can be done easily by performing these steps:
    • Click Tools > Optimize HTML.
    • In the Remove Whitespace section, select HTML all whitespace.

     

    clip_image002

     

    • Click OK. 
    • All the whitespace should be removed from the HTML code in the Code Pane.
    • To get the formatted text again, Select the text in the Code Pane > right-click > reformat HTML.

    3.  Delete the default text in the Code Pane.

    4.  Copy and Paste the following text as an example in the Code Pane.

                     

    <table style="border-collapse: collapse; width: 100%" dir="ltr" cellspacing="0">

    <tr style="background-color: #f8f8f9; border: thin #e8eaec solid">

    <td style="font-family: Verdana; font-size: 16pt; background-color: #f8f8f9; border: thin #e8eaec solid; padding: 20px 20px 20px 20px">

    An announcement has been added by

    <strong style="color: #008B00; font-variant: small-caps">[*****LOOKUP Created

    By*****]</strong></td>

    </tr>

    <tr>

    <td></td>

    </tr>

    <tr style="background-color: #f8f8f9; border: thin #e8eaec solid">

    <td style="font-family: Verdana; font-size: 14pt; background-color: #f8f8f9; border: thin #e8eaec solid; padding: 10px 40px 10px 40px">

    Item Details</td>

    </tr>

    <tr>

    <td style="font-family: Calibri; font-size: 12pt; padding: 5px 60px 5px 60px">

    <ul style="margin-top: 5px; margin-bottom: 5px">

    <li style="margin-top: 1px; margin-bottom: 1px">Title: [*****LOOKUP

    TITLE*****]</li>

    <li style="margin-top: 1px; margin-bottom: 1px">Expiration Date: [*****LOOKUP

    EXPIRATION DATE*****]</li>

    </ul>

    </td>

    </tr>

    </table>

    5.  Click anywhere in the Design Pane, in order to see how your mail body would look like.

    6.  Perform the changes you wish.

    7.  Now remove the whitespace as explained in the previous Note section.

      

    Formatting

     

    Format text as usual by using WYSIWYG tools in Design view

    • If you want to format text inside a tag — for example, <para> or <li> — position the insertion point in Code view, and then double-click the tag you want in the Toolbox.
    • Alternatively, you can type the tag, and then use IntelliSense to insert the style attribute and any property/value pairs that you want. Make sure to separate property/value pairs with a semicolon.

     

    A few best practices

    • Use paragraph tags (<p> and </p>) to define separate paragraphs, and to specify any default formatting for a paragraph that is different from the default formatting for the message overall.
    • Within a paragraph, use additional span tags to specify any local formatting that differs from the default formatting of the paragraph and the message overall.
    • The Workflow Designer renders any manual line break as an additional line break in the message. Because the paragraph tags already add appropriate space between paragraphs, you must remove all manual line breaks from the final version of the message in the Designer to avoid having too much space between paragraphs. [Consideration 2]

    Not Supported

    The following options are not supported by the current version of the Send an Email action

    • Specifying an address on the From line.
    • Including a hyperlink to the Workflow Status page.
    • Using an embedded cascading style sheet (CSS) to format message content. (Text can be formatted by using the style attribute, but the <style> tag and CSS classes are not supported.)
    • Using a workflow lookup in either the To or CC box that references a column of the Person or Group type that contains multiple values.
    • Specifying a Bcc (blind carbon copy) recipient for a message.
    • Including another file with a message as an attachment.
    • Embedding image or graphic files in a message though you can specify a link to an image).

    Reference
    Send e-mail in a workflow (Office.microsoft.com)

  • SharePoint 2007 Limitations in numbers and figures

    This is available on Technet (Plan for software boundaries)

     

    Limitations

    Here is a summary of the recommendations for improving performance at each level of storage when high volumes of content are being stored:

    1

     

     

    2

    The following table lists the recommended guidelines for people objects.

    3

    The following table lists the recommended guidelines for logical architecture objects.

    4

    The following table lists the recommended guidelines for physical objects.

    5

  • Configuring Large File Support in SharePoint

    The default max single file upload size is 50 MB by default for a web application. The maximum that the product itself can handle or support is 2 GB which is essentially a SQL limit. It's true that simply removing this, it doesn't mean that a user can upload a 2GB file.  The server time out settings, browser and network speed play a large part in what is truly supportable.   Downloading those same files over large distances can cause a timeout.