4

我使用 Mondrian 作为我的服务器 olap 引擎。

我有一个场景,我的一些维度数据正在发生变化。发生这种情况时,我想清除蒙德里安缓存。

我无法理解如何获得蒙德里安的缓存控制。

我有一个对OlapConnection对象的引用,但我找不到任何可以为 CacheControl 提供句柄的方法

有什么建议么?

约西

4

2 回答 2

3

bhuang3 给出的答案是对的。要从 olap4j 连接访问缓存控制:

OlapConnection.unwrap(mondrian.rolap.RolapConnection.class).getCacheControl(null)
于 2012-12-05T15:06:14.940 回答
1

好吧,您可以使用以下 API 来刷新多维数据集的缓存

mondrian.olap.CacheControl cacheControl = connection.getCacheControl(null);
mondrian.olap.Schema schema = connection.getSchema();
mondrian.olap.Cube cube = schema.lookupCube(cubeName, false);
mondrian.olap.CacheControl.CellRegion cellRegion = cacheControl.createMeasuresRegion(cube);
cacheControl.flush(cellRegion);

或者您可以刷新模式缓存

cacheControl.flushSchemaCache();

或者,请阅读文档以获取更多详细信息。

于 2012-11-28T15:29:08.657 回答