I'm looking for best practices on setting up partitioned service applications in SharePoint. Not the default ones, but a custom one.

As I understand, a partitioned service application like the profile service still uses the same DB as the normal service app does. Only in most tables, the records get an extra identifier in the form of a partitionID key.

So suppose I want to make my own service application with it's own DB. It'll be used in a partitioned environment, so I need to include the partition ID in the tables where that's applicable. Is this just a matter of including a Guid column in each table and including the same Guid in my service methods? Or are there more options on creating service proxy objects to automatically include the partion id in each client call? Does anyone have any experience with this kind of setup?

  • Just a general point - I would think very carefully about whether you really need to build a service application. This is difficult enough, but you are also adding multitenancy. That's two "think carefully before you do this" technologies in one project!
    – SPDoctor
    Commented Jul 25, 2011 at 15:38

1 Answer 1


If you run the Get-Member cmdlet against the new-spservice commands (New-SPProfileSerivce, etc that have the -PartionMode flag), you will notice it is not one of the members / methods returned. Additionally there a switch used in the Install-SPService cmdlet that will provision the service during install (this is the cmdlet used for installing custom services), but there is nothing for Partitions.

Service Applications Visual How-To: http://msdn.microsoft.com/en-us/library/gg543112.aspx#Y600

Service Applications WebCast: http://msdn.microsoft.com/en-us/gg620670

Service Application Background: http://msdn.microsoft.com/en-us/library/cc768569.aspx

Application Framework: http://msdn.microsoft.com/en-us/library/ee536537.aspx

Administering Services with PowerShell http://msdn.microsoft.com/en-us/library/ee537913.aspx

  • Thanks, very helpful. I just don't entirely understand what you're saying about the -PartitionMode flag. It's there but it doesn't exist? Or it doesn't actually do anything? I assume the database and code is exactly the same, but when you don't use it in partitioned mode, the partition id just isn't used, but that still would mean that this is configured somewhere.
    – Jasper
    Commented Jun 22, 2011 at 6:33
  • I'm not a strong DEV guy, but it looks like MS didn't make the partition methods available for custom solutions. I didn't find anything in the SDK about it either. Commented Jun 22, 2011 at 12:30
  • Right, so there's nothing ootb on installation. But what I'm really curious about is calling methods of the service application and handling partitioning there. I'll check out some of the ootb methods to see if they include a "partition" parameter, or if that's something available in the service application engine itself.
    – Jasper
    Commented Jun 24, 2011 at 13:03

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.