This chapter covers the tools and techniques for creating stratified and scaled implementations. I covered multiserver installations and Project Server instances conceptually in Chapter 4 because they have a significant impact on hardware selection. Here I focus on the physical techniques to implement the server strategies discussed in Chapter 4.
In my professional practice implementing Project Server for corporate America, I’ve made it a standard practice to create at least one additional Project Server instance in all of my implementations. I’ve found that my clients are eager to “play” with their new technology once it’s implemented. Further, all companies have an immediate and ongoing need for training as new users are added to the system. A second site provides a training/sandbox environment that can meet this need without placing the production environment in jeopardy. Once you’ve established the second site, it’s very easy to take a snapshot of production and move it to the sandbox.
Any additional site you create is subject to the same domain control as your first site. It uses the same identities to access the Project Server and SharePoint Team Services (STS) databases as the first site. Only one set of these identities is available for all sites, despite the fact that they connect to different Project Server and STS database instances. In other words, all the instances that you create are part of the same security group.
Microsoft provides a handy tool that’s essential to this process and is available for download from the Microsoft Download Center. Type http://download.microsoft.com in your browser to reach the Download Center. Once you’ve accessed the home page, select Microsoft Project in the Product/Technology selection box and type site editor in the keywords entry box. Click the result link and follow the directions to download the editsite.exe file to your computer. While you’re on the Microsoft site, you should also have a look at the Knowledge Base article related to this tool; however, as of this writing, the directions contained in it are inadequate. See article Q320231 at http://support.microsoft.com/default.aspx?scid=kb;en-us;Q323021.
Project Server uses two internal identities to talk to the Project Server database. MSProjectUser and MSProjectServerUser are the two SQL identities created during the initial installation. These get created with very strong passwords, which you’ll need to provide when you create the additional sites. Follow these steps to find the passwords for these identities in the registry:
Click the Start button, select Run, and type regedit.
Navigate to HKEY_LOCAL_MACHINE\Software\MicrosoftOffice\ 10.0\MS Project\WebClient Server.
Record the passwords as shown in Figure 7-1 and close the registry.
Figure 7-1. Registry entries for Project Server
You can copy the passwords and paste them into a Notepad document for holding while you complete a number of other tasks that you must finish before you’ll actually need the passwords. Make sure that you properly identify the account that the password belongs to in your document. Double-click the password key you want to copy and copy it from the Edit String dialog box. Right-click the highlighted value and choose Copy, or highlight the value and use the keyboard shortcut Ctrl+C. Be careful not to delete or alter the password or you’ll break your installation.
Adding a corresponding STS site for your new Project Server site is a slightly more manual process than creating the first STS site. Chances are you used your default Web site for the first site, so you’ll create an additional Web site by opening Internet Services Manager and selecting Action New Site to open the Web Site Creation Wizard. Select Next from the splash screen. Enter a description in the first entry screen shown in Figure 7-2.
Figure 7-2. Type a description for your new Web site.
Unless you’re binding the site to an IP address, set the port for the site in the IP Address and Port Settings dialog box to 71 or another unused port, as shown in Figure 7-3. Click Next when you’ve completed your entry.
Figure 7-3. Enter a port number for the new site.
Next you must provide a physical path where the site folders will reside. Keep in mind that STS sites grow with documents. Many organizations use small boot partitions and install data files on other partitions and drives. Select a location that can handle the growth over time. See Figure 7-4 for details, and make sure that you’ve already created the directory for your new site if you don’t want to put it in an existing directory.
Figure 7-4. Select a target directory.
You’re now presented with Access Permissions options. Select Read and select Run scripts. Do not select Execute, Write, or Browse. The proper selections are shown in Figure 7-5. Click Next to continue, and then click Finish to complete the process.
Figure 7-5. Select site access permissions options.
The next step is to extend your new Web site for STS. To do this click the Start button and select Programs Administrative Tools Microsoft SharePoint Administrator. Alternately, type the URL with the Admin port number if you know it. The Microsoft SharePoint Server Administration home page displays. In the Virtual Servers section, as shown in Figure 7-6, you see your existing STS site showing as extended as well as your new site and any other site on the server that hasn’t yet been extended with STS. In Figure 7-6 the Default Web Site is already extended and three additional sites are eligible. Click the Extend link to the right of the site to extend STS onto the site.
Figure 7-6. Select the site to extend by clicking the corresponding Extend link.
After you click Extend, the Extend Virtual Server page displays. Enter the database information, as shown in Figure 7-7, and select the “SharePoint-based Web site” radio button. Once you’ve entered the correct information, click Submit to process the site.
Figure 7-7. Enter the database information and click Submit.
While the system processes the request, it will display the familiar animated sprocket GIF. When the processing is complete, the Server Administration page will redisplay, showing your new site as extended (see Figure 7-8). If you open SQL Server Enterprise Manager, you’ll now see an additional STS database. Note that the number sequence on the database may not be incremented by one.
Figure 7-8. The Microsoft SharePoint Server Administration page showing the newly extended site
Now that you’ve extended the site for SharePoint, you must now provision it for Project Server. This adds Project Server–specific modifications to the site. To do this, you’ll run stswiz.exe, which you may recall using to install STS the first time. Launch stswiz.exe from your installation CD. Navigate to the Support folder to locate the executable. From the splash screen, select the “Provision Additional SharePoint Web sites for Project Server” option and click Next.
The site selection screen displays next (see Figure 7-9). Select the site you want to provision and click Next twice to provision the site. If you make an error or select an ineligible site, the system will report errors when you click Next on the first screen.
Figure 7-9. Select the site you want to provision.
When it’s finished provisioning, the system will display the information for your new site. After the initial installation, you wrote this information down to provide during or after the Project Server installation. Do the same now, particularly the database number and the site port number so that you can keep these sorted out later.
As you may have already noticed that, unlike the initial installation, adding additional Project Server instances is a manual process. The difference is that by now you’ve acquired some experience with the technology so it’s less daunting, if not less tedious. The next step is to create a blank database for your new site. To do this, follow these steps:
Open SQL Server Enterprise Manager. Expand your server until you can see the folders. Right-click the Databases folder and select New Database.
In the General tab of the Database Properties dialog box, enter a name for your new database. Something like “projectserver2” will work fine, without the quotes, of course. You can use the Data Files tab to determine the location of the database if you want to change from the default and do the same with the transaction log on its tab. Click OK to create your new database.
Now you have a decision to make. You can populate the database in two ways. The first option is to restore a good Project Server database over the new one you just created, and the second option is to run the database creation scripts. The former option is fast and easy, and it works if you already have a backup of your original empty Project Server database or if you want to copy your nonblank version onto your new site. Note that restoring a Project Server database that already contains projects along with restoring the related SharePoint sites is more involved than the instructions given here. The second option isn’t as difficult as it might sound, because Microsoft has thoughtfully provided a command file to run all the scripts outside of the normal Project Server installation routines. In either case, now is a good time to back up your existing Project Server database. You need the backup to use for the restore for the first option, and you need the backup to protect yourself against accidental missteps during the second approach.
The setupdb.cmd file is in the Scripts.SQL folder in the Microsoft Project Server Directory. By default, this is drive:\Program Files\Microsoft Project Server\Scripts.SQL. To run the scripts, open a command window and change directories to the directory noted previously. Type the following command, substituting your server name for dbServer and your new database name for databasename; use any SQL account with dbo rights and substitute the appropriate password for password. Don’t include the quotes.
Setupdb "dbServer" "databasename" "sa" "password"
The scripts will begin to run, displaying a continuous stream of data as shown in Figure 7-10. This is normal. When processing is complete, the system will report “SetupDB.cmd completed. Press any key to continue.” Your new database is now ready for your new Project Server site. The only difference between this database and the one you created during the initial installation is that the administrator password for this new site is blank. This is because you didn’t run the entire install program, which inserts the password into the administrator account.
Figure 7-10. A stream of data flows after you start the setupdb.cmd process.
Now that you’ve prepared the database, you must add the MSProjectServerUser and MSProjectUser accounts as logons to the database. Open SQL Enterprise Manager and expand your server, expand the Databases folder, and expand your new database. Right-click Users then select New Database User. In the Database User Properties – New User dialog box, select the MSProjectServerUser account from the Login name drop-down selector at the top of the dialog box, as shown in Figure 7-11. Select the MSProjectServerRole under Permit in Database Role. Repeat these steps for the MSProjectUser, selecting its corresponding role in the database, MSProjectUserRole.
Figure 7-11. Add the internal identities and roles to the new database.
Repeating the steps in the previous section for your new Project Server database, you must add the STSAdmin and STSReader accounts as logons to your new STS database. Assign the STSAdmin account to the db_securityadmin role and the STSReader account to the db_datareader role.
It’s now time to use the Site Editor you downloaded in the first step. Start Windows Explorer, navigate to the location on your hard disk to which you downloaded the editor, and unzip the files. Once the files are extracted, navigate to your Program Files directory and find the folder Microsoft Project 2002 Resource Kit. The subfolder ProjectServerSiteEditor contains the extracted editsite.exe. Double-click the file to start the Site Editor, as shown in Figure 7-12.
Figure 7-12. Microsoft Project Server Site Editor main screen
Note that the Site Editor doesn’t register itself on the Windows taskbar, which means you’ll need to go hunting if you open windows on top of it. The main display shows the details for your existing site, which is selected by default. To add your new virtual directory, click Add to open the Create a new site dialog box, as shown in Figure 7-13.
Figure 7-13. The Create a new site dialog box
In the Create a new site dialog box, type a name for the new virtual directory in the Site Name box. The example in the figure is projectserver2. In the Project Server directory and View Drop path fields, verify that the paths to the Microsoft Project Server and View Drop folders are correct, and then continue with the remainder of the fields.
In the Database Server field, type the name of your database server.
In the Database Name field, type the name of the database you created for your new site.
Enter the names of the Project and Project Server users accounts shown in the figure in their respective fields. Paste the corresponding passwords that you harvested from the registry into the appropriate password field.
The first Data Source Name (DSN) created is PC10DSN, which you can see under system data sources on your server or in the main page of the Site Editor. You’ll create a new DSN for your new site. The tool does this for you automatically; you must provide a unique name for it. I add a number to the DSN name to indicate which site it’s for, as shown in Figure 7-13.
Select the Enable Enterprise Features check box.
Lastly, select a Web site for your new virtual directory. You can add this to your default Web site or any other Web site that has both scripts and executables enabled.
Once you’ve entered all the information, click the Create button to create your new site, which takes only a moment. When your new creation completes, open a browser window and log onto your new site, entering Administrator for your username and leaving the password field blank. If your new site doesn’t open correctly, review all the instructions contained in this section. If necessary, refer to Chapter 6.
The Site Editor tool is useful for site maintenance, as it gives you graphical interface access to information and settings for your site stored in the registry. The tool is useful for making changes to existing sites as well as for creating new sites.
While you’re logged onto to your new Project Server site with the administrator account, click the Admin menu and select Manager SharePoint Team Services. If you created the database by running the SQL scripts, the Connect to servers page will display in Project Web Access, as shown in Figure 7-14. If you used a database restore to initialize the database, you must first remove the pointer to the server, as it will be pointing to the server registered to the site that you backed up from. See the server removal instructions that follow.
Figure 7-14. Manage SharePoint Team Services Connect to servers
Click Add Server to open the “Add a Web server running SharePoint Team Services” administration page, as shown in Figure 7-15. Use the information you recorded. Notice that there’s only one SharePoint Team Services administration site per server. All sites share the administration site.
Figure 7-15. Add a Web server running SharePoint Team Services.
When the system has completed processing the request, the Connect to servers page redisplays with the new server information displayed, as shown in Figure 7-16. At this point it’s good to see for yourself that the connection is working properly. There aren’t any issues to browse yet, but you can click through to the Public Documents Library and open it to verify that Project Server is talking to STS.
Figure 7-16. Connect to servers after adding an STS server.
If the server connection is rejected, rerun the proxycfg.exe utility and follow the troubleshooting guide in Chapter 6.
Referring back to the previous image, Figure 7-16, note that the Connect to servers page allows you to modify or remove a server entirely. If you used the SQL restore method to create your new site, and the database backup contains an STS connection record, delete it by highlighting the record and clicking Remove Server. To make changes to an existing record, clicking Modify Server will open an entry page titled Modify Server that is identical to the Add Server page.