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
- HandleRef.cs
- HyperLinkField.cs
- MarkupObject.cs
- NotifyParentPropertyAttribute.cs
- BuilderPropertyEntry.cs
- MemberHolder.cs
- Page.cs
- FormatterServicesNoSerializableCheck.cs
- FullTextState.cs
- ToolStripManager.cs
- ParenthesizePropertyNameAttribute.cs
- DetailsViewRowCollection.cs
- ConfigurationElementCollection.cs
- WorkflowPrinting.cs
- CollectionType.cs
- AdCreatedEventArgs.cs
- CommandID.cs
- HtmlTextBoxAdapter.cs
- GPRECT.cs
- ToolStripSplitStackLayout.cs
- DesignerActionService.cs
- DataTableReaderListener.cs
- ComplexBindingPropertiesAttribute.cs
- DataGridViewCheckBoxCell.cs
- SafeRegistryKey.cs
- DateTimeOffsetConverter.cs
- PaperSize.cs
- ToolStripItem.cs
- RemoveStoryboard.cs
- BaseCodeDomTreeGenerator.cs
- ScriptResourceHandler.cs
- DataRowView.cs
- DataGridPageChangedEventArgs.cs
- NonValidatingSecurityTokenAuthenticator.cs
- TypeUtils.cs
- ResponseStream.cs
- CDSCollectionETWBCLProvider.cs
- MailAddress.cs
- NetworkInterface.cs
- DynamicPropertyHolder.cs
- SmtpFailedRecipientException.cs
- TypeCacheManager.cs
- QilTargetType.cs
- DataControlField.cs
- GeneralTransform3D.cs
- NGCPageContentCollectionSerializerAsync.cs
- CommandID.cs
- DataGridViewColumn.cs
- Int64Converter.cs
- PolyLineSegment.cs
- DataConnectionHelper.cs
- WMIInterop.cs
- RenderContext.cs
- PreProcessor.cs
- ProcessProtocolHandler.cs
- SegmentInfo.cs
- Italic.cs
- SamlAction.cs
- RotateTransform.cs
- MethodImplAttribute.cs
- ServiceNameElement.cs
- CommonXSendMessage.cs
- WinInet.cs
- SqlVisitor.cs
- ValidationError.cs
- SchemaNames.cs
- JsonWriterDelegator.cs
- SpellerInterop.cs
- LayoutEvent.cs
- DeviceFilterEditorDialog.cs
- OleDbRowUpdatingEvent.cs
- StateBag.cs
- XmlSchemaDatatype.cs
- InvalidStoreProtectionKeyException.cs
- SimpleBitVector32.cs
- HMACSHA1.cs
- MediaElement.cs
- InstanceNotFoundException.cs
- SqlInternalConnectionTds.cs
- XPathNodeList.cs
- DataGridViewCellStateChangedEventArgs.cs
- LongTypeConverter.cs
- MsdtcClusterUtils.cs
- MeasurementDCInfo.cs
- MarkupExtensionParser.cs
- Convert.cs
- PathFigure.cs
- File.cs
- DiscoveryInnerClientAdhoc11.cs
- RegexMatchCollection.cs
- XmlDomTextWriter.cs
- MsmqInputMessagePool.cs
- IpcPort.cs
- HttpNamespaceReservationInstallComponent.cs
- LayoutEditorPart.cs
- ColumnMapVisitor.cs
- AvTrace.cs
- TypeConstant.cs
- DrawingVisual.cs
- XsdDateTime.cs