Code:
/ WCF / WCF / 3.5.30729.1 / untmp / Orcas / SP / ndp / cdf / src / WCF / TransactionBridge / Microsoft / Transactions / Wsat / InputOutput / TransactionManagerProxy.cs / 1 / TransactionManagerProxy.cs
//------------------------------------------------------------------------------ // Copyright (c) Microsoft Corporation. All rights reserved. //----------------------------------------------------------------------------- // This file implements a friendly wrapper around TM bridge callbacks and entry-points using System; using System.Diagnostics; using System.ServiceModel; using Microsoft.Transactions.Bridge; using Microsoft.Transactions.Wsat.Messaging; using Microsoft.Transactions.Wsat.Protocol; using Microsoft.Transactions.Wsat.StateMachines; namespace Microsoft.Transactions.Wsat.InputOutput { class TransactionManagerSend { ProtocolState state; TransactionManagerPropagationService propagation; TransactionManagerCoordinatorService coordination; TransactionManagerCallback createTransactionResponseCallback = new TransactionManagerCallback (TransactionManagerResponse.CreateTransactionResponse); TransactionManagerCallback enlistTransactionResponseCallback = new TransactionManagerCallback (TransactionManagerResponse.EnlistTransactionResponse); TransactionManagerCallback registerResponseCallback = new TransactionManagerCallback (TransactionManagerResponse.RegisterResponse); TransactionManagerCallback subordinateRegisterResponseCallback = new TransactionManagerCallback (TransactionManagerResponse.SubordinateRegisterResponse); TransactionManagerCallback completionCommitResponseCallback = new TransactionManagerCallback (TransactionManagerResponse.CompletionCommitResponse); TransactionManagerCallback completionRollbackResponseCallback = new TransactionManagerCallback (TransactionManagerResponse.CompletionRollbackResponse); TransactionManagerCallback prePrepareResponseCallback = new TransactionManagerCallback (TransactionManagerResponse.PrePrepareResponse); TransactionManagerCallback prepareResponseCallback = new TransactionManagerCallback (TransactionManagerResponse.PrepareResponse); TransactionManagerCallback commitResponseCallback = new TransactionManagerCallback (TransactionManagerResponse.CommitResponse); TransactionManagerCallback rollbackResponseCallback = new TransactionManagerCallback (TransactionManagerResponse.RollbackResponse); public TransactionManagerSend (ProtocolState state) { this.state = state; this.propagation = state.TransactionManager.PropagationService; this.coordination = state.TransactionManager.CoordinatorService; } // // Activation // public void CreateTransaction (CompletionEnlistment completion, EnlistmentOptions options, MsgCreateTransactionEvent e) { DebugTrace.Trace (TraceLevel.Info, "Sending CreateTransaction to transaction manager"); propagation.CreateTransaction ( completion.Enlistment, options, this.createTransactionResponseCallback, e); } public void EnlistTransaction (CoordinatorEnlistment coordinator, EnlistmentOptions options, MsgEnlistTransactionEvent e) { DebugTrace.Trace (TraceLevel.Info, "Sending CreateSuperiorEnlistment to transaction manager"); propagation.CreateSuperiorEnlistment (coordinator.Enlistment, options, this.enlistTransactionResponseCallback, e); } // // Registration // public void Register(ParticipantEnlistment participant, MsgRegisterEvent e) { if (DebugTrace.Info) { DebugTrace.TxTrace ( TraceLevel.Info, participant.EnlistmentId, "Sending Register for {0} to transaction manager", participant.Enlistment.NotificationMask ); } propagation.CreateSubordinateEnlistment (participant.Enlistment, this.registerResponseCallback, e); } public void Register(ParticipantEnlistment participant, InternalEnlistSubordinateTransactionEvent e) { if (DebugTrace.Info) { DebugTrace.TxTrace( TraceLevel.Info, participant.EnlistmentId, "Sending subordinate Register for {0} to transaction manager", participant.Enlistment.NotificationMask ); } propagation.CreateSubordinateEnlistment(participant.Enlistment, this.subordinateRegisterResponseCallback, e); } // // Completion // public void Commit (CompletionEnlistment completion) { if (DebugTrace.Info) { DebugTrace.TxTrace ( TraceLevel.Info, completion.EnlistmentId, "Sending completion Commit to transaction manager" ); } coordination.Commit (completion.Enlistment, this.completionCommitResponseCallback, completion); } public void Rollback (CompletionEnlistment completion) { if (DebugTrace.Info) { DebugTrace.TxTrace ( TraceLevel.Info, completion.EnlistmentId, "Sending completion Rollback to transaction manager" ); } coordination.Rollback (completion.Enlistment, this.completionRollbackResponseCallback, completion); } public void Aborted(CompletionEnlistment completion) { if (DebugTrace.Info) { DebugTrace.TxTrace ( TraceLevel.Info, completion.EnlistmentId, "Replying Aborted to transaction manager" ); } completion.DeliverCallback (Status.Aborted); } // // TwoPhaseCommit // public void PrePrepare (VolatileCoordinatorEnlistment volatileCoordinator) { if (DebugTrace.Info) { DebugTrace.TxTrace ( TraceLevel.Info, volatileCoordinator.EnlistmentId, "Sending PrePrepare to transaction manager" ); } coordination.PrePrepare (volatileCoordinator.Enlistment, this.prePrepareResponseCallback, volatileCoordinator); } public void Prepare (CoordinatorEnlistment coordinator) { if (DebugTrace.Info) { DebugTrace.TxTrace ( TraceLevel.Info, coordinator.EnlistmentId, "Sending Prepare to transaction manager" ); } coordination.Prepare (coordinator.Enlistment, this.prepareResponseCallback, coordinator); } public void Commit (CoordinatorEnlistment coordinator) { if (DebugTrace.Info) { DebugTrace.TxTrace ( TraceLevel.Info, coordinator.EnlistmentId, "Sending Commit to transaction manager" ); } coordination.Commit (coordinator.Enlistment, this.commitResponseCallback, coordinator); } public void Rollback (TransactionEnlistment enlistment) { if (DebugTrace.Info) { DebugTrace.TxTrace ( TraceLevel.Info, enlistment.EnlistmentId, "Sending Rollback to transaction manager" ); } coordination.Rollback (enlistment.Enlistment, this.rollbackResponseCallback, enlistment); } public void Aborted(CoordinatorEnlistment coordinator) { if (DebugTrace.Info) { DebugTrace.TxTrace ( TraceLevel.Info, coordinator.EnlistmentId, "Replying Aborted to transaction manager" ); } coordinator.DeliverCallback (Status.Aborted); } public void PrePrepared (ParticipantEnlistment participant) { if (DebugTrace.Info) { DebugTrace.TxTrace ( TraceLevel.Info, participant.EnlistmentId, "Replying PrePrepared to transaction manager" ); } participant.DeliverCallback (Status.PrePrepared); } public void PrePrepareAborted(ParticipantEnlistment participant) { if (DebugTrace.Info) { DebugTrace.TxTrace ( TraceLevel.Info, participant.EnlistmentId, "Replying Aborted to transaction manager" ); } participant.DeliverCallback (Status.Aborted); } public void Prepared (ParticipantEnlistment participant) { if (DebugTrace.Info) { DebugTrace.TxTrace ( TraceLevel.Info, participant.EnlistmentId, "Replying Prepared to transaction manager" ); } participant.DeliverCallback (Status.Prepared); } public void ReadOnly (ParticipantEnlistment participant) { if (DebugTrace.Info) { DebugTrace.TxTrace ( TraceLevel.Info, participant.EnlistmentId, "Replying Readonly to transaction manager" ); } participant.DeliverCallback (Status.Readonly); } public void Committed (ParticipantEnlistment participant) { if (DebugTrace.Info) { DebugTrace.TxTrace ( TraceLevel.Info, participant.EnlistmentId, "Replying Committed to transaction manager" ); } participant.DeliverCallback (Status.Committed); } public void Aborted(ParticipantEnlistment participant) { if (DebugTrace.Info) { DebugTrace.TxTrace ( TraceLevel.Info, participant.EnlistmentId, "Replying Aborted to transaction manager" ); } participant.DeliverCallback (Status.Aborted); } public void EnlistPrePrepareResponse (CoordinatorEnlistment coordinator, Status status) { if (DebugTrace.Info) { DebugTrace.TxTrace ( TraceLevel.Info, coordinator.EnlistmentId, "Replying {0} to transaction manager's EnlistPrePrepare", status ); } coordinator.DeliverCallback (status); } public void ForgetResponse(TransactionEnlistment enlistment, Status status) { if (DebugTrace.Info) { DebugTrace.TxTrace(TraceLevel.Info, enlistment.EnlistmentId, "Replying {0} to transaction manager's Forget", status); } enlistment.DeliverCallback(status); } public void Rejoined (ParticipantEnlistment participant) { if (DebugTrace.Info) { DebugTrace.TxTrace ( TraceLevel.Info, participant.EnlistmentId, "Replying Success to transaction manager's Rejoin" ); } participant.DeliverCallback (Status.Success); } public void Replayed (CoordinatorEnlistment coordinator) { if (DebugTrace.Info) { DebugTrace.TxTrace ( TraceLevel.Info, coordinator.EnlistmentId, "Replying Success to transaction manager's Replay" ); } coordinator.DeliverCallback (Status.Success); } } } // File provided for Reference Use Only by Microsoft Corporation (c) 2007. // Copyright (c) Microsoft Corporation. All rights reserved.
Link Menu
This book is available now!
Buy at Amazon US or
Buy at Amazon UK
- SendOperation.cs
- ToolStripInSituService.cs
- ActivityCollectionMarkupSerializer.cs
- mil_commands.cs
- PolyQuadraticBezierSegment.cs
- Column.cs
- XmlDataSourceNodeDescriptor.cs
- FileLogRecordHeader.cs
- XmlILTrace.cs
- DataServiceRequestOfT.cs
- EnvelopedSignatureTransform.cs
- ProtectedConfigurationProviderCollection.cs
- log.cs
- LinqDataSourceContextData.cs
- hwndwrapper.cs
- WebHttpSecurityModeHelper.cs
- OraclePermission.cs
- RawStylusInputCustomDataList.cs
- WeakEventManager.cs
- AsyncOperationContext.cs
- serverconfig.cs
- AutomationPeer.cs
- X509SecurityTokenProvider.cs
- XNameConverter.cs
- Point3DCollection.cs
- Perspective.cs
- SmtpMail.cs
- WebPartEditorCancelVerb.cs
- DataRowIndexBuffer.cs
- HtmlTableCellCollection.cs
- EntityDataSourceWrapper.cs
- ProxyWebPart.cs
- CodeIdentifier.cs
- RegexReplacement.cs
- WebBrowserUriTypeConverter.cs
- DataPagerFieldCommandEventArgs.cs
- FileAuthorizationModule.cs
- RijndaelManaged.cs
- TemplateControlBuildProvider.cs
- WebPartRestoreVerb.cs
- EntityKeyElement.cs
- IndexedString.cs
- GorillaCodec.cs
- PathSegment.cs
- RepeatButtonAutomationPeer.cs
- Adorner.cs
- SignerInfo.cs
- Mapping.cs
- SynchronizationValidator.cs
- AddingNewEventArgs.cs
- Ray3DHitTestResult.cs
- IsolatedStorageException.cs
- WhileDesigner.cs
- CancelRequestedRecord.cs
- ColorIndependentAnimationStorage.cs
- XmlEnumAttribute.cs
- PermissionAttributes.cs
- FontSizeConverter.cs
- SettingsPropertyWrongTypeException.cs
- WindowsStatic.cs
- OutputCacheProfileCollection.cs
- GenericTransactionFlowAttribute.cs
- ExpressionTextBox.xaml.cs
- TrustLevelCollection.cs
- GrammarBuilderWildcard.cs
- ServiceBusyException.cs
- BrowserDefinition.cs
- BCryptSafeHandles.cs
- FtpCachePolicyElement.cs
- ActivityBuilderHelper.cs
- ButtonAutomationPeer.cs
- HttpRuntime.cs
- XmlResolver.cs
- BaseTemplateCodeDomTreeGenerator.cs
- DoubleStorage.cs
- Base64Encoding.cs
- nulltextnavigator.cs
- Roles.cs
- PermissionAttributes.cs
- IndependentAnimationStorage.cs
- TransportSecurityProtocolFactory.cs
- RedirectionProxy.cs
- OrderedDictionary.cs
- UnmanagedMemoryAccessor.cs
- DecimalConstantAttribute.cs
- PTManager.cs
- SourceFilter.cs
- MenuItem.cs
- XmlDataSource.cs
- DataTemplate.cs
- TypeDescriptor.cs
- login.cs
- Attribute.cs
- ResolvedKeyFrameEntry.cs
- PartitionResolver.cs
- MobileListItemCollection.cs
- TabControl.cs
- Encoding.cs
- XmlSchemaImport.cs
- AccessorTable.cs