Code:
/ WCF / WCF / 3.5.30729.1 / untmp / Orcas / SP / ndp / cdf / src / WCF / TransactionBridge / Microsoft / Transactions / Wsat / Protocol / PerformanceCounters.cs / 1 / PerformanceCounters.cs
//------------------------------------------------------------------------------ // Copyright (c) Microsoft Corporation. All rights reserved. //----------------------------------------------------------------------------- // This file contains wrappers for all WS-AT performance counters using System; using System.ServiceModel.Channels; using System.ComponentModel; using System.Diagnostics; using Microsoft.Transactions.Wsat.Messaging; using DiagnosticUtility = Microsoft.Transactions.Bridge.DiagnosticUtility; namespace Microsoft.Transactions.Wsat.Protocol { class PerformanceCounterWrapper { PerformanceCounter counter; public PerformanceCounterWrapper(string counterName) { string categoryName = PerformanceCounterStrings.MSDTC_BRIDGE.TransactionBridgeV1PerfCounters; Exception exception; try { // We reset each performance counter on startup. If we don't do this, our // performance counters aren't reset properly when shutdown is not graceful // // This is related to the following Whidbey DCR: // BugID: 30673 PerformanceCounter: // Allocated memory for the counter's instances are not deallocated and this leads to OOM condition. this.counter = new PerformanceCounter (categoryName, counterName, string.Empty, false); this.counter.RemoveInstance(); this.counter = new PerformanceCounter (categoryName, counterName, string.Empty, false); exception = null; } catch (InvalidOperationException e) { DiagnosticUtility.ExceptionUtility.TraceHandledException(e, TraceEventType.Warning); exception = e; } catch (Win32Exception e) { DiagnosticUtility.ExceptionUtility.TraceHandledException(e, TraceEventType.Warning); exception = e; } if (exception != null) { if (DebugTrace.Error) { DebugTrace.Trace ( TraceLevel.Error, "Unable to initialize performance counter {0}: {1}", counterName, exception ); } PerformanceCounterInitializationFailureRecord.TraceAndLog( PluggableProtocol10.ProtocolGuid, // the counter used by WSAT1.0 is also used by WSAT1.1; for internal compatibility, we trace only the 1.0 guid though counterName, exception ); } } public long Increment() { if (this.counter != null) return this.counter.Increment(); return 0; } public long IncrementBy (long value) { if (this.counter != null) return this.counter.IncrementBy (value); return 0; } } class PerformanceCounterHolder { PerformanceCounterWrapper messageSendFailureCountPerInterval = new PerformanceCounterWrapper (PerformanceCounterStrings.MSDTC_BRIDGE.MessageSendFailureCountPerInterval); public PerformanceCounterWrapper MessageSendFailureCountPerInterval { get { return this.messageSendFailureCountPerInterval; } } PerformanceCounterWrapper prepareRetryCountPerInterval = new PerformanceCounterWrapper(PerformanceCounterStrings.MSDTC_BRIDGE.PrepareRetryCountPerInterval); public PerformanceCounterWrapper PrepareRetryCountPerInterval { get { return this.prepareRetryCountPerInterval; } } PerformanceCounterWrapper commitRetryCountPerInterval = new PerformanceCounterWrapper(PerformanceCounterStrings.MSDTC_BRIDGE.CommitRetryCountPerInterval); public PerformanceCounterWrapper CommitRetryCountPerInterval { get { return this.commitRetryCountPerInterval; } } PerformanceCounterWrapper preparedRetryCountPerInterval = new PerformanceCounterWrapper(PerformanceCounterStrings.MSDTC_BRIDGE.PreparedRetryCountPerInterval); public PerformanceCounterWrapper PreparedRetryCountPerInterval { get { return this.preparedRetryCountPerInterval; } } PerformanceCounterWrapper replayRetryCountPerInterval = new PerformanceCounterWrapper(PerformanceCounterStrings.MSDTC_BRIDGE.ReplayRetryCountPerInterval); public PerformanceCounterWrapper ReplayRetryCountPerInterval { get { return this.replayRetryCountPerInterval; } } PerformanceCounterWrapper faultsReceivedCountPerInterval = new PerformanceCounterWrapper(PerformanceCounterStrings.MSDTC_BRIDGE.FaultsReceivedCountPerInterval); public PerformanceCounterWrapper FaultsReceivedCountPerInterval { get { return this.faultsReceivedCountPerInterval; } } PerformanceCounterWrapper faultsSentCountPerInterval = new PerformanceCounterWrapper(PerformanceCounterStrings.MSDTC_BRIDGE.FaultsSentCountPerInterval); public PerformanceCounterWrapper FaultsSentCountPerInterval { get { return this.faultsSentCountPerInterval; } } PerformanceCounterWrapper averageParticipantPrepareResponseTime = new PerformanceCounterWrapper(PerformanceCounterStrings.MSDTC_BRIDGE.AverageParticipantPrepareResponseTime); public PerformanceCounterWrapper AverageParticipantPrepareResponseTime { get { return this.averageParticipantPrepareResponseTime; } } PerformanceCounterWrapper averageParticipantPrepareResponseTimeBase = new PerformanceCounterWrapper(PerformanceCounterStrings.MSDTC_BRIDGE.AverageParticipantPrepareResponseTimeBase); public PerformanceCounterWrapper AverageParticipantPrepareResponseTimeBase { get { return this.averageParticipantPrepareResponseTimeBase; } } PerformanceCounterWrapper averageParticipantCommitResponseTime = new PerformanceCounterWrapper(PerformanceCounterStrings.MSDTC_BRIDGE.AverageParticipantCommitResponseTime); public PerformanceCounterWrapper AverageParticipantCommitResponseTime { get { return this.averageParticipantCommitResponseTime; } } PerformanceCounterWrapper averageParticipantCommitResponseTimeBase = new PerformanceCounterWrapper(PerformanceCounterStrings.MSDTC_BRIDGE.AverageParticipantCommitResponseTimeBase); public PerformanceCounterWrapper AverageParticipantCommitResponseTimeBase { get { return this.averageParticipantCommitResponseTimeBase; } } } } // 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
- ReflectionServiceProvider.cs
- FormatConvertedBitmap.cs
- CookielessHelper.cs
- Ref.cs
- XmlSerializer.cs
- ReadOnlyDataSource.cs
- UIElementParagraph.cs
- DbException.cs
- GregorianCalendar.cs
- SpeakProgressEventArgs.cs
- LoadRetryAsyncResult.cs
- Win32.cs
- DataGridViewColumnDesignTimeVisibleAttribute.cs
- DocumentSchemaValidator.cs
- ListDataHelper.cs
- sqlinternaltransaction.cs
- TextServicesHost.cs
- _ListenerResponseStream.cs
- DataGridViewRowHeightInfoNeededEventArgs.cs
- ContentPlaceHolder.cs
- StandardCommands.cs
- BuildManagerHost.cs
- Properties.cs
- UIElementAutomationPeer.cs
- CodeArgumentReferenceExpression.cs
- BulletedListEventArgs.cs
- Label.cs
- SecurityAccessDeniedException.cs
- OAVariantLib.cs
- DataError.cs
- UnsafeNativeMethods.cs
- FlowDocumentPageViewerAutomationPeer.cs
- TypeProvider.cs
- CompiledIdentityConstraint.cs
- XmlWriterTraceListener.cs
- WindowsFont.cs
- AutomationIdentifierGuids.cs
- DataColumnMapping.cs
- TextParagraphView.cs
- Identity.cs
- BlurEffect.cs
- JapaneseCalendar.cs
- Pair.cs
- DragEventArgs.cs
- UnsafeNativeMethods.cs
- SrgsNameValueTag.cs
- designeractionbehavior.cs
- MembershipValidatePasswordEventArgs.cs
- AttachedPropertyBrowsableWhenAttributePresentAttribute.cs
- StylusPlugin.cs
- CodeStatement.cs
- MatrixKeyFrameCollection.cs
- ColumnMapTranslator.cs
- HierarchicalDataBoundControl.cs
- ContextStaticAttribute.cs
- DoubleLink.cs
- CatalogPart.cs
- TableDetailsRow.cs
- SystemWebSectionGroup.cs
- CachedTypeface.cs
- WindowsGraphicsCacheManager.cs
- ClientOptions.cs
- CallbackException.cs
- UITypeEditor.cs
- XmlSchemas.cs
- SharedRuntimeState.cs
- HtmlControl.cs
- MutexSecurity.cs
- AssociationSetEnd.cs
- MarginCollapsingState.cs
- SpecialFolderEnumConverter.cs
- SqlCachedBuffer.cs
- ByteAnimationBase.cs
- ValuePatternIdentifiers.cs
- BatchStream.cs
- WorkflowInstanceRecord.cs
- DeviceSpecific.cs
- TextElementEditingBehaviorAttribute.cs
- XamlInt32CollectionSerializer.cs
- NotifyCollectionChangedEventArgs.cs
- SqlDataSourceConfigureSelectPanel.cs
- AssociationType.cs
- AccessedThroughPropertyAttribute.cs
- DataTableCollection.cs
- BooleanSwitch.cs
- HttpGetServerProtocol.cs
- ControlPaint.cs
- Compiler.cs
- SettingsPropertyNotFoundException.cs
- ExpressionEditorAttribute.cs
- GraphicsState.cs
- ImmutableObjectAttribute.cs
- SystemInfo.cs
- UIElementHelper.cs
- DBDataPermission.cs
- StrokeFIndices.cs
- MatrixKeyFrameCollection.cs
- DBConnection.cs
- Track.cs
- UnitySerializationHolder.cs