Example #1
0
        public TccTransaction(TccTransactionData data, TccCoordinator <TContext> coordinator, TContext ctx)
        {
            // TODO: 从TransactionData中恢复数据
            _context = ctx.Deserialize <TContext>(data.ContextData);
            _txId    = data.TxId;
            _txState = data.TxState;

            _lock  = null;
            _works = new List <TccWorkUnit <TContext> >();
            _txCtx = null;

            _coordinator = coordinator;
            if (_coordinator != null)
            {
                _coordinator.NewTransaction(this);
                _tracing = _coordinator.Tracing;
            }
            else
            {
                _tracing = _defaultTracing;
            }

            Prepare();

            foreach (var a in _works)
            {
                a.Tracing = _tracing;
            }
        }
Example #2
0
        internal Database(IICDbType dbType, string connectionString)
        {
            _configItem                  = new IICDbConfigItem();
            _configItem.DbType           = dbType;
            _configItem.ConnectionString = connectionString;

            _tracing      = TracingManager.GetTracing("Database.[ConnStr=" + connectionString + "]");
            _perfCounters = IICPerformanceCounterFactory.GetCounters <DatabasePerfCounters>(".");

            switch (_configItem.DbType)
            {
            case IICDbType.SqlServer2005:
                _operation = new SqlServerDatabase(_configItem.ConnectionString, 120);
                break;

            case IICDbType.Mysql:
                _operation = new MysqlDatabase(_configItem.ConnectionString, 120);
                break;

            case IICDbType.MysqlBatchInsert:
                _operation = new MysqlBatchInsert(_configItem.ConnectionString);
                break;

            default:
                throw new NotSupportedException(string.Format("Not Support DbType:{0} {1}", _configItem.DbType, _configItem.Name));
            }
        }
Example #3
0
 public TccRunningContext(Context ctx, ITracing tracing)
 {
     _ctx       = ctx;
     _tracing   = tracing;
     _successed = true;
     _works     = new List <ComboClass <TccWorkUnit <Context>, TccAction> >();
 }
Example #4
0
 /// <summary>
 ///     初始化属于指定服务角色的系统工作者
 /// </summary>
 /// <param name="role">服务角色</param>
 /// <param name="setting">远程配置设置</param>
 /// <param name="configurationProxy">远程配置站访问代理器</param>
 /// <param name="notificationHandler">异常通知处理器</param>
 /// <param name="proxy">KAE资源代理器</param>
 /// <exception cref="ArgumentNullException">参数不能为空</exception>
 public static void Initialize(string role, RemoteConfigurationSetting setting, IRemoteConfigurationProxy configurationProxy, ITracingNotificationHandler notificationHandler = null, IKAEResourceProxy proxy = null)
 {
     if (IsInitialized)
     {
         return;
     }
     if (setting == null)
     {
         setting = RemoteConfigurationSetting.Default;
     }
     if (proxy == null)
     {
         proxy = new KAEHostResourceProxy();
     }
     if (string.IsNullOrEmpty(role))
     {
         throw new ArgumentNullException(nameof(role));
     }
     if (configurationProxy == null)
     {
         throw new ArgumentNullException(nameof(configurationProxy));
     }
     SystemConfigurations.Initialize(role, setting, configurationProxy);
     _tracing = TracingManager.GetTracing(typeof(SystemWorker));;
     TransactionGlobal.Initialize();
     _configurationProxy = configurationProxy;
     _hostProxy          = proxy;
     TracingManager.NotificationHandler = notificationHandler ?? new RemoteLogProxy();
     InitializeCore(role);
     //initialize long...long memory buffer for tcp layer.
     ChannelConst.Initialize();
     _isInitialized   = true;
     IsInSpecifiedKPP = false;
 }
Example #5
0
        public TccTransaction(TContext ctx, TccCoordinator <TContext> coordinator)
        {
            _context = ctx;
            _txId    = Guid.NewGuid().ToString();
            _txState = TccTransactionState.New;

            _lock  = null;
            _works = new List <TccWorkUnit <TContext> >();
            _txCtx = null;

            Prepare();
            _coordinator = coordinator;
            if (_coordinator != null)
            {
                _coordinator.NewTransaction(this);
                _tracing = _coordinator.Tracing;
            }
            else
            {
                _tracing = _defaultTracing;
            }

            foreach (var a in _works)
            {
                a.Tracing = _tracing;
            }
        }
