I created the following DSO functions in VBA in Excel and I was able to
get if the cube was processed or unprocessed, but not if it was in the
process of being processed. If you were to create a web page it would
have to run as a member of OLAP Administrators in order to use the DSO
object model.
Sub GetCubeStatus()
Dim myServer As New DSO.Server
Dim myDb As DSO.Database
Dim myCube As DSO.Cube
'\\ Connect to server
Set myServer = New DSO.Server
myServer.Connect "Darren01"
Debug.Print " -- Database Status --"
Set myDb = myServer.MDStores("Foodmart 2000")
For Each myCube In myDb.MDStores
Debug.Print myCube.Name & " - " & StateString(myCube.state) &
" - " & myCube.LastProcessed
Next myCube
'\\ Clean Up
Set myDb = Nothing
myServer.CloseServer
Set myServer = Nothing
End Sub
Function StateString(state As DSO.OlapStateTypes) As String
Select Case state
Case OlapStateTypes.olapStateCurrent
StateString = "Processed"
Case OlapStateTypes.olapStateMemberPropertiesChanged _
, OlapStateTypes.olapStateSourceMappingChanged _
, OlapStateTypes.olapStateStructureChanged
StateString = "Structure Changed"
Case OlapStateTypes.olapStateNeverProcessed
StateString = "Unprocessed"
Case Else
StateString = "Unknown State"
End Select
End Function
A lateral approach to your problem may be to use a tool such as the
parallel processing utility or a custom DSO script - to process your
cube/dimensions in such a way that they are processed within a database
transaction. If they are processed in this manner the users should never
see an interruption in service.
What happens is that within a transaction AS2k processes into a
"shadow" copy of the cube/dimension. Then once the process is finished
it switches the live object over to the shadow copy. So if you can
process *ALL* your objects within the one DSO transaction the user will
(almost) never see an unprocessed cube.
--
Regards
Darren Gosbell [MCSD]
<dgosbell_at_yahoo_dot_com>
Blog: http://www.geekswithblogs.net/darrengosbell
In article <MPG.1d9503697fc5b3ee98969b (AT) news (DOT) microsoft.com>, Darren
Gosbell <dgosbell_at_yahoo_dot_com> says...
Quote:
You can use WMI to query the perfmon counters to see if *anything* is
processing, not sure if you can check on the status of an individual
cube. We used this at one point to check that all processing had
finished.
I will have a look through my DSO scripts to see if I can find anything
on individual cubes.  |