TL;DR; Provides code to retrieve the last processed date of cubes on an Analysis Services server, highlighting performance considerations and error handling in .NET environments.

I need a little bit of code to get the last processed date for the cube that my site connects to:
1Public Function GetCubeLastProcessedDates(ByVal AnalysisServer As String) As Collection(Of CubeInfo)
2 Dim result As Collection(Of CubeInfo)
3 Dim identity As WindowsIdentity = WindowsIdentity.GetCurrent()
4 Dim eCode As Integer = CommonUtility.RevertToSelf()
5 Dim oServer As New Server
6 Try
7 result = New Collection(Of CubeInfo)
8 oServer.Connect(String.Format(CultureInfo.InvariantCulture, "data Source = {0};", AnalysisServer))
9
10 For Each d As Database In oServer.Databases
11 For Each c As Cube In d.Cubes
12 result.Add(New CubeInfo(d.Name, c.Name, c.LastProcessed))
13 Next
14 Next
15
16 oServer.Disconnect()
17 Catch e As ConnectionException
18 ' Do some error handling
19 Catch e As AdomdErrorResponseException
20 ' Do some error handling
21 Catch e As AdomdConnectionException
22 ' Do some error handling
23 Catch e As Microsoft.AnalysisServices.AmoException
24 ' Do some error handling
25 Catch e As Exception
26 Throw
27 Finally
28 oServer.Dispose()
29 identity.Impersonate()
30 End Try
31 '------------------------------
32 Return result
33End Function
The only problem I have with this is that while it takes no longer than 5 seconds to return a negative result, it can take as much as 30 seconds to return when in the positive (i.e. you can access the cube).
This makes it a threading only, and more than that, a nice to have only. If this is critical information then you will just have to wait…
Technorati Tags: .NET
If you've made it this far, it's worth connecting with our principal consultant and coach, Martin Hinshelwood, for a 30-minute 'ask me anything' call.
We partner with businesses across diverse industries, including finance, insurance, healthcare, pharmaceuticals, technology, engineering, transportation, hospitality, entertainment, legal, government, and military sectors.

Bistech

ALS Life Sciences

Healthgrades

MacDonald Humfrey (Automation) Ltd.

Graham & Brown

Alignment Healthcare

Flowmaster (a Mentor Graphics Company)

Microsoft

Xceptor - Process and Data Automation

Higher Education Statistics Agency
CR2

Genus Breeding Ltd

Lockheed Martin
Boxit Document Solutions

Deliotte

Jack Links

Workday

Sage

New Hampshire Supreme Court

Department of Work and Pensions (UK)

Ghana Police Service

Washington Department of Enterprise Services

Washington Department of Transport

Nottingham County Council

DFDS

Big Data for Humans

ProgramUtvikling

MacDonald Humfrey (Automation) Ltd.

Qualco

Trayport