|
|||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
java.lang.Object java.util.Dictionary<K,V> java.util.Hashtable<Object,Object> java.util.Properties org.eigenbase.util.property.TriggerableProperties mondrian.olap.MondrianProperties
public class MondrianProperties
MondrianProperties
contains the properties which determine the
behavior of a mondrian instance.
There is a method for property valid in a
mondrian.properties
file. Although it is possible to retrieve
properties using the inherited Properties.getProperty(String)
method, we recommend that you use methods in this class.
mondrian.properties
file checked into
source control, with a description of the property and its default
value.Similarly if you update or delete a property.
Nested Class Summary | |
---|---|
(package private) static class |
MondrianProperties.FilePropertySource
Implementation of MondrianProperties.PropertySource which reads from a
File . |
static interface |
MondrianProperties.PropertySource
Represents a place that properties can be read from, and remembers the timestamp that we last read them. |
static class |
MondrianProperties.SolveOrderModeEnum
Strategies for applying solve order, exposed via the property SolveOrderMode . |
(package private) static class |
MondrianProperties.UrlPropertySource
Implementation of MondrianProperties.PropertySource which reads from a URL . |
Field Summary | |
---|---|
StringProperty |
AggregateRules
String property containing the name of the file which defines the rules for recognizing an aggregate table. |
StringProperty |
AggregateRuleTag
String property that is the AggRule element's tag value. |
StringProperty |
AlertNativeEvaluationUnsupported
Alerting action to take in case native evaluation of a function is enabled but not supported for that function's usage in a particular query. |
BooleanProperty |
CaseSensitive
Boolean property that controls whether the MDX parser resolves uses case-sensitive matching when looking up identifiers. |
StringProperty |
CatalogURL
Property that contains the URL of the catalog to be used by CmdRunner and XML/A Test. |
BooleanProperty |
ChooseAggregateByVolume
Boolean property that controls whether aggregate tables are ordered by their volume or row count. |
BooleanProperty |
CompareSiblingsByOrderKey
Boolean property that controls whether sibling members are compared according to order key value fetched from their ordinal expression. |
IntegerProperty |
CrossJoinOptimizerSize
Property that defines when to apply the crossjoin optimization algorithm. |
BooleanProperty |
DisableCaching
Boolean property that controls whether a RolapStar's aggregate data cache is cleared after each query. |
BooleanProperty |
EnableCacheHitCounters
Property that controls whether aggregation cache hit / miss counters will be enabled |
BooleanProperty |
EnableExpCache
Boolean property that controls whether to use a cache for frequently evaluated expressions. |
BooleanProperty |
EnableGroupingSets
Property that defines whether to generate SQL queries using the GROUPING SETS
construct for rollup. |
BooleanProperty |
EnableNativeCrossJoin
if enabled some NON EMPTY CrossJoin will be computed in SQL |
BooleanProperty |
EnableNativeFilter
if enabled some Filter() will be computed in SQL |
BooleanProperty |
EnableNativeNonEmpty
some NON EMPTY set operations like member.children, level.members and member descendants will be computed in SQL |
BooleanProperty |
EnableNativeTopCount
if enabled some TopCount will be computed in SQL |
BooleanProperty |
EnableNonEmptyOnAllAxis
Boolean property that controls whether each query axis implicit has the NON EMPTY option set. |
BooleanProperty |
EnableRolapCubeMemberCache
Property that determines whether to cache RolapCubeMember objects, each of which associates a member of a shared hierarchy with a particular cube in which it is being used. |
BooleanProperty |
EnableTotalCount
If enabled, first row in the result of an XML/A drill-through request will be filled with the total count of rows in underlying database. |
BooleanProperty |
EnableTriggers
Boolean property that controls whether to notify the Mondrian system when a property value changes. |
BooleanProperty |
ExpandNonNative
When looking for native evaluation of an expression, expand non native subexpressions into MemberLists. |
StringProperty |
ExpCompilerClass
Property that defines the name of the class used to compile scalar expressions. |
StringProperty |
FoodmartJdbcURL
Property containing the JDBC URL of the FoodMart database. |
BooleanProperty |
GenerateAggregateSql
Boolean property that controls whether to print the SQL code generated for aggregate tables. |
BooleanProperty |
GenerateFormattedSql
Boolean property that controls pretty-print mode. |
IntegerProperty |
HighCardChunkSize
Property that establishes the amount of chunks for querying cells involving high-cardinality dimensions. |
BooleanProperty |
IgnoreInvalidMembers
Property that defines whether non-existent member errors should be ignored during schema load. |
BooleanProperty |
IgnoreInvalidMembersDuringQuery
Property that defines whether non-existent member errors should be ignored during query validation. |
BooleanProperty |
IgnoreMeasureForNonJoiningDimension
Property that defines whether to ignore measure when non joining dimension is in the tuple during aggregation. |
IntegerProperty |
IterationLimit
Property that defines the iteration limit when computing an aggregate; 0 indicates unlimited. |
IntegerProperty |
Iterations
todo: |
StringProperty |
JdbcDrivers
Property containing a list of JDBC drivers to load automatically. |
StringProperty |
JdbcFactoryClass
Property that defines the JdbcSchema factory class which determines the list of tables and columns of a specific datasource. |
StringProperty |
LocalePropFile
Name of locale property file. |
IntegerProperty |
MaxConstraints
Max number of constraints in a single `IN' SQL clause. |
IntegerProperty |
MaxEvalDepth
Boolean property that defines the maximum number of passes allowable while evaluating an MDX expression. |
IntegerProperty |
MaxRows
Property that defines limit on the number of rows returned by XML/A drill through request. |
BooleanProperty |
MemoryMonitor
Property that defines whether the MemoryMonitor should be enabled. |
StringProperty |
MemoryMonitorClass
Property that defines the name of the class used as a memory monitor. |
IntegerProperty |
MemoryMonitorThreshold
Property that defines the default MemoryMonitor percentage threshold. |
BooleanProperty |
NeedDimensionPrefix
Property determines if elements of dimension (levels, hierarchies, members) need to be prefixed with dimension name in MDX query. |
BooleanProperty |
NullDenominatorProducesNull
Property that defines the behavior of division if the denominator evaluates to zero. |
StringProperty |
NullMemberRepresentation
Property that determines how a null member value is represented in the result output. |
BooleanProperty |
OptimizePredicates
Boolean property that determines whether Mondrian optimizes predicates. |
StringProperty |
QueryFileDirectory
Property defining where the test XML files are. |
StringProperty |
QueryFilePattern
Property that defines a pattern for which test XML files to run. |
IntegerProperty |
QueryLimit
Maximum number of simultaneous queries the system will allow. |
IntegerProperty |
QueryTimeout
Property that defines the timeout value (in seconds) for queries; 0, the default, indicates no timeout. |
BooleanProperty |
ReadAggregates
Boolean property that determines whether Mondrian should read aggregate tables. |
IntegerProperty |
ResultLimit
Integer property that, if set to a value greater than zero, limits the maximum size of a result set. |
StringProperty |
SolveOrderMode
Property that controls the behavior of solve order of calculated members and sets. |
IntegerProperty |
SparseSegmentCountThreshold
Property that, with SparseSegmentDensityThreshold , determines
whether to choose a sparse or dense representation when storing
collections of cell values in memory. |
DoubleProperty |
SparseSegmentDensityThreshold
Property that, with SparseSegmentCountThreshold ,
determines whether to choose a sparse or dense representation when
storing collections of cell values in memory. |
StringProperty |
TestClass
String property that determines which test class to run. |
StringProperty |
TestConnectString
Property containing the connect string which regresssion tests should use to connect to the database. |
IntegerProperty |
TestExpDependencies
Integer property that controls whether to test operators' dependencies, and how much time to spend doing it. |
StringProperty |
TestHighCardinalityDimensionList
Property containing a list of dimensions in the Sales cube that should be treated as high-cardinality dimensions by the testing infrastructure. |
StringProperty |
TestJdbcPassword
Property containing the JDBC password of a test database. |
StringProperty |
TestJdbcURL
Property containing the JDBC URL of a test database. |
StringProperty |
TestJdbcUser
Property containing the JDBC user of a test database. |
StringProperty |
TestName
String property that determines which tests are run. |
IntegerProperty |
TestSeed
Seed for random number generator used by some of the tests. |
IntegerProperty |
TimeLimit
Property that returns the time limit for the test run in seconds. |
BooleanProperty |
UseAggregates
Boolean property that controls whether Mondrian uses aggregate tables. |
IntegerProperty |
VUsers
todo: |
BooleanProperty |
Warmup
Property that indicates whether this is a "warmup test". |
StringProperty |
WarnIfNoPatternForDialect
Property that controls if warning messages should be printed if a sql comparison tests do not contain expected sqls for the specified dialect. |
Fields inherited from class org.eigenbase.util.property.TriggerableProperties |
---|
properties, triggers |
Fields inherited from class java.util.Properties |
---|
defaults |
Constructor Summary | |
---|---|
MondrianProperties()
|
Method Summary | |
---|---|
static MondrianProperties |
instance()
Returns the singleton. |
void |
populate()
Loads this property set from: the file "$PWD/mondrian.properties" (if it exists); the "mondrian.properties" in the CLASSPATH; and from the system properties. |
boolean |
triggersAreEnabled()
|
Methods inherited from class org.eigenbase.util.property.TriggerableProperties |
---|
getProperties, getPropertyDefinition, getPropertyList, register, setProperty |
Methods inherited from class java.util.Properties |
---|
getProperty, getProperty, list, list, load, load, loadFromXML, propertyNames, save, store, store, storeToXML, storeToXML, stringPropertyNames |
Methods inherited from class java.util.Hashtable |
---|
clear, clone, contains, containsKey, containsValue, elements, entrySet, equals, get, hashCode, isEmpty, keys, keySet, put, putAll, rehash, remove, size, toString, values |
Methods inherited from class java.lang.Object |
---|
finalize, getClass, notify, notifyAll, wait, wait, wait |
Field Detail |
---|
public final transient IntegerProperty QueryLimit
Oracle fails if you try to run more than the 'processes' parameter in init.ora, typically 150. The throughput of Oracle and other databases will probably reduce long before you get to their limit.
public final transient StringProperty JdbcDrivers
public final transient IntegerProperty ResultLimit
public final transient IntegerProperty HighCardChunkSize
mondrian.result.limit
.
public final transient StringProperty TestName
This is a regular expression as defined by
Pattern
.
If this property is specified, only tests whose names match the pattern
in its entirety will be run.
TestClass
public final transient StringProperty TestClass
This is the name of the class which either implements
junit.framework.Test
or has a method
public [static] junit.framework.Test suite()
.
Example:
mondrian.test.Class=mondrian.test.FoodMartTestCase
TestName
public final transient StringProperty TestConnectString
Util.parseConnectString(String)
.
public final transient StringProperty TestHighCardinalityDimensionList
public final transient StringProperty FoodmartJdbcURL
public final transient StringProperty TestJdbcURL
public final transient StringProperty TestJdbcUser
public final transient StringProperty TestJdbcPassword
public final transient IntegerProperty SparseSegmentCountThreshold
SparseSegmentDensityThreshold
, determines
whether to choose a sparse or dense representation when storing
collections of cell values in memory.
When storing collections of cell values, Mondrian has to choose
between a sparse and a dense representation, based upon the
possible
and actual
number of values.
The density
is actual / possible
.
We use a sparse representation if
(possible -
countThreshold
) *
densityThreshold
>
actual
For example, at the default values
(countThreshold
= 1000,
SparseSegmentDensityThreshold
= 0.5),
we use a dense representation for
public final transient DoubleProperty SparseSegmentDensityThreshold
SparseSegmentCountThreshold
,
determines whether to choose a sparse or dense representation when
storing collections of cell values in memory.
public final transient StringProperty QueryFilePattern
querywhatever.xml
in the directory.
Example:
mondrian.test.QueryFilePattern=queryTest_fec[A-Za-z0-9_]*.xml
public final transient StringProperty QueryFileDirectory
public final transient IntegerProperty Iterations
public final transient IntegerProperty VUsers
public final transient IntegerProperty TimeLimit
public final transient BooleanProperty Warmup
public final transient StringProperty CatalogURL
CmdRunner
and XML/A Test.
public final transient BooleanProperty EnableCacheHitCounters
public final transient StringProperty WarnIfNoPatternForDialect
public final transient BooleanProperty UseAggregates
If true, then Mondrian uses aggregate tables. This property is queried prior to each aggregate query so that changing the value of this property dynamically (not just at startup) is meaningful.
Aggregates can be read from the database using the
ReadAggregates
property but will not be used unless this
property is set to true.
public final transient BooleanProperty ReadAggregates
If set to true, then Mondrian scans the database for aggregate tables. Unless mondrian.rolap.aggregates.Use is set to true, the aggregates found will not be used.
public final transient BooleanProperty ChooseAggregateByVolume
If true, Mondrian uses the aggregate table with the smallest volume (number of rows multiplied by number of columns); if false, Mondrian uses the aggregate table with the fewest rows.
public final transient StringProperty AggregateRules
The default value is "/DefaultRules.xml", which is in the mondrian.rolap.aggmatcher package in Mondrian.jar.
Normally, this property is not set by a user.
public final transient StringProperty AggregateRuleTag
Normally, this property is not set by a user.
public final transient BooleanProperty GenerateAggregateSql
If set, then as each aggregate request is processed, both the lost and collapsed dimension create and insert sql code is printed. This is for use in the CmdRunner allowing one to create aggregate table generation sql.
public final transient BooleanProperty DisableCaching
public final transient BooleanProperty EnableTriggers
property value
changes.
This allows objects dependent on Mondrian properties to react (that
is, reload), when a given property changes via, say,
MondrianProperties.instance().populate(null)
or
MondrianProperties.instance().QueryLimit.set(50)
.
public final transient BooleanProperty GenerateFormattedSql
public final transient BooleanProperty EnableNonEmptyOnAllAxis
public final transient BooleanProperty ExpandNonNative
public final transient BooleanProperty CompareSiblingsByOrderKey
public final transient BooleanProperty EnableExpCache
Rank([Product].CurrentMember,
Order([Product].MEMBERS, [Measures].[Unit Sales]))
would perform
many redundant sorts. The default is true.
public final transient IntegerProperty TestExpDependencies
If this property is positive, Mondrian's test framework allocates an expression evaluator which evaluates each expression several times, and makes sure that the results of the expression are independent of dimensions which the expression claims to be independent of.
The default is 0.
public final transient IntegerProperty TestSeed
If you set the value to 0, the system will generate its own pseudo-random seed.
If you set the value to -1, Mondrian uses the next seed from an internal random-number generator. This is a little more deterministic than setting the value to 0.
public final transient StringProperty LocalePropFile
Used for the LocalizingDynamicSchemaProcessor
;
see Internationalization
for more details.
Default value is null.
public final transient BooleanProperty EnableNativeCrossJoin
public final transient BooleanProperty EnableNativeTopCount
public final transient BooleanProperty EnableNativeFilter
public final transient BooleanProperty EnableNativeNonEmpty
public final transient StringProperty AlertNativeEvaluationUnsupported
OFF
: do nothing (default action, also used if
unrecognized action is specified)
WARN
: log a warning to RolapUtil logger
ERROR
: throw an instance of
NativeEvaluationUnsupportedException
public final transient BooleanProperty EnableTotalCount
public final transient BooleanProperty CaseSensitive
public final transient IntegerProperty MaxRows
public final transient IntegerProperty MaxConstraints
This value may be variant among database prodcuts and their runtime settings. Oracle, for example, gives the error "ORA-01795: maximum number of expressions in a list is 1000".
Recommended values:
public final transient BooleanProperty OptimizePredicates
public final transient IntegerProperty MaxEvalDepth
If evaluation exceeds this depth (for example, while evaluating a very complex calculated member), Mondrian will throw an error.
public final transient StringProperty JdbcFactoryClass
JdbcSchema
public final transient IntegerProperty QueryTimeout
public final transient BooleanProperty IgnoreInvalidMembers
public final transient BooleanProperty IgnoreInvalidMembersDuringQuery
public final transient StringProperty NullMemberRepresentation
AS 2000 shows this as empty value
AS 2005 shows this as "(null)" value
public final transient IntegerProperty IterationLimit
public final transient BooleanProperty MemoryMonitor
MemoryMonitor
should be enabled. By
default for Java5 and above it is not enabled.
public final transient IntegerProperty MemoryMonitorThreshold
MemoryMonitor
percentage threshold.
public final transient StringProperty MemoryMonitorClass
If the value is
non-null, it is used by the MemoryMonitorFactory
to create the implementation.
public final transient StringProperty ExpCompilerClass
If the value is
non-null, it is used by the ExpCompiler.Factory
to create the implementation.
public final transient IntegerProperty CrossJoinOptimizerSize
If a crossjoin input list's size is larger than this property's
value and the axis has the "NON EMPTY" qualifier, then
the crossjoin non-empty optimizer is applied.
Setting this value to '0' means that for all crossjoin
input lists in non-empty axes will have the optimizer applied.
On the other hand, if the value is set larger than any possible
list, say Integer.MAX_VALUE
, then the optimizer
will never be applied.
public final transient BooleanProperty NullDenominatorProducesNull
If a division has a non-null numerator and a null denominator, it evaluates to "Infinity", which conforms to MSAS behavior. However, the old semantics of evaluating this to NULL (non MSAS-conforming), is useful in some applications. This property controls whether the result should be NULL if the denominator is Null.
public final transient BooleanProperty EnableGroupingSets
GROUPING SETS
construct for rollup. By default it is not enabled.
Ignored on databases which do not support the
GROUPING SETS
construct (see
SqlQuery.Dialect.supportsGroupingSets()
).
public final transient BooleanProperty IgnoreMeasureForNonJoiningDimension
If there are unrelated dimensions to a measure in context during aggregation, the measure is ignored in the evaluation context. This behaviour kicks in only if the cubeusage for this measure has IgnoreUnrelatedDimensions attribute set to false.
For example, Gender doesn't join with [Warehouse Sales] measure.
With mondrian.olap.agg.IgnoreMeasureForNonJoiningDimension=true Warehouse Sales gets eliminated and is ignored in the aggregate value.
[Store Sales] + [Warehouse Sales] SUM({Product.members * Gender.members}) 7,913,333.82
With mondrian.olap.agg.IgnoreMeasureForNonJoiningDimension=false Warehouse Sales with Gender All level member contributes to the aggregate value.
[Store Sales] + [Warehouse Sales] SUM({Product.members * Gender.members}) 9,290,730.03
On a report where Gender M, F and All members exist a user will see a large aggregated value compared to the aggregated value that can be arrived at by suming up values against Gender M and F. This can be confusing to the user. This feature can be used to eliminate such a situation.
public final transient BooleanProperty NeedDimensionPrefix
select {[M]} on 0 from sales
select {[USA]} on 0 from sales
select {[USA].[CA].[Santa Monica]} on 0 from sales
When the property is set to true, any query where elements are prefixed with dimension name as below will work
select {[Gender].[F]} on 0 from sales
select {[Customers].[Santa Monica]} on 0 from sales
Please note that this property does not govern the behaviour where in
[Gender].[M]
is resolved into a fully qualified
[Gender].[All Gender].[M]
In a scenario where the schema is very large and dimensions have large number of members a MDX query that has a invalid member in it will cause mondrian to to go through all the dimensions, levels, hierarchies, members and properties trying to resolve the element name. This behaviour consumes considerable time and resources on the server. Setting this property to true will make it fail fast in a scenario where it is desirable
public final transient BooleanProperty EnableRolapCubeMemberCache
The default is true
, that is, use a cache. If you wish to use
the member cache control aspects of CacheControl
,
you must set this property to false
.
In future, we plan to make RolapCubeMember more lightweight to construct, and we will probably obsolete this cache and this property.
public final transient StringProperty SolveOrderMode
solve order
of calculated members and sets.
Valid values are "absolute" and "scoped" (the default). See
MondrianProperties.SolveOrderModeEnum
for details.
Constructor Detail |
---|
public MondrianProperties()
Method Detail |
---|
public static MondrianProperties instance()
public boolean triggersAreEnabled()
triggersAreEnabled
in class TriggerableProperties
public void populate()
|
|||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |