Welcome to MSDN Blogs Sign in | Join | Help

After three intense weeks in Redmond, three written 2-hours long exams and one final 8-hours long qualification lab (and I don't know how many ice tea cans), I'm now a Microsoft Certified Master for SharePoint 2007!

I made it! :)

Thinking about it, it's interesting how much involving this certification is, how challenging it gets during the three weeks, and how proud you become for passing all the exams. I mean, SharePoint is a very significant part of my job for something like 8 years now, almost 3 of which on the current version... after so much time you're expected to know your friend pretty well, to be a master already... shouldn't be so challenging huh?

Well, it is.
First of all, SharePoint is huuuuuge! This is as obvious as it reads, but you really don't stop realizing how true is this, as you don't stop learning new things on this product day after day.
Secondly, SharePoint is a moving ground. Your certainties can easily become false from a Cumulative Update to another if you don't stay up to date... potentially controverting a long series of dependent factors as a consequence of a small change... Not to talk about the upcoming new version, yet... ;)
Moreover, the Master certification requires a good mix of development and infrastructure skills, something that is not so common in my experience. This is one of the things that I liked most of the course structure, as I'm a strong believer of the fact that you need to have skills on both sides to really master SharePoint (like many other products, but  with a ++).
And finally, the exams are hard! They're doable (I mean not just for extra-terrestrians), but really hard! Nothing to do with the standard MCP exams we're used to. To pass these you really need to know the details, and to have hands-on experience as well.

So, that's why it was challenging, and that's why I feel so good about being part of the SharePoint Masters community. And I see others being as proud as me for that.

I have to say, the value from this unique training didn't arrive from the trainers only. Of course they're the best-of-breed in every respective area, but what I found really amazing was the value that the class self-generated. We were all SharePoint experts already, with significant experiences and strong skills, and I think the preliminary selections were excellent as well. Peer discussions, ideas exchange, experience sharing in the class were just great, and everyone in the group contributed with passion. Can you imagine being in the same room with other SharePoint field experts from all around the world for three full weeks, fully dedicated? Boy, that was just amazing!

For more info on the program: http://www.microsoft.com/learning/en/us/certification/master.aspx#tab2

The accompanying code of my white paper about Project Server 2007 Performance Testing has been published and is available here: http://code.msdn.microsoft.com/ps07PLT.

The Project Server 2007 Performance Lab Kit contains two Visual Studio solutions/tools to help you test your farm environment for capacity planning purposes: the “EPMTestTools” and the “EPM Stress Test” solution.

“EPMTestTools” is a command line utility that can be used for preparing the environment for your performance tests. To get a list of all available operations and command line parameters, just execute the tool without passing any parameter.

The "EPM Stress Test" solution contains all web and code-based tests used with Visual Studio to collect performance data are included in this solution.

Let me know if you use this, your feedback and possible improvements!

I wrote this white paper and it's finally out: http://www.microsoft.com/downloads/details.aspx?FamilyID=2f595e22-c9f1-4376-a8b2-7a7eccd2aba5&displaylang=en.

