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
- DataKeyCollection.cs
- ListenerElementsCollection.cs
- ColumnResizeAdorner.cs
- RequestSecurityTokenSerializer.cs
- dataprotectionpermissionattribute.cs
- SystemWebCachingSectionGroup.cs
- DataContract.cs
- RoleManagerSection.cs
- DragEvent.cs
- RoleService.cs
- CollectionEditVerbManager.cs
- SafeNativeMethods.cs
- FlowLayoutSettings.cs
- FormClosedEvent.cs
- SQLMoney.cs
- MultilineStringConverter.cs
- InputMethod.cs
- XmlDictionaryWriter.cs
- ProfileSection.cs
- Parser.cs
- BamlReader.cs
- SiteMapNodeItemEventArgs.cs
- KnownBoxes.cs
- StructuredProperty.cs
- ImageCreator.cs
- SrgsRulesCollection.cs
- GlyphingCache.cs
- RecordConverter.cs
- XPathConvert.cs
- ColorAnimationUsingKeyFrames.cs
- CodeCommentStatement.cs
- ListDependantCardsRequest.cs
- SqlProfileProvider.cs
- RelativeSource.cs
- DataRelationCollection.cs
- TraceContextEventArgs.cs
- OnOperation.cs
- Utility.cs
- PixelFormat.cs
- TripleDESCryptoServiceProvider.cs
- ParentQuery.cs
- SqlUserDefinedTypeAttribute.cs
- Match.cs
- SmtpTransport.cs
- DocumentGrid.cs
- OdbcEnvironmentHandle.cs
- HttpServerProtocol.cs
- MailBnfHelper.cs
- BinaryParser.cs
- MenuItem.cs
- XmlArrayItemAttribute.cs
- ContextMarshalException.cs
- SchemaImporterExtensionElement.cs
- AlternationConverter.cs
- PriorityQueue.cs
- DataServiceStreamProviderWrapper.cs
- OneOfTypeConst.cs
- MenuItemStyleCollectionEditor.cs
- DefaultShape.cs
- ProgressBar.cs
- SystemPens.cs
- CodeNamespaceImportCollection.cs
- RemotingServices.cs
- StackSpiller.Generated.cs
- NamespaceEmitter.cs
- WorkingDirectoryEditor.cs
- XmlEntity.cs
- ComponentCodeDomSerializer.cs
- TypeGeneratedEventArgs.cs
- HandlerWithFactory.cs
- RootAction.cs
- ZipIOEndOfCentralDirectoryBlock.cs
- BoundPropertyEntry.cs
- RSACryptoServiceProvider.cs
- EncryptedReference.cs
- RequestQueryProcessor.cs
- EncoderExceptionFallback.cs
- NotFiniteNumberException.cs
- _AutoWebProxyScriptWrapper.cs
- ExtendedProperty.cs
- ScalarOps.cs
- ControlValuePropertyAttribute.cs
- FirewallWrapper.cs
- formatter.cs
- HierarchicalDataBoundControl.cs
- DbMetaDataCollectionNames.cs
- GenericAuthenticationEventArgs.cs
- QueryPageSettingsEventArgs.cs
- ObjectStateEntry.cs
- LinkConverter.cs
- PersonalizationProvider.cs
- EndpointDiscoveryMetadataCD1.cs
- PhoneCall.cs
- SqlCacheDependencySection.cs
- RepeatButton.cs
- TrackingQueryElement.cs
- DoWorkEventArgs.cs
- XmlAttributeHolder.cs
- ClientBuildManagerCallback.cs
- RightsController.cs