Share via


InstanceStore.Execute Metodo

Definizione

Esegue in modo sincrono un comando di persistenza. Alcuni esempi di comandi di persistenza sono rappresentati da 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.

Restituisce

Oggetto InstanceView che rappresenta lo stato noto dell'istanza dopo il completamento del comando. Se è stato chiamato Execute in una transazione, è possibile che questo stato includa dati di cui non è stato eseguito il commit. Al termine del commit della transazione, sarà possibile considerare i dati nell'oggetto InstanceView come dati di cui è stato eseguito il commit.

Commenti

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

Avviso

Se questo metodo viene eseguito con un CreateWorkflowOwnerCommandoggetto , creerà un oggetto InstanceOwner e lo associerà 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 non sia scaduto.

Si applica a