Example #6
0
        public DataManager_UnitTest()
        {
            fileProvider = ConfigureMoqFileProvider();
            jsonProvider = ConfigureJsonProvider();
            myTracing    = ConfigureTracingProvider();

            dataManager = new DataManager(fileProvider, jsonProvider, myTracing);
        }
 protected HttpClientTracingObserver(string observerName, string diagnosticName, ITracingOptions options, ITracing tracing, ILogger logger)
     : base(observerName, diagnosticName, logger)
 {
     Options     = options;
     Tracing     = tracing;
     TextFormat  = tracing.TextFormat;
     Tracer      = tracing.Tracer;
     PathMatcher = new Regex(options.EgressIgnorePattern);
 }
 protected AspNetCoreTracingObserver(string observerName, ITracingOptions options, ITracing tracing, ILogger logger)
     : base(observerName, DIAGNOSTIC_NAME, logger)
 {
     Options     = options;
     Tracing     = tracing;
     Propagation = tracing.PropagationComponent.TextFormat;
     Tracer      = tracing.Tracer;
     PathMatcher = new Regex(options.IngressIgnorePattern);
 }
Example #9
0
 /// <summary>
 ///     KAE宿主状态记录器
 /// </summary>
 /// <param name="tracing">本地日志记录器</param>
 /// <param name="maximumLogCount">内部所能够包含的日志条数最大值,超过这个数目的历史数据将会自动消失</param>
 public KAEStateLogger(ITracing tracing, int maximumLogCount = 1024)
 {
     if (tracing == null)
     {
         throw new ArgumentNullException("tracing");
     }
     _tracing         = tracing;
     _maximumLogCount = maximumLogCount;
     _content         = new Queue <string>(maximumLogCount);
 }
Example #10
0
        public RpcClientObserverItem(string serverUri, string service, string method, string serviceRole)
        {
            ServerUri   = serverUri;
            Service     = service;
            Method      = method;
            ServiceRole = serviceRole;

            RequestTracer  = TracingManager.GetTracing(string.Format("RpcClient.{0}.{1}.Request", service, method));
            ResponseTracer = TracingManager.GetTracing(string.Format("RpcClient.{0}.{1}.Response", service, method));
        }
        public RpcClientObserverItem(string serverUri, string service, string method, string serviceRole)
        {
            ServerUri = serverUri;
            Service = service;
            Method = method;
            ServiceRole = serviceRole;

            RequestTracer = TracingManager.GetTracing(string.Format("RpcClient.{0}.{1}.Request", service, method));
            ResponseTracer = TracingManager.GetTracing(string.Format("RpcClient.{0}.{1}.Response", service, method));
        }
Example #12
0
        public RpcServerObserverItem(string service, string method, string fromService, string fromComputer)
        {
            Service      = service;
            Method       = method;
            FromService  = fromService;
            FromComputer = fromComputer;

            RequestTracer  = TracingManager.GetTracing(string.Format("RpcServer.{0}.{1}.Request", service, method));
            ResponseTracer = TracingManager.GetTracing(string.Format("RpcServer.{0}.{1}.Response", service, method));
        }
Example #13
0
        public TccCoordinator(string transName)
        {
            _transName   = transName;
            _activeTrans = new Dictionary <string, TccTransaction <TContext> >();
            _tracing     = TracingManager.GetTracing("TccTransaction." + _transName);
            _counter     = IICPerformanceCounterFactory.GetCounters <TccTransactionPerfCounter>(transName);

            _monitorThread = new Thread(MonitorProc);
            _monitorThread.IsBackground = false;
            _monitorThread.Name         = "TccCoordinator.MonitorProc<" + _transName + ">";
        }
Example #14
0
        public string InstallPackages(
            string projectContent,
            Dictionary <string, NuGetPackage> requestedPackages,
            Dictionary <string, NuGetPackage> installedPackages,
            string projectName,
            ITracing tracing)
        {
            tracing.Debug($"Skipped processing project '{projectName}' as its type is unsupported.");

            return(projectContent);
        }
