예제 #1
0
        public void Stop()
        {
            if (trace == null || !trace.IsStarted)
            {
                return;
            }

            trace.Stop();
            TabularModelHandler.Log("Analysis Services trace stopped");
        }
예제 #2
0
 public static void Cleanup()
 {
     lock (tabularEditorSessionTraces)
     {
         foreach (var trace in tabularEditorSessionTraces)
         {
             CleanupTrace(trace);
         }
         tabularEditorSessionTraces.Clear();
         TabularModelHandler.Log("Analysis Services trace cleanup completed");
     }
 }
예제 #3
0
 public static void Cleanup()
 {
     lock (tabularEditorSessionTraces)
     {
         try
         {
             foreach (var trace in tabularEditorSessionTraces)
             {
                 CleanupTrace(trace);
             }
             tabularEditorSessionTraces.Clear();
             TabularModelHandler.Log("Analysis Services trace cleanup completed");
         }
         catch (Exception ex)
         {
             TabularModelHandler.Log("Error occurred during trace cleanup: " + ex.Message);
         }
     }
 }
예제 #4
0
        private void Configure()
        {
            if (server == null)
            {
                return;
            }
            if (!server.ConnectionInfo.Server.EqualsI("localhost"))
            {
                return;
            }

            try
            {
                currentTraceName = traceNamePrefix + Guid.NewGuid().ToString("D");
                this.trace       = server.Traces.Add(currentTraceName);
                tabularEditorSessionTraces.Add(this.trace);

                TOM.TraceEvent tEvent;
                tEvent = this.trace.Events.Add(AS.TraceEventClass.CommandEnd);
                tEvent.Columns.Add(AS.TraceColumn.EventSubclass);
                tEvent.Columns.Add(AS.TraceColumn.Success);
                tEvent.Columns.Add(AS.TraceColumn.TextData);
                tEvent.Columns.Add(AS.TraceColumn.ApplicationName);
                tEvent.Columns.Add(AS.TraceColumn.DatabaseName);

                tEvent = this.trace.Events.Add(AS.TraceEventClass.ProgressReportCurrent);
                tEvent.Columns.Add(AS.TraceColumn.IntegerData);
                tEvent.Columns.Add(AS.TraceColumn.CurrentTime);
                tEvent.Columns.Add(AS.TraceColumn.ObjectName);
                tEvent.Columns.Add(AS.TraceColumn.ObjectPath);
                tEvent.Columns.Add(AS.TraceColumn.DatabaseName);

                this.trace.OnEvent += Trace_OnEvent;
                this.trace.Update();
                TabularModelHandler.Log("Analysis Services trace configured on localhost");
            }
            catch (Exception ex)
            {
                this.trace = null;
                TabularModelHandler.Log("Exception while configuring Analysis Services trace", ex);
            }
        }
        public static void Cleanup()
        {
            lock (tabularEditorSessionTraces)
            {
                foreach (var trace in tabularEditorSessionTraces)
                {
                    if (trace.IsStarted)
                    {
                        trace.Stop();
                    }

                    if (trace.Parent != null)
                    {
                        trace.Drop();
                    }
                    trace.Dispose();
                }
                tabularEditorSessionTraces.Clear();
                TabularModelHandler.Log("Analysis Services trace cleanup completed");
            }
        }
예제 #6
0
        public void Start()
        {
            try
            {
                if (trace == null)
                {
                    Configure();
                }

                if (trace != null)
                {
                    if (!trace.IsStarted)
                    {
                        trace.Start();
                        TabularModelHandler.Log("Analysis Services trace started");
                    }
                }
            }
            catch (Exception ex)
            {
                TabularModelHandler.Log("Exception while starting Analysis Services trace", ex);
            }
        }