- 浏览: 157796 次
- 性别:
- 来自: 上海
文章分类
最新评论
-
yo8237233:
多谢分享
Pentaho平台搭建之初始化mysql数据库--详细步骤记录 -
lingyun6100:
按楼主说的操作了 还是没有打印出mdx语句,很郁闷。
Mondrian解析MDX成sql语句的分析与整理 -
jcyanfan:
补充一个:
Caused by: mondrian.olap ...
Mondrian中MDX查询使用时收集的bug及异常处理小结 -
mmmxcy:
非常感谢,这个工具帮了我大忙!
Word转PDF时自动生成书签(目录) -
datawarehouse:
初始化Oracle数据库 的确是头疼的事。
Pentaho平台搭建之初始化mysql数据库--详细步骤记录
前面我已整理了部分mdx查询中常见异常,这里接着贴出我学习过程中遇到的其他一些常见异常。有些已解决,还有一些未解决,希望正在学习的和熟悉mdx这一块的朋友知道解决方法的告知一下。先谢了!
异常: 8
[JPivot] 21 七月 2010 23:26:31,109 ERROR [Session 3DA5B31A164F01E50C42D796D221BC2F] com.tonbeller.jpivot.tags.OlapModelTag#doEndTag:
mondrian.olap.MondrianException : Mondrian Error:Named set in cube 'Sales' has bad formula
.
Caused by: mondrian.olap.MondrianException : Mondrian Error:No function matches signature '<Level>.prevMember'
解决方法:这个异常可以参看异常15。
%***************************************************************************
33031 [http-8088-2] ERROR com.tonbeller.wcf.controller.RequestFilter
- Error handling request
javax.servlet.ServletException
:
javax.servlet.jsp.JspException
:
com.tonbeller.jpivot.olap.model.OlapException
: Mondrian Error:Syntax error at line 1, column 59, token 'EOF'
Caused by:
mondrian.olap.MondrianException
: Mondrian Error:Syntax error in MDX expression 'IsAncestor([Sale Region].CurrentMember,[Sale Region].[suzhou]'
at mondrian.resource.MondrianResource$_Def0.ex(
MondrianResource.java:785
)
解决方法:待解决
%***************************************************************************
异常:
9
异常: 10
Caused by: com.tonbeller.jpivot.olap.model.OlapException : Mondrian Error:Tuple contains more than one member of dimension '[Product Category]'.
at com.tonbeller.jpivot.mondrian.MondrianModel.initialize( MondrianModel.java:550 )
解决方法:
由于我粗心,将“ . ”误写成了“ , ”,才会报上面异常。修改方法为将“ [Product Category],[All Products] ”改为“ [Product Category].[All Products] ”。
select {[Measures].[ROI],[Measures].[Number],Measures.[Number Proportion],[Measures].[Average UnitPrice],[Measures].[Total Sale],[Measures].[Product Percentage]} ON columns, NON EMPTY
{( [Product Category],[All Products] ,[Customer Sex].[All Sex])} ON rows from [Sales]
%***************************************************************************
异常: 11
2474343 [http-8080-2] ERROR com.tonbeller.jpivot.tags.OlapModelTag -
mondrian.olap.MondrianException : Mondrian Error:Internal error: Error while creating SQL dialect
at mondrian.resource.MondrianResource$_Def0.ex( MondrianResource.java:785 )
at mondrian.olap.Util.newInternal( Util.java:1340 )
at java.lang.Thread.run( Thread.java:619 )
Caused by: java.sql.SQLException : Network error IOException : Connection refused: connect
解决方法:
由异常信息可看出出现此异常是由于连接数据库出错,我仔细检查了是由于将 mysql 数据库连接成了 SqlServer 数据库。
%***************************************************************************
异常: 12
154157 [http-8080-1] ERROR com.tonbeller.wcf.controller.RequestFilter - exeption
org.apache.jasper.JasperException : javax.servlet.ServletException : javax.servlet.jsp.JspException : OlapModel/Query ${paramquery01} not found
at org.apache.jasper.servlet.JspServletWrapper.handleJspException( JspServletWrapper.java:522 )
解决方法:
错误原因是以下代码中:
< jp:setParam query = "${ paramquery01 } " httpParam = "param" mdxParam = "ProductMember" >
<jp:mondrianQuery id="query01"
jdbcDriver="com.mysql.jdbc.Driver"
jdbcUrl="jdbc:mysql://localhost:3306/tezz?user=root&password=sys"
catalogUri="/WEB-INF/queries/tezz.xml" >
select
{[Measures].[Number],[Measures].[Average UnitPrice],[Measures].[Total Sale]} ON columns,
{Parameter("ProductMember", [Product Category],[Product Category].[All Products])} ON rows
from [Sales]
</ jp:mondrianQuery >
</ jp:setParam >
jpivot 的 setParam 标签的 query 属性值就是 mondrianQuery 标签的 id 属性值,应一致。将 query01 改为 paramquery01 即可。
%***************************************************************************
异常: 13
信息 : SessionListener: contextInitialized()
2010-7-23 8:44:12 org.apache.catalina.session.StandardManager doLoad
严重 : IOException while loading persisted sessions: java.io.EOFException
java.io.EOFException
at java.io.ObjectInputStream$PeekInputStream.readFully( ObjectInputStream.java:2281 )
at java.io.ObjectInputStream$BlockDataInputStream.readShort( ObjectInputStream.java:2750 )
at java.io.ObjectInputStream.readStreamHeader( ObjectInputStream.java:780 )
at java.io.ObjectInputStream.<init>( ObjectInputStream.java:280 )
at org.apache.catalina.util.CustomObjectInputStream.<init>( CustomObjectInputStream.java:58 )
解决办法:重建项目换个项目名称。
%***************************************************************************
异常: 14
87875 [http-8088-1] ERROR com.tonbeller.wcf.controller.RequestFilter - exeption
页面异常
org.apache.jasper.JasperException : An exception occurred processing JSP page /testpage.jsp at line 44
41: <form action="testpage.jsp" method="post">
42:
43: <%-- include query and title, so this jsp may be used with different queries --%>
44: <wcf:include id="include01" httpParam="query" prefix="/WEB-INF/queries/" suffix=".jsp"/>
45: <c:if test="${query01 == null}">
46: <jsp:forward page="/index.jsp"/>
47: </c:if>
Caused by: com.tonbeller.jpivot.olap.model.OlapException : Mondrian Error:No function matches signature '(<Set>, <Member>)'
at com.tonbeller.jpivot.mondrian.MondrianModel.initialize( MondrianModel.java:550 )
at com.tonbeller.jpivot.olap.model.OlapModelDecorator.initialize( OlapModelDecorator.java:132 )
解决方法:
我的 mdx 查询语句如下:
select {[Measures].[Total Sale],[Measures].[Product Percentage]} ON columns,
{( [Product Category].[All Products].children ,[Customer Sex].[All Sex])} ON rows
from [Sales]
改为: select {[Measures].[Total Sale],[Measures].[Product Percentage]} ON columns,
{( [Product Category].[All Products] ,[Customer Sex].[All Sex])} ON rows
from [Sales]
即可。
%***************************************************************************
1317609 [http-8088-1] ERROR com.tonbeller.wcf.controller.RequestFilter
- cause
javax.servlet.ServletException
:
javax.servlet.jsp.JspException
:
org.apache.jasper.JasperException
:
javax.servlet.ServletException
:
javax.servlet.jsp.JspException
:
com.tonbeller.jpivot.olap.model.OlapException
: Mondrian Error:No function matches signature '{<Level>}'
at org.apache.jasper.runtime.PageContextImpl.doHandlePageException(
PageContextImpl.java:858
)
Caused by:
com.tonbeller.jpivot.olap.model.OlapException
: Mondrian Error:No function matches signature '{<Level>}'
at com.tonbeller.jpivot.mondrian.MondrianModel.initialize(
MondrianModel.java:550
)
at com.tonbeller.jpivot.olap.model.OlapModelDecorator.initialize(
OlapModelDecorator.java:132
)
解决方案:
我的
mdx
查询语句:
select {
[Sale Time].[quarterName]
} ON columns,
{[Product Category].[All Products].CHILDREN} ON rows
from [Sales]
由于
[Sale Time].[quarterName]
只是到了级别(
level
),而集合
set
中只能是
member
或者
tuple
,
故只需将
{[Sale Time].[quarterName]}
改为
{[Sale Time].[quarterName].AllMembers}
效果图为:
异常:
15
{[Sale Time].[quarterName].AllMembers}
与
{[quarterName].AllMembers}
得出的效果一样。
若改为:
{[Sale Time] }
,则效果图为:
若改为:
{[Sale Time].[quarterName].children}
,则报异常:
Caused by:
javax.servlet.ServletException
:
javax.servlet.jsp.JspException
:
com.tonbeller.jpivot.olap.model.OlapException
: Mondrian Error:No function matches signature '<Level>.children'
at org.apache.jasper.runtime.PageContextImpl.doHandlePageException(
PageContextImpl.java:858
)
同样,
{[Sale Time].[quarterName].children}
与
{[quarterName].children}
效果是一样的。
故我得出的结论是:
1. level 下面不能调用 children ,只能用 allmembers 来获得子集所有成员。 Children 可以用在层次 hierarchy 下面如: [Product Category].[All Products].children( 注意的是这里的 ”All Products” 是层次的 allMemberName 属性,而非 name 属性 , 用 name 属性的写法是 [Sale Time.OnlyQ].children ,此时也可以用 allmembers) ;也可以直接在维度下面 , 如 [Sale Time].children, 显示效果图为:
同时, allmembers 也可以用在直接维度下面如 [Sale Time]. allmembers, 显示效果图为将成员全部列出,不是下钻( drill-down )形式,操作只能是上卷( drill-up ):
结论 2 :两个嵌套的 level 的( name 属性)不能同时用,即 [yearName].[quarterName] 会报找不到的错误,但涉及到具体的 members 就可以用,如 [2007].[Q1].
涉及到具体 member 值如 [2007] ,或 [2007].[Q1] 等的 member ,后面就不能使用 member,allmembers,currentmember, 都会报上面的同样的错,但可以使用如下术语:
Children , firstchild , parent , prevmember, nextmember 。
异常先贴到这里,如有朋友发现错误之处还请指出,以免一错再错,误导了其他的朋友。这里说明一下:对于异常15涉及到一些截图,这里我将它们上传到文件里,若希望结合截图参看可以下载下来。
By the way, 供大家交流Pentaho的圈子,里面可以共享有关pentahoBI平台学习的资料,期待您的加入! http://pentahofrends.group.iteye.com/
- 异常15.rar (57.2 KB)
- 下载次数: 31
评论
<jp:setParam mdxParam="year" query="query01" httpParam="param">
<jp:mondrianQuery id="query01"
catalogUri="/WEB-INF/queries/siteevalCube.xml"
dateSource="jdbc/site">
select {[Measures].[指标得分], [Measures].[指标成熟度]} ON COLUMNS
from [siteeval]
where [年度].Parameter("year")
</jp:mondrianQuery>
</jp:setParam>
还有像楼主这样的用法,是不是传过来的参数是一些集合或成员,如param=[Product Category].[All Products].[Mountain Bike]
......
</jp:setParam>
我如此使用jp:setParam这个标签。为什么会抛com.tonbeller.jpivot.olap.model.OlapException: Mondrian Error:Internal error: Parameter name must be a string constant这个异常呢?不知道你没有遇到过这种异常。如果有遇到能为我解答吗?十分感谢。
你好,目前我还没有遇到过你说的异常,你试一下将mdxParam的值设置为全字符的字符串看看,不含有数字,看是否还报同样的异常。
<jp:mondrianQuery id="query01"
catalogUri="/WEB-INF/salesReport/totalSales.xml"
dataSource="jdbc/jpivot">
select {[Measures].[酒店订单量],[Measures].[酒店订间夜],[Measures].[酒店订单金额]} ON columns,
{([统计日期].Parameter("Param01"),[企业])} ON rows
from [HotelOrderStat]
</jp:mondrianQuery>
</jp:setParam>
我如此使用jp:setParam这个标签。为什么会抛com.tonbeller.jpivot.olap.model.OlapException: Mondrian Error:Internal error: Parameter name must be a string constant这个异常呢?不知道你没有遇到过这种异常。如果有遇到能为我解答吗?十分感谢。
发表评论
-
在线联机分析(OLAP)小结
2012-11-07 16:40 1499联机分析处理 多维分析是以多维的形式组织数据,并且采 ... -
MDX的3种数据源配置及简化JSP中配置
2010-11-15 21:03 2400在jpivot 应用程序的 jsp ... -
简单MDX中冒号(:)的使用说明
2010-08-15 12:24 1646在一本书上看到了在mdx中冒号的使用说明,于是 ... -
Mondrian解析MDX成sql语句的分析与整理
2010-07-25 11:29 8493不久前, 在同事的努力下,他找到了如何设置使Mondr ... -
Mondrian中MDX查询使用时收集的bug及异常处理小结
2010-07-21 21:32 9225由于要做多维报表的展现,需要使用OLAP的引擎Mon ... -
MDX动态参数的跳转_Jpivot的clickable标签的使用
2010-07-20 21:39 2942最近在学习使用MDX查询语言,对MDX的语法有 ... -
在电脑中添加一个Access数据源
2010-07-20 19:57 1782在运行Mondrian自带的Demo实例时,需要加载其自带的数 ...
相关推荐
15个经典的MDX查询15个经典的MDX查询
15个经典MDX查询,便于MDX学习,建议下载学习
15个很具代表性的MDX查询语句。15个很具代表性的MDX查询语句.docx
第1章 MDX入门 第2章 计算成员和命名集简介 第3章 MDX中的通用计算和选择 第4章 MDX查询上下文与执行 第5章 命名集与集的别名 第6章 MDX中的排序和分类 第7章 MDX高级应用 第8章 使用Microsoft Analysis ...
htmls2mdx >> 可以显示图片 >> 可以页面跳转 >> 可以处理中文 >> 提供源代码 >> 不提供维护,没时间 1. 使用CHM反编译工具把chm解包到某文件夹下,比如d:\Test\chm 2. 使用htmls2mdx,输入目录d:\Test\chm 3. htmls2...
mdx 资料mdx 资料mdx 资料 mdx 资料
第1章 MDX入门 第2章 计算成员和命名集简介 第3章 MDX中的通用计算和选择 第4章 MDX查询上下文与执行 第5章 命名集与集的别名 第6章 MDX中的排序和分类 第7章 MDX高级应用 第8章 使用Microsoft Analysis ...
MDX 中的重要概念 使用成员、元组和集 (MDX) MDX 语法元素 标识符 表达式 使用多维数据集表达式和子多维数据集表达式 使用维度表达式 使用成员表达式 使用元组表达式 使用集表达式 使用标量表达式 使用空值 运算符...
MDX61B中中文手册4rar,MDX61B中中文手册4
第1章 MDX入门 第2章 计算成员和命名集简介 第3章 MDX中的通用计算和选择 第4章 MDX查询上下文与执行 第5章 命名集与集的别名 第6章 MDX中的排序和分类 第7章 MDX高级应用 第8章 使用Microsoft Analysis ...
MDX解决方案 第二版 中文 找了好久才找到的,这本书已经是绝版书了,有兴趣的可以下载看看。仅供学习MDX的同学参考哦。
MDX解决方案 第二版 中文 2 资料仅供参考