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