[Mondrian] RolapSchema Rev 92 Changelist 9138

Julian Hyde julianhyde at speakeasy.net
Tue Aug 7 15:15:14 EDT 2007


> -----Original Message-----
> From: mondrian-bounces at pentaho.org 
> [mailto:mondrian-bounces at pentaho.org] On Behalf Of Richard Emberson
> Sent: Tuesday, August 07, 2007 11:36 AM
> To: mondrian at pentaho.org
> Subject: [Mondrian] RolapSchema Rev 92 Changelist 9138
> 
> 
> With Rev 92 of RolapSchema.java changelist 9138
> 
> went from:
>              boolean useSchemaPool =
>                  Boolean.parseBoolean(
>                      connectInfo.get(
>                          
> RolapConnectionProperties.UseSchemaPool.name(),
>                          "true"));
> 
> to:
>              final boolean useSchemaPool =
>                  Boolean.parseBoolean(
>                      connectInfo.get(
>                          
> RolapConnectionProperties.UseSchemaPool.name(),
>                          "true")) &&
>                  Util.isEmpty(dynProcName);
> 
> Which means that if one uses a dynamic processor as part of
> xmla, then each xmla request generates a new RolapSchema object.
> Is this the intended behavior?

There were quite a few other changes to that method. My intent was to clean
up the rules for how the schema cache, MD5 checksum, and dynamic schema
processor interact.

We've never documented those rules, and trying to decipher the rules from
that routine was like reading tea leaves. Can you describe what you think
the current behavior is, and what you think it should be?

> Can we have some mechanism of reusing RolapSchema objects
> when dynamic processors are used?

We need several behaviors. One way to reuse a RolapSchema object if the
contents of the underlying URL have not changed; a way to create a new
RolapSchema object if the contents of the underlying URL have changed OR of
the dynamic schema processor deigns to spit out a different string; and a
way to always create a new RolapSchema.

Julian




More information about the Mondrian mailing list