Hello,
Can anyone spot what i am missing here ? The problem is that i am getting a null object for e.TextData in the t_OnEvent(object sender, TraceEventArgs e) function below. I am trying to get event- notifications while processing the data mining structure.
thanks
anil
//-code below-
using Microsoft.AnalysisServices;
 private void ProcessMiningStructure(MiningStructure mStruct)
 {
 Trace t;
 TraceEvent e;
 t = server.Traces.Add();
 e = t.Events.Add(TraceEventClass.ProgressReportCurrent);
 e.Columns.Add(TraceColumn.TextData);
 t.OnEvent += new TraceEventHandler(t_OnEvent);
 t.Update();
 try
 {
 t.Start();
 mStruct.Process(ProcessType.ProcessFull);
 t.Stop();
 }
 catch (Exception ex)
 {
 }
 t.Drop();
 }
//
 void t_OnEvent(object sender, TraceEventArgs e)
 {
 SetText(e.TextData);
 }
//
Hey Anil,
Your code is almost correct, the only part missing is the column definition for event's columns. See below:
using System;
using Microsoft.AnalysisServices;
namespace ConsoleApplication1
{
class Program
{
static void Main(string[] args)
{
Server srv = new Server();
srv.Connect("localhost");
Trace t = srv.Traces.Add();
TraceEvent ev = t.Events.Add(TraceEventClass.ProgressReportCurrent);
ev.Columns.Add(TraceColumn.ObjectID);
ev.Columns.Add(TraceColumn.TextData);
ev.Columns.Add(TraceColumn.EventClass);
ev.Columns.Add(TraceColumn.EventSubclass);
t.OnEvent += new TraceEventHandler(Progress_Event_Report);
t.Update();
t.Start();
srv.Databases["Adventure Works DW"].MiningStructures["Market Basket"].MiningModels["Market Basket"].Process(ProcessType.ProcessFull);
t.Stop();
t.Drop();
srv.Disconnect();
}
static void Progress_Event_Report(object sender, TraceEventArgs e_args)
{
Console.WriteLine("{0}\t{1}\t{2}\t{3}", e_args.ObjectID, e_args.EventClass, e_args.EventSubclass, e_args.TextData);
}
}
}
Hope this helps,
--
Raymond
|||Raymond
This helped fix the issue
thanks for your response
-anil
 
No comments:
Post a Comment