public void SerializationTests_Exception_Orleans() { ActivationAddress activationAddress = ActivationAddress.NewActivationAddress(SiloAddress.NewLocalAddress(12345), GrainId.NewId()); SiloAddress primaryDirectoryForGrain = SiloAddress.NewLocalAddress(6789); Catalog.DuplicateActivationException original = new Catalog.DuplicateActivationException(activationAddress, primaryDirectoryForGrain); Catalog.DuplicateActivationException output = SerializationManager.RoundTripSerializationForTesting(original); Assert.Equal(original.Message, output.Message); Assert.Equal(original.ActivationToUse, output.ActivationToUse); Assert.Equal(original.PrimaryDirectoryForGrain, output.PrimaryDirectoryForGrain); }
public void SerializationTests_Exception_DotNet() { ActivationAddress activationAddress = ActivationAddress.NewActivationAddress(SiloAddress.NewLocalAddress(12345), GrainId.NewId()); SiloAddress primaryDirectoryForGrain = SiloAddress.NewLocalAddress(6789); Catalog.DuplicateActivationException original = new Catalog.DuplicateActivationException(activationAddress, primaryDirectoryForGrain); Catalog.DuplicateActivationException output = TestingUtils.RoundTripDotNetSerializer(original, this.fixture.GrainFactory); Assert.Equal(original.Message, output.Message); Assert.Equal(original.ActivationToUse, output.ActivationToUse); Assert.Equal(original.PrimaryDirectoryForGrain, output.PrimaryDirectoryForGrain); }
private async Task SetupAsync() { _silos = new List <MembershipEntry>(); for (var i = 0; i < SiloCount; ++i) { _silos.Add(new MembershipEntry { SiloAddress = SiloAddress.NewLocalAddress(i) }); } _siloDetails = _silos.Select(x => new SiloDetails() { SiloAddress = x.SiloAddress.ToParsableString() }).ToArray(); _grainTypes = new List <string>(); for (int i = 0; i < GrainTypeCount; i++) { _grainTypes.Add("Grain" + Guid.NewGuid()); } _simpleGrainStatistics = new List <SimpleGrainStatistic>(); foreach (var silo in _silos) { foreach (var grainType in _grainTypes) { _simpleGrainStatistics.Add(new SimpleGrainStatistic { ActivationCount = GrainActivationPerSiloCount, GrainType = grainType, SiloAddress = silo.SiloAddress }); } } _totalActivationCount = _simpleGrainStatistics.Sum(s => s.ActivationCount); _dashboardGrain = new TestDashboardGrain(); var grainMethods = new List <string>(); for (var i = 0; i < GrainMethodCount; i++) { grainMethods.Add("Method" + Guid.NewGuid()); } await _dashboardGrain.OnActivateAsync().ConfigureAwait(false); var now = DateTime.UtcNow; foreach (var silo in _silos) { var grainTracings = new List <GrainTraceEntry>(); foreach (var grainType in _grainTypes) { foreach (var grainMethod in grainMethods) { grainTracings.Add(new GrainTraceEntry { Count = GrainCallsPerActivationCount * GrainActivationPerSiloCount, ElapsedTime = 50, Grain = grainType, Method = grainMethod, Period = now, SiloAddress = silo.SiloAddress.ToParsableString() }); } } await _dashboardGrain.SubmitTracing(silo.SiloAddress.ToParsableString(), grainTracings.ToArray()) .ConfigureAwait(false); } }
internal async Task Run_ActivationSched_Test1(TaskScheduler scheduler, bool bounceToThreadPool) { var grainId = GrainId.GetGrainId(0, Guid.NewGuid()); var silo = new MockSiloDetails { SiloAddress = SiloAddress.NewLocalAddress(23) }; var grain = NonReentrentStressGrainWithoutState.Create(grainId, new GrainRuntime(new GlobalConfiguration(), silo, null, null, null, null, null, null)); await grain.OnActivateAsync(); Task wrapped = null; var wrapperDone = new TaskCompletionSource <bool>(); var wrappedDone = new TaskCompletionSource <bool>(); Task <Task> wrapper = new Task <Task>(() => { output.WriteLine("#0 - new Task - SynchronizationContext.Current={0} TaskScheduler.Current={1}", SynchronizationContext.Current, TaskScheduler.Current); Task t1 = grain.Test1(); Action wrappedDoneAction = () => { wrappedDone.SetResult(true); }; if (bounceToThreadPool) { wrapped = t1.ContinueWith(_ => wrappedDoneAction(), CancellationToken.None, TaskContinuationOptions.ExecuteSynchronously, TaskScheduler.Default); } else { wrapped = t1.ContinueWith(_ => wrappedDoneAction()); } wrapperDone.SetResult(true); return(wrapped); }); wrapper.Start(scheduler); await wrapper; var timeoutLimit = TimeSpan.FromSeconds(1); try { await wrapperDone.Task.WithTimeout(timeoutLimit); } catch (TimeoutException) { Assert.True(false, "Result did not arrive before timeout " + timeoutLimit); } bool done = wrapperDone.Task.Result; Assert.True(done, "Wrapper Task finished"); Assert.True(wrapper.IsCompleted, "Wrapper Task completed"); //done = wrapped.Wait(TimeSpan.FromSeconds(12)); //Assert.True(done, "Wrapped Task not timeout"); await wrapped; try { await wrappedDone.Task.WithTimeout(timeoutLimit); } catch (TimeoutException) { Assert.True(false, "Result did not arrive before timeout " + timeoutLimit); } done = wrappedDone.Task.Result; Assert.True(done, "Wrapped Task should be finished"); Assert.True(wrapped.IsCompleted, "Wrapped Task completed"); }
public async Task SqlStatisticsPublisher_MySql_ReportMetrics_Silo() { GlobalConfiguration config = new GlobalConfiguration { DeploymentId = "statisticsDeployment", AdoInvariant = adoInvariant, DataConnectionString = connectionString }; IMembershipTable mbr = new SqlMembershipTable(); await mbr.InitializeMembershipTable(config, true, logger).WithTimeout(timeout); await Initialize(); statisticsPublisher.AddConfiguration("statisticsDeployment", true, "statisticsSiloId", SiloAddress.NewLocalAddress(0), new IPEndPoint(IPAddress.Loopback, 12345), "statisticsHostName"); await RunParallel(10, () => statisticsPublisher.ReportMetrics((ISiloPerformanceMetrics) new DummyPerformanceMetrics())); }
protected async Task SqlStatisticsPublisher_ReportMetrics_Silo() { GlobalConfiguration config = new GlobalConfiguration { DeploymentId = "statisticsDeployment", AdoInvariant = AdoInvariant, DataConnectionString = ConnectionString }; IMembershipTable mbr = new SqlMembershipTable(this.environment.Services.GetRequiredService <IGrainReferenceConverter>()); await mbr.InitializeMembershipTable(config, true, logger).WithTimeout(TimeSpan.FromMinutes(1)); StatisticsPublisher.AddConfiguration("statisticsDeployment", true, "statisticsSiloId", SiloAddress.NewLocalAddress(0), new IPEndPoint(IPAddress.Loopback, 12345), "statisticsHostName"); await RunParallel(10, () => StatisticsPublisher.ReportMetrics((ISiloPerformanceMetrics) new DummyPerformanceMetrics())); }