Example #15
0
        /// <param name="saveProjectDelegate">T1 = path, T2 = content</param>
        internal void Execute(
            IEnumerable <IProject> applicationProjects,
            ITracing tracing,
            Action <string, string> saveProjectDelegate,
            Func <IProject, string> loadProjectDelegate)
        {
            string report;

            var(projectPackages, highestVersions) = DeterminePackages(applicationProjects, loadProjectDelegate);

            if (_settingConsolidatePackageVersions &&
                !string.IsNullOrWhiteSpace(report = GetPackagesWithMultipleVersionsReport(projectPackages)))
            {
                tracing.Info(
                    "Multiple versions exist for one or more NuGet packages within the solution. Intent will now automatically " +
                    "upgrade any lower versions to the highest installed version within the solution. To disable this behaviour " +
                    $"change the 'Consolidate Package Versions' option in Intent in the {Identifier} module configuration." +
                    $"{Environment.NewLine}" +
                    $"{Environment.NewLine}" +
                    $"{report}");

                ConsolidatePackageVersions(projectPackages, highestVersions);
            }

            foreach (var projectPackage in projectPackages)
            {
                if (!projectPackage.RequestedPackages.Any())
                {
                    continue;
                }

                var updatedProjectContent = projectPackage.Processor.InstallPackages(
                    projectContent: projectPackage.Content,
                    requestedPackages: projectPackage.RequestedPackages,
                    installedPackages: projectPackage.InstalledPackages,
                    projectName: projectPackage.Name,
                    tracing: tracing);
                saveProjectDelegate(projectPackage.FilePath, updatedProjectContent);
            }

            if (_settingWarnOnMultipleVersionsOfSamePackage &&
                !_settingConsolidatePackageVersions &&
                !string.IsNullOrWhiteSpace(report = GetPackagesWithMultipleVersionsReport(projectPackages)))
            {
                tracing.Warning(
                    "Multiple versions exist for one or more NuGet packages within the solution. You should consider " +
                    "consolidating these package versions within Visual Studio or alternatively enable the 'Consolidate " +
                    $"Package Versions' option in Intent in the {Identifier} module configuration." +
                    $"{Environment.NewLine}" +
                    $"{Environment.NewLine}" +
                    $"{report}");
            }
        }
Example #16
0
        public void Tracing()
        {
            ITracing myTracing = null;

            using (IUnityContainer container = new UnityContainer())
            {
                UnityConfig.RegisterTypes(container);
                myTracing = container.Resolve <ITracing>();
            }

            Assert.IsNotNull(myTracing);
        }
        public void Tracing()
        {
            ITracing myTracing = null;

            using (IUnityContainer container = new UnityContainer())
            {
                InternationalBusinessServiceLibrary.Unity.ConfigureUnity.Configure(container);
                myTracing = container.Resolve <ITracing>();
            }

            Assert.IsNotNull(myTracing);
        }
Example #18
0
        internal Database(string configKey)
        {
            _configKey    = configKey;
            _tracing      = TracingManager.GetTracing("Database." + configKey);
            _perfCounters = IICPerformanceCounterFactory.GetCounters <DatabasePerfCounters>(configKey);

            try {
                GetInnerOperation();
            } catch (Exception ex) {
                SystemLog.Error(LogEventID.DatabaseFailed, ex, "Database GetFailed <{0}>", configKey);
            }
        }
Example #19
0
        public LRUCacheManager(string name, int cacheCount)
        {
            if (!Stopwatch.IsHighResolution)
            {
                throw new NotSupportedException();
            }

            _cacheName  = name;
            _cacheCount = cacheCount;
            _counters   = IICPerformanceCounterFactory.GetCounters <PerfCounters>(_cacheName);
            _tracing    = TracingManager.GetTracing("LRUCacheManager." + _cacheName);
        }
Example #20
0
        static void Main(string[] args)
        {
            ServiceSettings.InitService("IICCommon");
            ITracing tracing = TracingManager.GetTracing(typeof(Program));

            tracing.Info("test");
            LinkedNode <string> linkedNode = new LinkedNode <string>();

            linkedNode.Value = "1";
            linkedNode.AddNext("2");
            linkedNode.AddNext("3");
            foreach (string str in linkedNode.GetValues())
            {
                Console.WriteLine(str);
            }
            Console.ReadLine();
        }
