icCube

Documentation

Migrating icCube : 3.0.3 to 4.0

icCube 4.0 is backward compatible with the previous version but see below for new configuration properties in the file icCube.xml. Note that the application directory has been renamed from icCube.3.0 to icCube.4.0 for consistency purpose but you should be able to rename your current icCube.3.0 into icCube.4.0 without any trouble (please copy/backup it first as always).

Installation Reminder

Different versions of icCube can be installed side-by-side on the same machine and no file will be removed during the installation of a new version.

The main two directories mentioned in this page are:

  • the installation directory (referred to $install hereafter) : this is where the icCube binaries are installed,
  • the application directory (referred to $app hereafter) : this is the place where a running instance of icCube server is storing its data (e.g., users, roles, cubes, etc...). On startup of icCube this directory (if not existing) is created and initialized with the content of the $install directory.

Configuration (icCube.xml)

Within the configuration file $install/bin/icCube.xml, the following properties have been either added, modified or deleted.

icCube.disableLoadOnStartupSchema

Disable the load on startup schema processing (handy when having a lot of schema definition files and load on startup property is never used).

icCubeProperties.activeLoadCount

Maximum number of active schema LOAD requests. Once this limit has been reached incoming LOAD requests are blocked ( -1 means no limit ).

icCube.loadReadingThreadCount

LOAD requests are split into READING & PROCESSING tasks. The tasks are processed simultaneously using a pool of threads. This property defines the maximum number of threads used for the READING tasks (e.g., file access, JDBC result set access). This configuration applies for each LOAD request (i.e., if 2 LOAD requests are active then the actual number of threads is : 2 * loadReadingThreadCount). -1 means number of cores, 0 means sequential processing.

icCube.loadReadingQueueSize

A LOAD request is split into several READING tasks to be processed by the pool of threads as described above. This value defines the maximum number of queued tasks. Once this limit has been reached, the generation of the tasks is being blocked preventing too much memory usage. Relevant if loadReadingThreadCount is not sequential.

icCube.loadReadingRowBatch

This value describe the number of rows each READING task (as described above) contains. Relevant if loadReadingThreadCount is not sequential.

icCube.loadProcessingThreadCount

LOAD requests are split into READING & PROCESSING tasks. The tasks are processed simultaneously using a pool of threads. This property defines the maximum number of threads used for the PROCESSING tasks (e.g., file access, JDBC result set access). This configuration applies for each LOAD request (i.e., if 2 LOAD requests are active then the actual number of threads is : 2 * loadProcessingThreadCount). -1 means number of cores, 0 means sequential processing.

icCube.loadProcessingQueueSize

A LOAD request is split into several PROCESSING tasks to be processed by the pool of threads as described above. This value defines the maximum number of queued tasks. Once this limit has been reached, the generation of the tasks is being blocked preventing too much memory usage. Relevant if loadProcessingThreadCount is not sequential.

icCube.maxTablePartitionCount

Maximum number of table partitions (-1 means no limit); a few number of partitions is typically expected. Large number of partitions will generate a large number of table read requests and will add an overhead for the in-memory fact manager and more likely for the calculation engine.

icCubeProperties.javaMdxForbiddenPackages

A comma separated list of JAVA package that cannot be used in MDX statement. This list is added to the internal setup of forbidden packages.

monitoringConfigurations.*

A new entry that allows for configuring the performance counters to monitor.

icCubeAuthenticationService

Note the caseInsensitive parameter; e.g., this might be handy when using the Windows SSO mode as Windows does not require case sensitivity for the user names.