SqlWorkflowInstanceStore.InstanceLockedExceptionAction Özellik
Tanım
Önemli
Bazı bilgiler ürünün ön sürümüyle ilgilidir ve sürüm öncesinde önemli değişiklikler yapılmış olabilir. Burada verilen bilgilerle ilgili olarak Microsoft açık veya zımni hiçbir garanti vermez.
Kalıcılık sağlayıcısı bir InstanceLockedExceptionyakaladığında gerçekleştirilecek eylemi belirtir.
public:
property System::Activities::DurableInstancing::InstanceLockedExceptionAction InstanceLockedExceptionAction { System::Activities::DurableInstancing::InstanceLockedExceptionAction get(); void set(System::Activities::DurableInstancing::InstanceLockedExceptionAction value); };
public System.Activities.DurableInstancing.InstanceLockedExceptionAction InstanceLockedExceptionAction { get; set; }
member this.InstanceLockedExceptionAction : System.Activities.DurableInstancing.InstanceLockedExceptionAction with get, set
Public Property InstanceLockedExceptionAction As InstanceLockedExceptionAction
Özellik Değeri
Kalıcılık sağlayıcısı bir yakaladığında gerçekleştirilecek eylem InstanceLockedException
Örnekler
Aşağıdaki kod örneği, içinde SqlWorkflowInstanceStoreInstanceLockedExceptionAction kullanmayı gösterir.
static void Main(string[] args)
{
// Create service host.
WorkflowServiceHost host = new WorkflowServiceHost(new CountingWorkflow(), new Uri(hostBaseAddress));
// Add service endpoint.
host.AddServiceEndpoint("ICountingWorkflow", new BasicHttpBinding(), "");
// Define SqlWorkflowInstanceStoreBehavior:
// Set interval to renew instance lock to 5 seconds.
// Set interval to check for runnable instances to 2 seconds.
// Instance Store does not keep instances after it is completed.
// Select exponential back-off algorithm when retrying to load a locked instance.
// Instance state information is compressed using the GZip compressing algorithm.
SqlWorkflowInstanceStoreBehavior instanceStoreBehavior = new SqlWorkflowInstanceStoreBehavior(connectionString);
instanceStoreBehavior.HostLockRenewalPeriod = new TimeSpan(0, 0, 5);
instanceStoreBehavior.RunnableInstancesDetectionPeriod = new TimeSpan(0, 0, 2);
instanceStoreBehavior.InstanceCompletionAction = InstanceCompletionAction.DeleteAll;
instanceStoreBehavior.InstanceLockedExceptionAction = InstanceLockedExceptionAction.AggressiveRetry;
instanceStoreBehavior.InstanceEncodingOption = InstanceEncodingOption.GZip;
host.Description.Behaviors.Add(instanceStoreBehavior);
// Open service host.
host.Open();
// Create a client that sends a message to create an instance of the workflow.
ICountingWorkflow client = ChannelFactory<ICountingWorkflow>.CreateChannel(new BasicHttpBinding(), new EndpointAddress(hostBaseAddress));
client.start();
Console.WriteLine("(Press [Enter] at any time to terminate host)");
Console.ReadLine();
host.Close();
}
Açıklamalar
Bir iş akışı hizmet örneği bir ile karşılaştığında hizmet ana bilgisayarının hangi eylemi gerçekleştirmesi InstanceLockedExceptiongerektiğini belirtin. Hizmet ana bilgisayarı, başka bir InstanceLockedException sahip tarafından zaten kilitlenmiş bir örneği kilitlemeye çalıştığında bir alır. Olası değerler aşağıdaki listede yer alıyor:
Yok. Hizmet ana bilgisayar örneği ve geçişleri kilitlemek denemez InstanceLockedException çağırana.
BasicRetry. Hizmet ana bilgisayarı, örneği doğrusal bir yeniden deneme aralığıyla kilitlemeyi yeniden dener ve özel durumu sıranın sonunda çağırana geçirir.
AgresifRetry. Hizmet ana bilgisayarının reattempts bir üssel olarak artan gecikme ve geçişleri örnekle kilitlemek InstanceLockedException dizisi sonunda çağırana. Kilidi mümkün olan en kısa sürede alma girişiminde aralıklar başlangıçta kısadır ve başarısız olan her girişimde aralıklar daha da büyür.
Şunlara uygulanır
Geri Bildirim
https://aka.ms/ContentUserFeedback.
Çok yakında: 2024 boyunca, içerik için geri bildirim mekanizması olarak GitHub Sorunları’nı kullanımdan kaldıracak ve yeni bir geri bildirim sistemiyle değiştireceğiz. Daha fazla bilgi için bkz.Gönderin ve geri bildirimi görüntüleyin