Example #21
0
        public ParallelQueue(string queueName, int maxBatchCount, int maxIdleMs, Action <K, V[]> dequeueAction)
        {
            _queueName     = queueName;
            _maxBatchCount = maxBatchCount;
            _maxIdleMs     = maxIdleMs;
            _dequeueAction = dequeueAction;

            _tracing      = TracingManager.GetTracing("ParalelQueue." + queueName);
            _perfCounters = IICPerformanceCounterFactory.GetCounters <ParallelQueuePerfCounters>(queueName);

            _thread = new Thread(ThreadProc);
            _thread.IsBackground = true;
            _thread.Start();

            int max;
            int foo;

            ThreadPool.GetMaxThreads(out max, out foo);
            _defendWorkerThreadCounts = max / 8;
        }
Example #22
0
        public LazyQueue(string queueName, int maxBatchCount, int maxIdleMs, Action <T[]> dequeueAction, bool enabledCounters)
        {
            _queueName     = queueName;
            _batchCount    = maxBatchCount;
            _idleMs        = maxIdleMs;
            _dequeueAction = dequeueAction;
            _capacity      = 65536;
            _lastTick      = Environment.TickCount;

            _tracing = TracingManager.GetTracing("LazyQueue." + queueName);
            if (enabledCounters)
            {
                _counters = IICPerformanceCounterFactory.GetCounters <LazyQueuePerfCounters>(queueName);
            }

            _thread              = new Thread(new ThreadStart(ThreadProc));
            _thread.Name         = string.Format("LazyQueue<{0}>:{1}", typeof(T).Name, queueName);
            _thread.IsBackground = true;
            _thread.Start();
        }
Example #23
0
        public string InstallPackages(
            string projectContent,
            Dictionary <string, NuGetPackage> requestedPackages,
            Dictionary <string, NuGetPackage> installedPackages,
            string projectName,
            ITracing tracing)
        {
            // This format is now unsupported, but we will show a warnings for missing packages.

            var installationsRequired = requestedPackages
                                        .Where(x => !installedPackages.ContainsKey(x.Key))
                                        .ToArray();
            var upgradesRequired = requestedPackages
                                   .Where(x => installedPackages.TryGetValue(x.Key, out var nuGetPackage) && nuGetPackage.Version.MinVersion < x.Value.Version.MinVersion)
                                   .ToArray();

            if (!installationsRequired.Any() && !upgradesRequired.Any())
            {
                return(projectContent);
            }

            var sb = new StringBuilder();

            sb.AppendLine($"Installations and upgrades of NuGet packages is not supported for project {projectName}, only .csproj files using " +
                          "PackageReferences are. Refer to https://blog.nuget.org/20180409/migrate-packages-config-to-package-reference.html for information " +
                          "on how to upgrade this existing project. You can alternatively manually install/upgrade the following packages using Visual Studio:");
            foreach (var item in installationsRequired)
            {
                sb.AppendLine($"  - Install {item.Key} version {item.Value.Version}");
            }

            foreach (var item in upgradesRequired)
            {
                sb.AppendLine($"  - Upgrade version of {item.Key} from {installedPackages[item.Key]} to {item.Value.Version}");
            }

            tracing.Warning(sb.ToString());

            return(projectContent);
        }
Example #24
0
 /// <summary>
 ///     为KPP专门设计的初始化SystemWorker的函数
 /// </summary>
 /// <param name="role">服务角色</param>
 /// <param name="proxy">KAE资源代理器</param>
 /// <param name="settings">KJFramework网络层设置集</param>
 /// <param name="appUniqueId">APP唯一编号</param>
 /// <exception cref="ArgumentNullException">参数不能为空</exception>
 internal static void InitializeForKPP(string role, IKAEResourceProxy proxy, ChannelInternalConfigSettings settings, Guid appUniqueId)
 {
     if (IsInitialized)
     {
         return;
     }
     if (string.IsNullOrEmpty(role))
     {
         throw new ArgumentNullException(nameof(role));
     }
     _hostProxy          = proxy;
     _appUniqueId        = appUniqueId;
     _configurationProxy = new KPPConfigurationProxy(proxy);
     SystemConfigurations.Initialize(role, RemoteConfigurationSetting.Default, _configurationProxy);
     _tracing = TracingManager.GetTracing(typeof(SystemWorker));;
     TransactionGlobal.Initialize();
     //Regist("LGS", new LGSProtocolStack());
     TracingManager.NotificationHandler = new RemoteLogProxy();
     InitializeCore(role);
     //initialize long...long memory buffer for tcp layer.
     ChannelConst.Initialize(settings);
     _isInitialized   = true;
     IsInSpecifiedKPP = true;
 }
 public HttpClientCoreObserver(ITracingOptions options, ITracing tracing, ILogger <HttpClientCoreObserver> logger = null)
     : base(OBSERVER_NAME, DIAGNOSTIC_NAME, options, tracing, logger)
 {
 }
Example #26
0
 public AspNetCoreMvcActionObserver(ITracingOptions options, ITracing tracing, ILogger <AspNetCoreMvcActionObserver> logger = null)
     : base(OBSERVER_NAME, options, tracing, logger)
 {
 }
Example #27
0
        public string InstallPackages(
            string projectContent,
            Dictionary <string, NuGetPackage> requestedPackages,
            Dictionary <string, NuGetPackage> installedPackages,
            string projectName,
            ITracing tracing)
        {
            var document = XDocument.Parse(projectContent);

            var(prefix, namespaceManager, namespaceName) = document.GetNamespaceManager();

            var packageReferenceItemGroup = document.XPathSelectElement($"/{prefix}:Project/{prefix}:ItemGroup[{prefix}:PackageReference]", namespaceManager);

            // Try add after last ItemGroup, otherwise last PropertyGroup
            if (packageReferenceItemGroup == null)
            {
                var element = document.XPathSelectElements($"/{prefix}:Project/{prefix}:ItemGroup", namespaceManager).LastOrDefault() ??
                              document.XPathSelectElements($"/{prefix}:Project/{prefix}:PropertyGroup", namespaceManager).LastOrDefault();
                element?.AddAfterSelf(packageReferenceItemGroup = new XElement(XName.Get("ItemGroup", namespaceName)));
            }

            // Otherwise, add to Project element
            if (packageReferenceItemGroup == null)
            {
                var projectElement = document.XPathSelectElement($"/{prefix}:Project", namespaceManager);
                if (projectElement == null)
                {
                    throw new Exception("Project element not found.");
                }

                projectElement.AddFirst(packageReferenceItemGroup = new XElement(XName.Get("ItemGroup", namespaceName)));
            }

            foreach (var requestedPackage in requestedPackages)
            {
                var packageId = requestedPackage.Key;
                var package   = requestedPackage.Value;

                var packageReferenceElement = packageReferenceItemGroup.XPathSelectElement($"{prefix}:PackageReference[@Include='{packageId}']", namespaceManager);
                if (packageReferenceElement == null)
                {
                    tracing.Info($"Installing {packageId} {package.Version} into project {projectName}");

                    packageReferenceItemGroup.Add(packageReferenceElement = new XElement(
                                                      XName.Get("PackageReference", namespaceName),
                                                      new XAttribute("Include", packageId),
                                                      new XElement(XName.Get("Version", namespaceName), package.Version)));
                }

                var versionElement = packageReferenceElement.XPathSelectElement($"{prefix}:Version", namespaceManager);
                if (versionElement == null)
                {
                    throw new Exception("Missing version element from PackageReference element.");
                }

                if (SemanticVersion.Parse(versionElement.Value) >= package.Version)
                {
                    continue;
                }

                tracing.Info($"Upgrading {packageId} from {versionElement.Value} to {package.Version} in project {projectName}");
                versionElement.SetValue(package.Version);
            }

            SortAlphabetically(packageReferenceItemGroup);
            return(Format(document));
        }
Example #28
0
 public TraceExporter(ITraceExporterOptions options, ITracing tracing, ILogger <TraceExporter> logger = null)
 {
     _options         = options;
     _logger          = logger;
     _exportComponent = tracing.ExportComponent;
 }
Example #29
0
 public TracingLogProcessor(ITracingOptions options, ITracing tracing)
 {
     this.options = options;
     this.tracing = tracing;
 }
 public DataManager(IPersistentManager fileProvider, IDataProvider jsonProvider, ITracing myTracing)
 {
     this._fileProvider = fileProvider;
     this._jsonProvider = jsonProvider;
     this._myTracing    = myTracing;
 }
Example #31
0
 public FortuneRepository(FortuneContext db, ITracing tracing, ILogger <FortuneRepository> logger)
 {
     _db      = db;
     _tracing = tracing;
     _logger  = logger;
 }