|
发表于 2014-3-20 09:02:45
|
显示全部楼层
Hi Sampler:
First, you say you're new to TM1 so I'll give the usual words of caution: If you don't really need to use the TM1 API (I'm talking mainly the C/VB TM1 API here) then you'll probably be much happier overall. The TM1 API certainly has a place in the TM1 world, but it's not an essential tool for all implementations and just because you can create a custom application/front-end doesn't mean you should. Building and supporting a custom application isn't trivial and the TM1 C/VB API, in particular, isn't natively as user-friendly as other API's you might have used elsewhere. It is also unlikely that your customer/company will find a large body of other people who can jump in and support a TM1 API app if you get hit by a bus.
OK, that's out of the way.
As far as I'm aware, TM1TOP and, similarly, Ben's TM1TOP app and components of Cubewise's Vizier get their TM1TOP information from the TM1 Server via calls to TM1 (C/VB) API functions that are not officially documented or published by IBM. This doesn't mean you can't ask IBM for the proper declarations via normal support/service request channels if you believe you have a need to use the same functionality in your application. Some of the functions you might be looking for declarations/instructions for (which I don't have reliable details on, unfortunately) might include these and more: TM1TopConnect, TM1TopGetCurrentState, TM1TopVerifyAdmin, TM1TopKillTiProcess
I do not believe there are any special TM1 or other (MDX, non-TM1 data source, etc) components involved here with TM1TOP, outside of something within the TM1 Server application that is servicing these TM1TOP requests and providing information about what is going on across user threads on the TM1 Server.
Your goals sound fairly ambitious given the tools available, particularly since it sounds like you're trying to work out the best time to kick off processes based on information via TM1TOP. The first problem is that TM1TOP is only sort-of realtime in that you get the latest information, I believe, when you call these TM1TOP API function(s), but, you may not really want to call TM1TOP over and over again in a loop to get that close to realtime information since I believe it refreshes all TM1TOP data for all threads with each call and that may have some impact on the TM1 Server - you'd have to test and see. Ideally you'd ask TM1 to notify you of certain TM1TOP-related information for certain objects on the TM1 Server that you'd like to watch, but I doubt this is possible currently. The other, probably bigger, problem is that you can't easily control what other users try to do or will try do next - it might look like the TM1 Server isn't busy one minute, but then 3 minutes later someone kicks off a 20 minute TI process and you're not much better off than you were before.
Don't get me wrong - what you're trying to do sounds very interesting and creative. Maybe these aren't things you need to worry about and you just want to monitor and find a point where 5 minutes have gone by without user activity before kicking off a data import process. I'm just pointing out that there might be other, simpler, options for solving this kind of problem and by trying to come up with a solution like the one you briefly describe you could inadvertently introduce additional problems/complications that you really don't need. Feel free to share more details about what you're ultimately trying to do if possible/appropriate.
Hope that helps and keep us posted on how things go.
Regards,
Mike |
|