public override bool Execute() { Binding binding; if (this.EndpointType == "http") { binding = new BasicHttpBinding(); ((BasicHttpBinding)binding).MaxReceivedMessageSize = 2048 * 1024; } else if (this.EndpointType == "nettcp") { binding = new NetTcpBinding(); ((NetTcpBinding)binding).MaxReceivedMessageSize = 1024 * 1024; ((NetTcpBinding)binding).Security.Mode = SecurityMode.None; ((NetTcpBinding)binding).CloseTimeout = new TimeSpan(0, 0, 10); ((NetTcpBinding)binding).OpenTimeout = new TimeSpan(0, 0, 10); ((NetTcpBinding)binding).ReceiveTimeout = new TimeSpan(0, 0, 10); ((NetTcpBinding)binding).SendTimeout = new TimeSpan(0, 0, 10); } else throw new ArgumentException("Invalid value for EndpointType. Expected: http, nettcp"); EndpointAddress address = new EndpointAddress(new Uri(WebServiceUri)); IntegrationTestsService.IntegrationTestsServiceClient client = new IntegrationTestsService.IntegrationTestsServiceClient(binding, address); Log.LogMessage("Doing " + TotalBatches.ToString() + " batch calls with " + BatchSize.ToString() + " itens each"); Stopwatch watch = new Stopwatch(); watch.Start(); int count = 1; for (int i = 0; i < TotalBatches; i++) { ServiceTable[] stArray = client.GetServiceTables(count, count + (BatchSize - 1)); foreach (ServiceTable t in stArray) { ServiceTable t2 = new ServiceTable(); t2.ServiceTableID = t.ServiceTableID; t2.DescServiceTable = t.DescServiceTable; t2.Value = t.Value; t2.CreationDate = t.CreationDate; t2.StringField1 = t.StringField1; t2.StringField2 = t.StringField2; DAO.ProcessServiceTable(ConnString, t2); } count += BatchSize; } watch.Stop(); Log.LogMessage("Total processing time: " + watch.Elapsed.TotalSeconds.ToString("0.00") + " seconds"); return true; }
public override bool Execute() { Binding binding; if (this.EndpointType == "http") { binding = new BasicHttpBinding(); ((BasicHttpBinding)binding).MessageEncoding = WSMessageEncoding.Text; ((BasicHttpBinding)binding).TextEncoding = Encoding.UTF8; ((BasicHttpBinding)binding).TransferMode = TransferMode.Buffered; ((BasicHttpBinding)binding).Security.Mode = BasicHttpSecurityMode.None; } else if (this.EndpointType == "nettcp") { binding = new NetTcpBinding(); ((NetTcpBinding)binding).MaxReceivedMessageSize = 1024 * 1024; ((NetTcpBinding)binding).Security.Mode = SecurityMode.None; ((NetTcpBinding)binding).CloseTimeout = new TimeSpan(0, 1, 0); ((NetTcpBinding)binding).OpenTimeout = new TimeSpan(0, 1, 10); ((NetTcpBinding)binding).ReceiveTimeout = new TimeSpan(0, 1, 10); ((NetTcpBinding)binding).SendTimeout = new TimeSpan(0, 1, 10); } else throw new ArgumentException("Invalid value for EndpointType. Expected: http, nettcp"); EndpointAddress address = new EndpointAddress(new Uri(WebServiceUri)); IntegrationTestsService.IntegrationTestsServiceClient client = new IntegrationTestsService.IntegrationTestsServiceClient(binding, address); Log.LogMessage("Doing " + TotalRequests.ToString() + " calls"); Stopwatch watch = new Stopwatch(); watch.Start(); for (int i = 1; i <= TotalRequests; i++) { ServiceTable t = null; bool tryAgain = true; while (tryAgain) { try { t = client.GetServiceTable(i); tryAgain = false; } catch (EndpointNotFoundException) { Thread.Sleep(100); t = client.GetServiceTable(i); tryAgain = true; } } ServiceTable t2 = new ServiceTable(); t2.ServiceTableID = t.ServiceTableID; t2.DescServiceTable = t.DescServiceTable; t2.Value = t.Value; t2.CreationDate = t.CreationDate; t2.StringField1 = t.StringField1; t2.StringField2 = t.StringField2; DAO.ProcessServiceTable(ConnString, t2); } watch.Stop(); Log.LogMessage("Total processing time: " + watch.Elapsed.TotalSeconds.ToString("0.00") + " seconds"); return true; }
public override bool Execute() { Binding binding; if (this.EndpointType == "http") { /*binding = new BasicHttpBinding(); ((BasicHttpBinding)binding).MaxReceivedMessageSize = 2048 * 1024;*/ binding = new CustomBinding(); ((CustomBinding)binding).Elements.Add(new TextMessageEncodingBindingElement(MessageVersion.Soap11, Encoding.UTF8)); ((CustomBinding)binding).SendTimeout = new TimeSpan(0, 50, 0); ((CustomBinding)binding).ReceiveTimeout = new TimeSpan(0, 50, 0); ((CustomBinding)binding).OpenTimeout = new TimeSpan(0, 50, 0); ((CustomBinding)binding).CloseTimeout = new TimeSpan(0, 50, 0); HttpTransportBindingElement element = new HttpTransportBindingElement(); element.MaxReceivedMessageSize = 2048 * 1024; element.KeepAliveEnabled = false; element.RequestInitializationTimeout = new TimeSpan(1, 0, 0); ((CustomBinding)binding).Elements.Add(element); } else if (this.EndpointType == "nettcp") { binding = new NetTcpBinding(); ((NetTcpBinding)binding).MaxReceivedMessageSize = 1024 * 1024; ((NetTcpBinding)binding).Security.Mode = SecurityMode.None; ((NetTcpBinding)binding).CloseTimeout = new TimeSpan(0, 50, 10); ((NetTcpBinding)binding).OpenTimeout = new TimeSpan(0, 50, 10); ((NetTcpBinding)binding).ReceiveTimeout = new TimeSpan(0, 50, 10); ((NetTcpBinding)binding).SendTimeout = new TimeSpan(0, 50, 10); } else throw new ArgumentException("Invalid value for EndpointType. Expected: http, nettcp"); EndpointAddress address = new EndpointAddress(new Uri(WebServiceUri)); IntegrationTestsService.IntegrationTestsServiceClient client = new IntegrationTestsService.IntegrationTestsServiceClient(binding, address); Log.LogMessage("Doing " + TotalBatches.ToString() + " batch calls with " + BatchSize.ToString() + " itens each"); Stopwatch watch = new Stopwatch(); watch.Start(); int count = 1; ConcurrentQueue<ManualResetEvent> waitObjectQueue = new ConcurrentQueue<ManualResetEvent>(); Task task = null; for (int i = 0; i < TotalBatches; i++) { int start = count; int end = count + (BatchSize - 1); count += BatchSize; if (UseTask) { task = Task.Factory.StartNew(() => { ThreadJob(client, waitObjectQueue, start, end); }); } else { Thread thread = new Thread(() => { ThreadJob(client, waitObjectQueue, start, end); }); thread.Start(); } } if (task != null) task.Wait(); while (waitObjectQueue.Count > 0){ ManualResetEvent e; if (waitObjectQueue.TryDequeue(out e)) e.WaitOne(); } watch.Stop(); Log.LogMessage("Total processing time: " + watch.Elapsed.TotalSeconds.ToString("0.00") + " seconds"); return true; }
public override bool Execute() { Binding binding; if (this.EndpointType == "http") { /*binding = new BasicHttpBinding(); ((BasicHttpBinding)binding).MaxReceivedMessageSize = 2048 * 1024;*/ binding = new CustomBinding(); ((CustomBinding)binding).Elements.Add(new TextMessageEncodingBindingElement(MessageVersion.Soap11, Encoding.UTF8)); ((CustomBinding)binding).SendTimeout = new TimeSpan(0, 50, 0); ((CustomBinding)binding).ReceiveTimeout = new TimeSpan(0, 50, 0); ((CustomBinding)binding).OpenTimeout = new TimeSpan(0, 50, 0); ((CustomBinding)binding).CloseTimeout = new TimeSpan(0, 50, 0); HttpTransportBindingElement element = new HttpTransportBindingElement(); element.MaxReceivedMessageSize = 2048 * 1024; element.KeepAliveEnabled = false; element.RequestInitializationTimeout = new TimeSpan(1, 0, 0); ((CustomBinding)binding).Elements.Add(element); } else if (this.EndpointType == "nettcp") { binding = new NetTcpBinding(); ((NetTcpBinding)binding).MaxReceivedMessageSize = 1024 * 1024; ((NetTcpBinding)binding).Security.Mode = SecurityMode.None; ((NetTcpBinding)binding).CloseTimeout = new TimeSpan(0, 50, 10); ((NetTcpBinding)binding).OpenTimeout = new TimeSpan(0, 50, 10); ((NetTcpBinding)binding).ReceiveTimeout = new TimeSpan(0, 50, 10); ((NetTcpBinding)binding).SendTimeout = new TimeSpan(0, 50, 10); } else throw new ArgumentException("Invalid value for EndpointType. Expected: http, nettcp"); EndpointAddress address = new EndpointAddress(new Uri(WebServiceUri)); IntegrationTestsService.IntegrationTestsServiceClient client = new IntegrationTestsService.IntegrationTestsServiceClient(binding, address); Log.LogMessage("Doing " + TotalBatches.ToString() + " batch calls with " + BatchSize.ToString() + " itens each"); Stopwatch watch = new Stopwatch(); watch.Start(); int count = 1; Queue<Task<ServiceTable[]>> tasks = new Queue<Task<ServiceTable[]>>(); for (int i = 0; i < TotalBatches; i++) { if (UseSynchronousServer) tasks.Enqueue(client.GetServiceTablesAsync(count, count + (BatchSize - 1))); else tasks.Enqueue(client.GetServiceTablesAsynchronousAsync(count, count + (BatchSize - 1))); count += BatchSize; } Queue<Task> queue2 = new Queue<Task>(); while (tasks.Count > 0) { Task<ServiceTable[]> task = tasks.Dequeue(); task.Wait(); ServiceTable[] stArray = task.Result; foreach (ServiceTable t in stArray) { ServiceTable t2 = new ServiceTable(); t2.ServiceTableID = t.ServiceTableID; t2.DescServiceTable = t.DescServiceTable; t2.Value = t.Value; t2.CreationDate = t.CreationDate; t2.StringField1 = t.StringField1; t2.StringField2 = t.StringField2; queue2.Enqueue(DAO.ProcessServiceTableAsync(ConnString, t2)); } } while (queue2.Count > 0) queue2.Dequeue().Wait(); watch.Stop(); Log.LogMessage("Total processing time: " + watch.Elapsed.TotalSeconds.ToString("0.00") + " seconds"); return true; }