Certain scenarios where one task depends on the completion of another task may require administrators to know when the Intelligent Cubes have finished refreshing so the next task can be triggered accordingly.
The problem is knowing when the Intelligent Cubes have been refreshed and available in the Intelligence Server memory for use.
Following techniques can be used to detect whether a Strategy Intelligent cube has finished processing and is available for use.
- Intelligence Server Statistics
Assuming statistics are enabled for the project in question, users can monitor IS_REPORT_STATS to determine when the Intelligent Cube has been refreshed. This is possible because when the Intelligent Cube refresh job finishes, a record is logged in the IS_REPORT_STATS table.
- Report Post SQL Statement
Users can create a Report Post SQL Statement within the Intelligent Cube that updates the value of a flag in the warehouse table. Later the user can poll for the change in the value of the flag.
Note: This method will require some additional time from the point where the Intelligent Cube SQL finishes processing on the database (including the Report Post SQL Statement) to the point where the Intelligent Cube is put together on the Intelligence Server and loaded in the Intelligence Server memory.
- History List Subscription
Create a history list subscription to refresh the Intelligent Cube. When the subscription is triggered, a history list message will be created. The status field of the History List message can then be programmatically monitored to know when the Intelligent Cube has been refreshed.
- Intelligent Cube Cache
Users can poll the status of the Intelligent Cube cache using the COM APIs. When the Intelligent Cube is publishing, one of the status flags is 'P' (for publishing). Once the Intelligent Cube finishes publishing this flag is no longer present.