It basically describes how to run a Performance Testing lab on Project Server 2007 with Visual Studio 2008 Test Edition and a bunch of other community based tools. There will also be an accompanying project on codeplex (http://ps07plt.codeplex.com, but it's still in the publishing process...) with the Visual Studio solution ready to be used as a starting point for your tests. Finally, the white paper presents some reference results from the lab environment that we used.

Using MOSS Search in scenarios where low latency is needed, requires special attentions to get the best possible results in terms of performance and reliability of the Search sub-system. This is particularly true when one or more of the following conditions are also present in your scenario:

·         the Search sub-system is critical to the service level of the overall solution, e.g. you have direct or indirect service level agreements related to the Search service availability and/or latency;

·         the rhythm of changes in the indexed content is high;

·         the volume of indexed content is large.

The recommendations that I list below come from a direct experience on a solution that required a maximum latency of 5 minutes for new items to be searchable, with millions of items in the corpus, and with an average of about 5,000 new items per day to be indexed (more than 20 new items per minute in peak times).

These recommendations are not rules that you should blindly apply. Rather, they are ideas and pointers that you may want to consider if you need to design or you are supporting a scenario with the characteristics described above with MOSS 2007. There is nothing very special or new here, but I thought it was valuable to collect these recommendations in a single list.

So, here it goes:

1.       Host your Search database files on a dedicated set of disks, and apply due diligence with SQL Server best practices.

See also “Planning and Monitoring SQL Server Storage for Office SharePoint Server: Performance Recommendations and Best Practices” at http://go.microsoft.com/fwlink/?LinkID=105623&clcid=0x409 and “Optimizing tempdb Performance” at http://msdn.microsoft.com/en-us/library/ms175527(SQL.90).aspx.

2.       Split the Search database tables on two different filegroups, and host the corresponding files on different sets of disks, to keep the crawl and query loads segregated and minimize I/O contention.

See the details in “SQL File groups and Search” on the Enterprise Search blog at http://blogs.msdn.com/enterprisesearch/archive/2008/09/16/sql-file-groups-and-search.aspx.

Note however that it makes no sense to split the tables if you are not able to physically host the two filegroups on different sets of disks.

3.       Schedule regular (daily or weekly) indexes defragmentation of the Search database. The following query can be used on SQL Server 2005 or higher to obtain all the indexes with a fragmentation level higher than 10%:

USE <SearchDB>

 

DECLARE @currentDdbId int

SELECT @currentDdbId = DB_ID()

 

SELECT DISTINCT

      i.name,

st.avg_fragmentation_in_percent

FROM sys.dm_db_index_physical_stats (@currentDdbId, NULL, NULL , NULL, 'SAMPLED') st

INNER JOIN sys.indexes AS i

ON st.object_id = i.object_id

WHERE st.avg_fragmentation_in_percent > 10

 

Indexes resulting from the above query should be defragmented.

See also “Database Maintenance for Microsoft SharePoint Products and Technologies” at http://go.microsoft.com/fwlink/?LinkId=111531&amp;clcid=0x409 and “SQL Index defrag and maintenance tasks for Search” on the Enterprise Search Blog at http://blogs.msdn.com/enterprisesearch/archive/2008/09/02/sql-index-defrag-and-maintenance-tasks-for-search.aspx.

4.       Configure the appropriate SQL Maintenance Plans. SQL Server maintenance plans should be configured with the following guidelines:

a.       Search Database

                                                               i.      Check Database integrity using the ‘DBCC CHECKDB WITH PHYSICAL_ONLY’ syntax to reduce the overhead of the command. This should be ran on a weekly basis during off-peak hours. Any error returned from DBCC should be analyzed and solved proactively. The full ‘DBCC CHECKDB’ command should be ran with a lower frequency (e.g. once per month) to provide deeper analysis.

                                                             ii.      Do not Shrink the Search database.

                                                            iii.      Index defragmentation should be executed following the recommendation above.

b.      Content Databases

                                                               i.      Check Database Integrity

1.       Include indexes

                                                             ii.      Shrink Database

1.       Shrink database when it goes beyond: maximum expected size of your content database + 20%

2.       Amount of free space to remain after shrink: 10%

3.       Return freed space to operating system

                                                            iii.      Reorganize Index

1.       Compact large objects

2.       Change free space per page percentage to: 70%

                                                           iv.      Maintenance Cleanup Task

See also “Database Maintenance for Microsoft SharePoint Products and Technologies” at http://go.microsoft.com/fwlink/?LinkId=111531&amp;clcid=0x409 and “SQL Index defrag and maintenance tasks for Search” on the Enterprise Search Blog at http://blogs.msdn.com/enterprisesearch/archive/2008/09/02/sql-index-defrag-and-maintenance-tasks-for-search.aspx.

5.       Pre-size your databases. Avoid the auto-growth behavior for content databases by pre-setting the size to the maximum expected size (ALTER DATABASE … MODIFY FILE … SIZE property). Configure the autogrowth values to a fixed percentage (e.g. 10%) instead of a fixed space.

See also “Planning and Monitoring SQL Server Storage for Office SharePoint Server: Performance Recommendations and Best Practices” at http://go.microsoft.com/fwlink/?LinkID=105623&clcid=0x409.

6.       Configure and test the crawler impact rules for best performance. If you have only one host to index, start with a crawler impact rule to “request 64 documents at a time” in order to maximize the number of threads the crawler can use to index content, with the ultimate goal of increasing the crawl speed. Resources usage on the indexer, dedicated front-end and search database boxes should be monitored, and in case the crawler generates too much activity, the crawler impact rule should be tuned by decreasing the parallelism.

See also “Manage crawler impact rules” at http://technet.microsoft.com/en-us/library/cc261720.aspx, and “Creating crawl schedules and starvation - How to detect it and minimize it” on the Enterprise Search Blog at http://blogs.msdn.com/enterprisesearch/archive/2008/05/09/creating-crawl-schedules-and-starvation-how-to-detect-it-and-minimize-it.aspx.

7.       Configure a separate box as the dedicated web front-end for indexing. Using a dedicated WFE for indexing that is physically separated from the indexer box is recommended, in order to avoid resource contention on the same server for front-end and crawling activities.

There are some restrictions for this configuration, see the details at http://technet.microsoft.com/en-us/library/cc261810.aspx.

8.       Fine tune the Gatherer. The three registry keys below (under HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Office Server\12.0\Search\Global\Gathering Manager) can be changed for better performance (this will require a service restart for the changes to take effect).

a.       FolderHighPriority: Represents the number of high priority folders that can be processed at one time.  If this is too high then the cache in the daemons will constantly be running out of space.  If this is too low then the crawl will be throttled waiting for more items to process.

b.      FilterProcessMemoryQuota: Represents how much memory can be consumed by the search daemon process before it gets killed by the crawler. The OOB default has been chosen based on 4 GB of memory on the indexer. If the customer has higher RAM, they can increase this value to cache more data during the crawl.

c.       DedicatedFilterProcessMemoryQuota: Same as for FilterProcessMemoryQuota except this is the size of the single-threaded daemons.

As an example, if your indexer box is 64-bit with 16 GB of RAM, the following values have been tested successfully:

a.       FolderHighPriority: set to 500

b.      FilterProcessMemoryQuota: set to 208857600

c.       DedicatedFilterProcessMemoryQuota: set to 208857600

9.       Configure multiple content sources for the same web application, if applicable. This depends of course on the information architecture of the content to be indexed. In many cases, however, you may identify one subset of content in your web application where most of the changes happen (“fresh” content), and another subset that is mostly static (archived or older content). If you can, configuring more than one content source to target the “fresh” content areas separately from the “static” areas will give you more flexibility for crawl scheduling. The correct balance needs to be identified, to avoid too many content sources as well (the maximum number of content sources per SSP is 500). Multiple content sources will also help to mitigate the impact of a long running operation of the crawler (like a full crawl) in terms of latency for fresh content to appear in search results, because you will be able to selectively activate the crawling on the desired content sources only, postponing less important crawling activities to off-peak hours, etc.

10.   Implement a “stand-by” SSP. It is well known that SharePoint Server 2007 does not support redundancy on the indexer role with automatic failover. However, multiple SSPs can be implemented to provide a failover strategy in case the main index gets corrupted, or it needs to perform long running operations like full crawls, affecting the latency of fresh content in search results.

By configuring a secondary, or “stand-by”, SSP in the same farm, and having it index the same content as the main SSP (or just the most important subset of your content to keep the stand-by index catalog smaller), it will be possible to switch from one index catalog to the other when needed, just by changing the SSP association of the web application from the Central Administration UI.

In order to ensure the possibility to switch the association back and forth as needed, without losing the content of indexes, it is required that the content source does not target the whole web application (as the default content source does, through the option “Everything under the host name for each start address”), but instead targets the specific site collections (through the option “Only the SharePoint site of each start address”).

Be aware that multiple SSPs sharing the same indexer box will contend for server resources. This is the reason why most of the benefits of configuring a stand-by SSP can only be obtained if using a separate indexer machine.

See also “Plan for availability” at http://technet.microsoft.com/en-us/library/cc748824.aspx.

If there is interest on this topic, I will post the procedure that we used to “clone” an existing SSP for creating the stand-by SSP in the same farm.

There are at least 10 reasons to buy a Windows XP Tablet PC Edition 2005 today, but I just discovered a significant 11th one.

Let's start with the first serious 10:

1. Use Microsoft's Most Advanced Operating System

Microsoft Windows XP Tablet PC Edition is a superset of Windows XP Professional so it provides the power of Windows XP with no sacrifices. Tablet PC Edition has the full capabilities of Windows XP Professional, plus additional features for tablet pen–based computing. And, because it uses the Windows operating system, Tablet PC will run Windows XP–compatible applications.


2. Extend the Way You Work with Your PC.

Windows XP Tablet PC Edition lets you interact with your PC in a more natural way by incorporating the convenient and intuitive aspects of pen and paper into the PC experience. Using a tablet pen and Tablet PC Input Panel, you can write directly on the screen and save your notes in your own handwriting—or convert them to typed text for use in other applications. The pen can also handle common mouse and keyboard tasks like opening applications, selecting text, and displaying menus. Or, if you prefer, you can still use a mouse or keyboard with Tablet PC.


3. Work from Anywhere with the Most Mobile PC Ever.

Tablet PC provides everything you expect in a mobile PC, but in a form that allows you to be productive in more situations—at your desk, in the hallway, at a meeting, or on the go. Tablet PC comes in two basic forms: the "convertible," with an integrated keyboard, and the ultra-slim "slate tablet," which has innovative docking solutions for easy access to the keyboard while at your desk. Tablet PC supports grab-and-go removal from a docking stationand has a fast resume-from-standby time. These capabilities, combined with wireless network support, give you greater mobility and immediate access to the full power of your PC.


4. Take All Your Notes Electronically.

Windows XP Tablet PC Edition comes with Microsoft Windows Journal, a note-taking utility that lets you create and organize your handwritten notes. Windows Journal makes it easy to capture the text and drawings you would normally create using pen and paper. Advanced handwriting recognition technology lets you search your handwritten notes to quickly find what you need.


5. Collaborate Easily and Effectively.

Windows XP Tablet PC Edition lets you integrate electronic "ink" into your everyday business applications such as Microsoft Word 2003, Microsoft PowerPoint® 2003, Microsoft Office OneNote 2003, and Microsoft Excel 2003. Ink integration is native to Microsoft Office 2003 Editions.¹ You can then share these handwritten documents with other PC users—even if they are not using a Tablet PC. PC users with computers running the Windows 2000 or Windows XP operating systems can read your handwritten documents with the free Microsoft Windows Journal Viewer.


6. Personalize Your Experience.

Using Tablet and Pen Settings controls, you can customize your Tablet PC: calibrate your pen, optimize your Tablet PC for left- or right-handed operation, and program the hardware buttons of your Tablet PC to complete specific actions, such as opening an application or changing screen orientation from landscape to portrait.


7. Extend Your Applications with Digital Ink Handwriting.

Windows XP Tablet PC Edition is a powerful platform for developers and the foundation for a new generation of applications with pen and ink capabilities. For example, Windows XP Tablet PC Edition has powerful but simple ink controls and application programming interfaces (APIs). These APIs allow software developers to extend existing applications with pen and ink capabilities and to develop new applications using this technology.


8. Deploy and Manage Easily.

Windows XP Tablet PC Edition includes the advanced deployment technologies and policies included in Windows XP Professional, making it easy to deploy and manage Tablet PCs in the corporate environment.


9. Provide a Global Business Solution.

Windows XP Tablet PC Edition is localized into English, German, French, Japanese, Chinese (Simplified and Traditional), and Korean. In the future, more languages will become available.


10. Get High Levels of Protection for Critical Data.

Windows XP Tablet PC Edition offers all the security features of Windows XP Professional, including the Encrypting File System (EFS) security feature and the access control feature. Tablet PC also supports secure log on to a network using a single CTRL+ALT+DEL hardware button.

 

But today I discovered an important 11th reason to buy a Tablet PC, and I'm going to tell you about it.

11. Give you a way of talking friendly with one of your favorite movie/TV stars just as she was an old friend of yours.

If it happens to you to be in the same flight as one of your favorite, most beautiful, sexy, famous and glamourous women, and you also have the luck to be on the seat at her side, then a Tablet PC is a GREAT way to break the ice, interest her and start a very pleasant journey talking with her.

 

:-)

 

