Code:
/ 4.0 / 4.0 / DEVDIV_TFS / Dev10 / Releases / RTMRel / ndp / cdf / src / WF / RunTime / Hosting / WorkflowTransactionService.cs / 1305376 / WorkflowTransactionService.cs
//------------------------------------------------------------------------------ //// Copyright (c) Microsoft Corporation. All rights reserved. // //----------------------------------------------------------------------------- #region Using directives using System; using System.Transactions; #endregion namespace System.Workflow.Runtime.Hosting { public abstract class WorkflowCommitWorkBatchService : WorkflowRuntimeService { public delegate void CommitWorkBatchCallback(); virtual internal protected void CommitWorkBatch(CommitWorkBatchCallback commitWorkBatchCallback) { Transaction tx = null; if (null == Transaction.Current) tx = new CommittableTransaction(); else tx = Transaction.Current.DependentClone(DependentCloneOption.BlockCommitUntilComplete); try { using (TransactionScope ts = new TransactionScope(tx)) { commitWorkBatchCallback(); ts.Complete(); } CommittableTransaction committableTransaction = tx as CommittableTransaction; if (committableTransaction != null) committableTransaction.Commit(); DependentTransaction dependentTransaction = tx as DependentTransaction; if (dependentTransaction != null) dependentTransaction.Complete(); } catch (Exception e) { tx.Rollback(e); throw; } finally { if (tx != null) { tx.Dispose(); } } } } } // File provided for Reference Use Only by Microsoft Corporation (c) 2007. //------------------------------------------------------------------------------ //// Copyright (c) Microsoft Corporation. All rights reserved. // //----------------------------------------------------------------------------- #region Using directives using System; using System.Transactions; #endregion namespace System.Workflow.Runtime.Hosting { public abstract class WorkflowCommitWorkBatchService : WorkflowRuntimeService { public delegate void CommitWorkBatchCallback(); virtual internal protected void CommitWorkBatch(CommitWorkBatchCallback commitWorkBatchCallback) { Transaction tx = null; if (null == Transaction.Current) tx = new CommittableTransaction(); else tx = Transaction.Current.DependentClone(DependentCloneOption.BlockCommitUntilComplete); try { using (TransactionScope ts = new TransactionScope(tx)) { commitWorkBatchCallback(); ts.Complete(); } CommittableTransaction committableTransaction = tx as CommittableTransaction; if (committableTransaction != null) committableTransaction.Commit(); DependentTransaction dependentTransaction = tx as DependentTransaction; if (dependentTransaction != null) dependentTransaction.Complete(); } catch (Exception e) { tx.Rollback(e); throw; } finally { if (tx != null) { tx.Dispose(); } } } } } // File provided for Reference Use Only by Microsoft Corporation (c) 2007.
Link Menu
This book is available now!
Buy at Amazon US or
Buy at Amazon UK
- DataTableReaderListener.cs
- MethodCallConverter.cs
- BitStack.cs
- RequestNavigateEventArgs.cs
- GregorianCalendarHelper.cs
- EventBuilder.cs
- UserMapPath.cs
- WindowsMenu.cs
- linebase.cs
- InfiniteTimeSpanConverter.cs
- SqlRetyper.cs
- NamespaceQuery.cs
- ClusterSafeNativeMethods.cs
- LogicalMethodInfo.cs
- KeyConstraint.cs
- Mutex.cs
- ExecutedRoutedEventArgs.cs
- ProcessHostMapPath.cs
- BrowserCapabilitiesCodeGenerator.cs
- Pair.cs
- AnnotationService.cs
- PrintPreviewDialog.cs
- SetIterators.cs
- TextRangeProviderWrapper.cs
- PartitionerStatic.cs
- RijndaelManagedTransform.cs
- mda.cs
- SettingsPropertyNotFoundException.cs
- RSAPKCS1SignatureFormatter.cs
- DigestTraceRecordHelper.cs
- Focus.cs
- ListCollectionView.cs
- DbConnectionPoolOptions.cs
- DummyDataSource.cs
- Visual3D.cs
- PositiveTimeSpanValidatorAttribute.cs
- DataSysAttribute.cs
- EventSourceCreationData.cs
- HandlerBase.cs
- FormatPage.cs
- WindowsTokenRoleProvider.cs
- Ray3DHitTestResult.cs
- Types.cs
- XmlWriter.cs
- ConstructorArgumentAttribute.cs
- InfocardChannelParameter.cs
- ObjectIDGenerator.cs
- AnimationClockResource.cs
- WebPart.cs
- TextEditorContextMenu.cs
- SerializationObjectManager.cs
- WebPartTracker.cs
- QilPatternFactory.cs
- SmiEventSink_Default.cs
- ZoneMembershipCondition.cs
- Validator.cs
- TraceContextEventArgs.cs
- ExchangeUtilities.cs
- Scripts.cs
- GridViewUpdateEventArgs.cs
- WebEncodingValidatorAttribute.cs
- Viewport2DVisual3D.cs
- ControlPropertyNameConverter.cs
- ECDiffieHellmanCng.cs
- DataGridViewColumnConverter.cs
- MasterPage.cs
- ActivityExecutorOperation.cs
- AsyncOperation.cs
- VariantWrapper.cs
- CustomValidator.cs
- MatrixStack.cs
- IOException.cs
- GlyphInfoList.cs
- DataContractJsonSerializer.cs
- EastAsianLunisolarCalendar.cs
- DisplayToken.cs
- DesignerTransaction.cs
- XmlMessageFormatter.cs
- SyndicationLink.cs
- ExecutionTracker.cs
- MethodExpr.cs
- AttributeData.cs
- DefaultAssemblyResolver.cs
- StringCollection.cs
- EmptyCollection.cs
- UniqueSet.cs
- Array.cs
- SecurityTokenTypes.cs
- TextLine.cs
- SHA384CryptoServiceProvider.cs
- SqlRetyper.cs
- WebAdminConfigurationHelper.cs
- ExtentCqlBlock.cs
- HttpResponseWrapper.cs
- ContentDesigner.cs
- VisemeEventArgs.cs
- Helpers.cs
- ContentElement.cs
- PackWebRequestFactory.cs
- PropertySet.cs