Schéma de la base de données de persistance
Cette rubrique décrit les vues publiques prises en charge par le magasin d'instances de workflow SQL.
Vue Instances
La vue Instances contient des informations générales sur toutes les instances de workflow dans la base de données.
Nom de la colonne | Type de colonne | Description |
---|---|---|
InstanceId | UniqueIdentifier | ID d'une instance de workflow. |
PendingTimer | DateTime | Indique que le workflow est bloqué sur une activité Delay et reprendra lorsque le minuteur aura expiré. Cette valeur peut être Null si le workflow n'est pas bloqué dans l'attente de l'expiration du minuteur. |
CreationTime | DateTime | Indique le moment de création du workflow. |
LastUpdatedTime | DateTime | Indique la dernière fois que le workflow a été rendu persistant dans la base de données. |
ServiceDeploymentId | BigInt | Joue le rôle de clé étrangère pour la vue [ServiceDeployments]. Si l'instance de workflow actuelle est une instance d'un service hébergé sur le Web, cette colonne a une valeur ; sinon, elle a la valeur NULL. |
SuspensionExceptionName | Nvarchar(450) | Indique le type d'exception (par exemple, InvalidOperationException) qui a provoqué l'interruption du workflow. |
SuspensionReason | Nvarchar(max) | Indique la raison de l'interruption de l'instance de workflow. Si une exception a provoqué l'interruption de l'instance, cette colonne contient le message associé à l'exception. Si l'instance a été interrompue manuellement, cette colonne contient la raison, spécifiée par l'utilisateur, de l'interruption de l'instance. |
ActiveBookmarks | Nvarchar(max) | Si l'instance de workflow est inactive, cette propriété indique sur quels signets l'instance est bloquée. Si l'instance n'est pas inactive, cette colonne contient la valeur NULL. |
CurrentMachine | Nvarchar(128) | Indique le nom de l'ordinateur ayant actuellement l'instance de workflow chargée en mémoire. |
LastMachine | Nvarchar(450) | Indique le dernier ordinateur qui a chargé l'instance de workflow. |
ExecutionStatus | Nvarchar(450) | Indique l'état d'exécution actuel du workflow. Les états possibles sont notamment Exécution, Inactif, Fermé. |
IsInitialized | bit | Indique si l'instance de workflow a été initialisée. Une instance de workflow initialisée est une instance de workflow rendue persistante au moins une fois. |
IsSuspended | bit | Indique si l'instance de workflow a été interrompue. |
IsCompleted | bit | Indique si l'exécution de l'instance de workflow est terminée. Remarque : si et seulement si la propriété InstanceCompletionAction a comme valeur définie DeleteAll, les instances sont supprimées de la vue une fois terminées. |
EncodingOption | TinyInt | Décrit l'encodage utilisé pour sérialiser les propriétés de données. - 0 - Aucun encodage - 1 – GzipStream |
ReadWritePrimitiveDataProperties | Varbinary(max) | Contient les propriétés de données d'instance sérialisée qui seront retournées au runtime de workflow lors du chargement de l'instance. Chaque propriété primitive est un type CLR natif, ce qui signifie qu'aucun assembly particulier n'est requis pour désérialiser l'objet blob. |
WriteOnlyPrimitiveDataProperties | Varbinary(max) | Contient les propriétés de données d'instance sérialisée qui ne sont pas retournées au runtime de workflow lors du chargement de l'instance. Chaque propriété primitive est un type CLR natif, ce qui signifie qu'aucun assembly particulier n'est requis pour désérialiser l'objet blob. |
ReadWriteComplexDataProperties | Varbinary(max) | Contient les propriétés de données d'instance sérialisée qui seront retournées au runtime de workflow lors du chargement de l'instance. Un désérialiseur nécessiterait une connaissance de tous les types d'objets stockés dans cet objet blob. |
WriteOnlyComplexDataProperties | Varbinary(max) | Contient les propriétés de données d'instance sérialisée qui ne sont pas retournées au runtime de workflow lors du chargement de l'instance. Un désérialiseur nécessiterait une connaissance de tous les types d'objets stockés dans cet objet blob. |
IdentityName | Nvarchar(max) | Nom de la définition de workflow. |
IdentityPackage | Nvarchar(max) | Informations sur le package fournies lors de la création du workflow (comme le nom de l'assembly). |
Build | BigInt | Numéro de la build pour la version de workflow. |
Majeure | BigInt | Numéro de la version majeure du workflow. |
Secondaire | BigInt | Numéro de la version mineure du workflow. |
Révision | BigInt | Numéro de révision de la version du workflow. |
Attention
La vue Instances contient également un déclencheur DELETE. Les utilisateurs disposant des autorisations appropriées peuvent exécuter, sur cette vue, des instructions de suppression qui supprimeront de force des instances de workflow de la base de données. Il est recommandé de n'effectuer une suppression directe dans la vue qu'en dernier recours, car la suppression d'une instance sous le runtime de workflow peut avoir des conséquences inattendues. Utilisez plutôt le point de terminaison de gestion de l'instance de workflow pour que le runtime de workflow arrête l'instance. Si vous voulez supprimer un grand nombre d'instances de la vue, assurez-vous qu'il n'y aucun runtime actif susceptible d'être en train d'utiliser ces instances.
Vue ServiceDeployments
La vue ServiceDeployments contient les informations de déploiement pour tous les services de workflow hébergés sur le Web (IIS/WAS). Chaque instance de workflow qui est hébergée sur le Web contiendra un ServiceDeploymentId qui fait référence à une ligne dans cette vue.
Nom de la colonne | Type de colonne | Description |
---|---|---|
ServiceDeploymentId | BigInt | Clé primaire pour cette vue. |
SiteName | Nvarchar(max) | Représente le nom du site qui contient le service de workflow (par exemple, Site web par défaut). |
RelativeServicePath | Nvarchar(max) | Représente le chemin d’accès virtuel relatif au site qui pointe vers le service de workflow. (par exemple, /app1/PurchaseOrderService.svc). |
RelativeApplicationPath | Nvarchar(max) | Représente le chemin d’accès virtuel relatif au site qui pointe vers une application contenant le service de workflow. (par exemple, /app1). |
NomService | Nvarchar(max) | Représente le nom du service de workflow. (par exemple, PurchaseOrderService). |
ServiceNamespace | Nvarchar(max) | Représente l'espace de noms du service de workflow. (par exemple, MyCompany). |
La Vue ServiceDeployments contient également un déclencheur DELETE. Les utilisateurs disposant des autorisations appropriées peuvent exécuter, sur cette vue, des instructions de suppression pour supprimer des entrées ServiceDeployment de la base de données. Notez les points suivants :
La suppression d'entrées de cette vue est coûteuse, car l'intégralité de la base de données doit être verrouillée avant d'effectuer cette opération. Cela est nécessaire pour éviter le scénario où une instance de workflow pourrait faire référence à une entrée ServiceDeployment inexistante. Effectuez les suppressions dans cette vue uniquement pendant les temps d'inactivité/périodes de maintenance.
Toute tentative de supprimer une ligne ServiceDeployment référencée par des entrées dans la vue Instances entraînera une absence d'opération. Vous ne pouvez supprimer que les lignes ServiceDeployment sans références.
Vue InstancePromotedProperties
La vue InstancePromotedProperties contient les informations pour toutes les propriétés promues spécifiées par l'utilisateur. Une propriété promue fonctionne comme une propriété de première classe, qu'un utilisateur peut utiliser dans des requêtes pour récupérer des instances. Par exemple, un utilisateur pourrait ajouter une promotion PurchaseOrder qui stocke toujours le coût d'une commande dans la colonne Value1. Cela permettrait à un utilisateur de rechercher toutes les commandes fournisseur dont le coût dépasse une certaine valeur.
Type de colonne | Type de colonne | Description |
---|---|---|
InstanceId | UniqueIdentifier | ID de l'instance de workflow. |
EncodingOption | TinyInt | Décrit l'encodage utilisé pour sérialiser les propriétés binaires promues. - 0 - Aucun encodage - 1 – GZipStream |
PromotionName | Nvarchar(400) | Nom de la promotion associée à cette instance. Le PromotionName est requis pour ajouter un contexte aux colonnes génériques dans cette ligne. Par exemple, le PromotionName « PurchaseOrder » pourrait indiquer que Value1 contient le coût de la commande, que Value2 contient le nom du client qui a passé la commande, que Value3 contient l'adresse du client, etc. |
Value[1-32] | SqlVariant | Value[1-32] contient des valeurs qui peuvent être stockées dans une colonne SqlVariant. Une promotion unique ne peut pas contenir plus de 32 SqlVariants. |
Value[33-64] | Varbinary(max) | Value[33-64] contient des valeurs sérialisées. Par exemple, Value33 pourrait contenir une image JPEG d'un élément acheté. Une promotion unique ne peut pas contenir plus de 32 propriétés binaires. |
La vue InstancePromotedProperties est liée à un schéma, ce qui signifie que les utilisateurs peuvent ajouter des index sur une ou plusieurs colonnes afin d'optimiser les requêtes sur cette vue.
Notes
Une vue indexée requiert plus de stockage et ajoute une charge de traitement supplémentaire. Pour plus d'informations, reportez-vous à Improving Performance with SQL Server 2008 Indexed Views (en anglais).