18 Comments
Filed under:

I've just got a new Smartphone, an i-mate SP3. I'm quite excited about it; in my opinion it's a very good piece of technology in as little as 100g of weight. And the software is of course a big part of the smartness of it. So, I wanted to test how easy or hard it would be to develop and deploy a simple application for it. This is the report of about three hours spent after this idea.

1. What application am I going to develop?

Well, I want something simple, but at the same time something that lets me try a bunch of the more interesting features for smart clients... let's say invoking a web service, and download some data from the web. Idea! Why not put together this experiment with my new passion about aeronautics? I'll try to build an application to access the latest METARs and TAFs from any airport in the world! METARs are scheduled weather observations, usually taken every half an hour at the main aerodromes of the world, codified in a string of text (see here for an explanation of the METAR code for the US, and here for the code used in Europe). TAFs are similar to METARs, but they are used to identify weather forecasts instead of observations. How will I call the application? SmartMETARs, of course ;-)

2. Where do I find the data?

First problem, I need to find the data for my application. A quick search on MSN Search Beta brings me to the sources I need. The National Oceanic and Atmospheric Administration provides the raw data I need in text files on the Internet, and Cape Clear SoftwareTM provides a free web service that offers several search features for weather stations, and station details.

3. Develop the application

Now, I have no more excuses: my application is only waiting to be written! I open Visual Studio .NET 2003, looking if I already have what I need to start. New Project - Visual C# Projects - Smart Device Application. Looks promising! The Smart Device Application Wizard starts, asking me to choose the platform to work on. Pocket PC, Windows CE. No Smartphone? No Party!! Ok, ok. I need some SDK. Just a quick search on the MSDN site and I find the download site for the Smartphone SDK! Download, install, reopen VS, bingo!! Smartphone is there now! Opening the new Smartphone project the default form is already sized for the typical LCD dimensions of a phone... cool! The development can start! First thing, let's try debugging on the emulator. Let's try just hitting F5. Gianniiii!!! Optimism is the scient of life!!! (This will be understood only by Italians, or people who watch Italian TV...). A dialog appears, titled "Deploy SmartMETARs", asking me to choose where do I want to deploy the application for debugging. Options are: Smartphone 2003 Emulator (Radio required), Smartphone 2003 Emulator (Virtual Radio), and Smartphone Device. Let's go with the second, that is in fact the default... Deploy! The emulator window opens... nice model! the OS starts, just as on my i-mate... few seconds and then... System_SR_ENU.phone.cab was successfully installed on your device. WOW! Few seconds more... and my form starts, with the debugger attached!!!

Ok, now I can really start developing. Nothing very special, actually. It's all like the full.NET framework (at least for what I need to do :) ). I'll just put here a list of things where I had to spend some time researching:

4. Deploy it

After a couple of hours building the application (6 forms) and testing it on the emulator, I can now try deploying it on my real smartphone! Ok, right click on the project in VS, Deploy... Deploy SmartMETARs dialog... this time I choose Smartphone Device... boom! Deploy failed :-(  Ah, wait a minute... how can the PC deploy it on the phone if it's not connected?!? Tooooo optimistic! Ok, let's try connecting via ActiveSync, and to try the hard way, I go via bluetooth... Connected... retry deploying... Got it!!! Same behavior as the emulator, with the difference that the application doesn't start automatically in debug :-) How the h... do I start it on the phone? The app has been deployed to /Storage/Program Files/SmartMETARs, so I use my Windows Explorer on the PC to browse the device, and to create a shortcut to the .exe under \Storage\Windows\Start Menu\Accessories. Now on the phone I press Start, Others, Others, Accessories... and there it is. Select... Go! My first application is live on my Smartphone. And it works, too!

See my MSN Space for screenshots!

2 Comments
Filed under:

"Pilots take no special joy in walking. Pilots like flying."

You know who said that? Neil Armstrong, the first man who walked on the Moon!

I think the human kind is driven by a continuous desire of having something more, being somehow better, grow and grow and grow again. This is at the very end what drives us toward new frontiers, both at the individual and at the humanity levels. Two of the latest, greatest and fast-growing conquers of the human kind are, in my opinion, the Controlled Flight and the Information Technology. Both of them weren't there just a hundred years ago. Both of them changed the whole world, in not very different ways, at an unprecedented degree. I have been, and I am currently, an active part of the second, even if limited to my very very very little contribution. I am now trying to be an active part of the first, too. I want to learn to fly! I've just completed a flight simulation course at the local aeroclub of Florence, Italy, and now I am starting to study the theory for the Private Pilot License. Depending on my work location in the next future, I'll try to start the course for the Private Pilot License at the aeroclub. I will post updates on my progress on this blog...

Similarly, I will also post updates on my progress learning something in the IT field, too ;-)    I work as a technical Engagement Manager in Microsoft Services Italy. Two of the most probable arguments in the near future on this blog will be related to Business Process Automation with BizTalk 2004, and Windows Media Center development. I won't say anything else here... Just a link to the blog of a colleague of mine, nicknamed "Vibro.Net", who worked with me for the first published italian service for Media Center.

 

agazzeri

 

 

-------------------------
See the DISCLAIMER!

 
Page view tracker