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
- MetabaseSettingsIis7.cs
- QueryConverter.cs
- Dictionary.cs
- IIS7WorkerRequest.cs
- PathGeometry.cs
- ByteStack.cs
- ThumbButtonInfo.cs
- DBDataPermissionAttribute.cs
- Section.cs
- LinqDataSourceValidationException.cs
- ToolStripGripRenderEventArgs.cs
- PlainXmlDeserializer.cs
- SoapMessage.cs
- CmsInterop.cs
- CellTreeSimplifier.cs
- FlowPosition.cs
- PseudoWebRequest.cs
- DeviceSpecificChoiceCollection.cs
- ValidatorUtils.cs
- UIElementHelper.cs
- DataColumnMapping.cs
- HexParser.cs
- JournalNavigationScope.cs
- WsdlInspector.cs
- Stackframe.cs
- TdsParser.cs
- Model3D.cs
- DesignerActionUI.cs
- NullableBoolConverter.cs
- EncoderParameter.cs
- ZipIOExtraFieldElement.cs
- DataService.cs
- WebSysDisplayNameAttribute.cs
- UnitySerializationHolder.cs
- FormClosedEvent.cs
- DynamicUpdateCommand.cs
- ConvertTextFrag.cs
- InvokeHandlers.cs
- ObjectDataProvider.cs
- TextElementCollectionHelper.cs
- PenContext.cs
- FixUp.cs
- OpenTypeCommon.cs
- SizeF.cs
- DisplayNameAttribute.cs
- RepeaterItemCollection.cs
- dbenumerator.cs
- ListBindingHelper.cs
- ToolStripContainerDesigner.cs
- TreeNodeStyle.cs
- VectorAnimationUsingKeyFrames.cs
- Vector.cs
- RevocationPoint.cs
- FragmentQuery.cs
- CellTreeNodeVisitors.cs
- DBDataPermission.cs
- ValidatorCompatibilityHelper.cs
- MinimizableAttributeTypeConverter.cs
- ServiceDebugElement.cs
- TypeBuilderInstantiation.cs
- PageOutputColor.cs
- SqlParameter.cs
- ExtendedPropertyDescriptor.cs
- Menu.cs
- Primitive.cs
- _NegoStream.cs
- SqlServer2KCompatibilityCheck.cs
- VisualStates.cs
- Profiler.cs
- ContentFilePart.cs
- CompilationUtil.cs
- NetSectionGroup.cs
- AnonymousIdentificationModule.cs
- ButtonColumn.cs
- XmlLoader.cs
- ImageFormatConverter.cs
- Calendar.cs
- PolyQuadraticBezierSegment.cs
- Win32NamedPipes.cs
- MetadataCollection.cs
- SqlServices.cs
- CommandValueSerializer.cs
- EntityCommand.cs
- ExpressionEditorAttribute.cs
- LookupBindingPropertiesAttribute.cs
- DataFormats.cs
- DomainUpDown.cs
- VirtualPathUtility.cs
- SerializationEventsCache.cs
- HttpResponseInternalWrapper.cs
- RoutedUICommand.cs
- Globals.cs
- TileBrush.cs
- ObjectContextServiceProvider.cs
- DiagnosticsConfigurationHandler.cs
- RuntimeWrappedException.cs
- PKCS1MaskGenerationMethod.cs
- RequestBringIntoViewEventArgs.cs
- DefaultSection.cs
- MasterPageParser.cs