InstanceStore.Execute Metodo

Definizione

Esegue un comando di persistenza in modo sincrono. Esempi di comandi di persistenza sono: LoadWorkflowCommand e SaveWorkflowCommand.

public:
 System::Runtime::DurableInstancing::InstanceView ^ Execute(System::Runtime::DurableInstancing::InstanceHandle ^ handle, System::Runtime::DurableInstancing::InstancePersistenceCommand ^ command, TimeSpan timeout);
public System.Runtime.DurableInstancing.InstanceView Execute(System.Runtime.DurableInstancing.InstanceHandle handle, System.Runtime.DurableInstancing.InstancePersistenceCommand command, TimeSpan timeout);
member this.Execute : System.Runtime.DurableInstancing.InstanceHandle * System.Runtime.DurableInstancing.InstancePersistenceCommand * TimeSpan -> System.Runtime.DurableInstancing.InstanceView
Public Function Execute (handle As InstanceHandle, command As InstancePersistenceCommand, timeout As TimeSpan) As InstanceView

Parametri

handle
InstanceHandle

Handle di istanza.

command
InstancePersistenceCommand

Comando da eseguire.

timeout
TimeSpan

Valore di timeout per l'operazione.

Valori restituiti

Oggetto InstanceView che rappresenta lo stato noto dell'istanza dopo il completamento del comando. Se Execute è stato chiamato in una transazione, questo stato può includere dati di cui non è stato eseguito il commit. Dopo il commit della transazione, i dati nell'oggetto InstanceView possono essere considerati di cui è stato eseguito il commit.

Commenti

Un host chiama il Execute metodo per eseguire un comando di persistenza su un handle di istanza, ottenuto dall'host richiamando il CreateInstanceHandle metodo . L'handle di istanza può essere associato a entità che rappresentano il contesto e l'oggetto del comando, ad esempio un'istanza, un proprietario dell'istanza o un blocco dell'istanza. È possibile eseguire un solo comando su un handle di istanza alla volta.

Avvertimento

Se questo metodo viene eseguito con un CreateWorkflowOwnerCommandoggetto , verrà creato un oggetto InstanceOwner e associato all'istanza di . Ciò significa che nessun altro processo sarà in grado di accedere a tale flusso di lavoro; se il processo termina, il flusso di lavoro non può essere recuperato o eseguito. Se un flusso di lavoro di questo tipo viene eseguito di nuovo, verrà generata un'eccezione InstanceLockedException .

Se CreateWorkflowOwnerCommand non viene usato, l'archivio di istanze creerà un temporaneo InstanceOwner che verrà eliminato alla fine del processo. Tuttavia, se il processo termina prima del punto di persistenza finale del flusso di lavoro, questa eccezione verrà generata, a meno che il periodo di tempo specificato nel parametro HostLockRenewalPeriod sia scaduto.

Si applica a