SSAS2008 : 全新的可扩展插件架构
SSAS 2008有很多不错的增强,其中一个就是对于扩展性方面的增强。下面这个文章介绍了这些特性
http://msdn.microsoft.com/zh-cn/library/cc627355(loband).aspx
下面是我写的一个范例
using System;
using System.Collections.Generic;
using System.Text;
using Microsoft.AnalysisServices.AdomdServer;
using System.IO;
namespace Plugin
{
[PlugIn]
public class MyPlugin
{
public MyPlugin()
{
Context.Server.SessionOpened += new EventHandler(Server_SessionOpened);
Context.Server.SessionClosing += new EventHandler(Server_SessionClosing);
Context.CurrentConnection.CubeOpened += new EventHandler(CurrentConnection_CubeOpened);
Context.CurrentConnection.CubeClosing += new EventHandler(CurrentConnection_CubeClosing);
}
private string LogFile = @"e:\temp\auditlog.txt";
void CurrentConnection_CubeClosing(object sender, EventArgs e)
{
File.AppendAllText(LogFile, string.Format("用户:{0},于{1}关闭Cube{2}\n", Context.CurrentConnection.User.Name, DateTime.Now.ToString(), Context.CurrentCube.Caption));
}
void CurrentConnection_CubeOpened(object sender, EventArgs e)
{
File.AppendAllText(LogFile, string.Format("用户:{0},于{1}打开Cube:{2}\n", Context.CurrentConnection.User.Name, DateTime.Now.ToString(), Context.CurrentCube.Caption));
}
void Server_SessionClosing(object sender, EventArgs e)
{
File.AppendAllText(LogFile, string.Format("用户:{0},于{1}退出会话\n", Context.CurrentConnection.User.Name, DateTime.Now.ToString()));
}
void Server_SessionOpened(object sender, EventArgs e)
{
File.AppendAllText(LogFile, string.Format("用户:{0},于{1}建立会话\n", Context.CurrentConnection.User.Name, DateTime.Now.ToString()));
}
}
}