AnsweredAssumed Answered

Mondrian /Olap4j with MongoDB

Question asked by B411O6VW on Oct 5, 2018

hi, I have to integrate pentaho 8.1 GA with MongoDB through Mondrian 4 to be able to use Analysis Report. I followed the official Pentaho documentation for version 5.1 (Make MongoDB Work with Analyzer), is missing for Pentaho 8.1:

https://help.pentaho.com/Documentation/5.1/0N0/0S0/010

I have configured the olap4j.properties file as follows:

 

mongoDB6.name=mongoDB6

mongoDB6.className=org.pentaho.platform.plugin.services.connections.PentahoSystemDriver

mongoDB6.connectString=jdbc:mondrian4:Host=<host>;dbname=DB{name='<db name>'};DataServicesProvider=com.pentaho.analysis.mongo.MongoDataServicesProvider;Catalog=C:/app/Pentaho/server/pentaho-server/pentaho-solutions/system/mongoDB6.xml;

 

but I always get the following error:

 

org.pentaho.platform.plugin.action.olap.IOlapServiceException: java.sql.SQLException: No suitable driver found for jdbc:mondrian4:Host=escher; dbname=DB{name='dwh'}; DataServicesProvider=com.pentaho.analysis.mongo.MongoDataServicesProvider; Catalog=C:/app/Pentaho/server/pentaho-server/pentaho-solutions/system/mongoDB6.xml

at org.pentaho.platform.plugin.action.olap.impl.OlapServiceImpl.makeOlap4jConnection(OlapServiceImpl.java:815)

at org.pentaho.platform.plugin.action.olap.impl.OlapServiceImpl.getConnection(OlapServiceImpl.java:699)

at org.pentaho.platform.plugin.action.mondrian.mapper.MondrianAbstractPlatformUserRoleMapper.getMondrianRolesFromCatalog(MondrianAbstractPlatformUserRoleMapper.java:124)

at org.pentaho.platform.plugin.action.mondrian.mapper.MondrianAbstractPlatformUserRoleMapper.mapConnectionRoles(MondrianAbstractPlatformUserRoleMapper.java:188)

at org.pentaho.platform.plugin.services.connections.mondrian.MDXConnection.mapPlatformRolesToMondrianRolesHelper(MDXConnection.java:200)

at org.pentaho.platform.plugin.services.connections.mondrian.MDXOlap4jConnection.connect(MDXOlap4jConnection.java:96)

at org.pentaho.platform.plugin.services.connections.mondrian.MDXOlap4jConnection.setProperties(MDXOlap4jConnection.java:236)

at org.pentaho.platform.engine.services.connection.PentahoConnectionFactory.getConnection(PentahoConnectionFactory.java:126)

at com.pentaho.analyzer.service.impl.OlapConnectionManagerImpl.createConnection(SourceFile:148)

at com.pentaho.analyzer.service.impl.OlapConnectionManagerImpl.createConnection(SourceFile:75)

[...]

Caused by: java.sql.SQLException: No suitable driver found for jdbc:mondrian4:Host=escher; dbname=DB{name='dwh'}; DataServicesProvider=com.pentaho.analysis.mongo.MongoDataServicesProvider; Catalog=C:/app/Pentaho/server/pentaho-server/pentaho-solutions/system/mongoDB6.xml

at java.sql.DriverManager.getConnection(DriverManager.java:689)

at java.sql.DriverManager.getConnection(DriverManager.java:208)

at org.pentaho.platform.plugin.action.olap.impl.OlapServiceImpl.makeOlap4jConnection(OlapServiceImpl.java:811)

 

do you have any suggestions?

thank you

Luca

org.pentaho.platform.plugin.action.olap.IOlapServiceException: java.sql.SQLException: No suitable driver found for jdbc:mondrian4:Host=escher; dbname=DB{name='dwh'}; DataServicesProvider=com.pentaho.analysis.mongo.MongoDataServicesProvider; Catalog=C:/app/Pentaho/server/pentaho-server/pentaho-solutions/system/mongoDB6.xml at org.pentaho.platform.plugin.action.olap.impl.OlapServiceImpl.makeOlap4jConnection(OlapServiceImpl.java:815) at org.pentaho.platform.plugin.action.olap.impl.OlapServiceImpl.getConnection(OlapServiceImpl.java:699) at org.pentaho.platform.plugin.action.mondrian.mapper.MondrianAbstractPlatformUserRoleMapper.getMondrianRolesFromCatalog(MondrianAbstractPlatformUserRoleMapper.java:124) at org.pentaho.platform.plugin.action.mondrian.mapper.MondrianAbstractPlatformUserRoleMapper.mapConnectionRoles(MondrianAbstractPlatformUserRoleMapper.java:188) at org.pentaho.platform.plugin.services.connections.mondrian.MDXConnection.mapPlatformRolesToMondrianRolesHelper(MDXConnection.java:200) at org.pentaho.platform.plugin.services.connections.mondrian.MDXOlap4jConnection.connect(MDXOlap4jConnection.java:96) at org.pentaho.platform.plugin.services.connections.mondrian.MDXOlap4jConnection.setProperties(MDXOlap4jConnection.java:236) at org.pentaho.platform.engine.services.connection.PentahoConnectionFactory.getConnection(PentahoConnectionFactory.java:126) at com.pentaho.analyzer.service.impl.OlapConnectionManagerImpl.createConnection(SourceFile:148) at com.pentaho.analyzer.service.impl.OlapConnectionManagerImpl.createConnection(SourceFile:75) at com.pentaho.analyzer.service.impl.a.getConnection(SourceFile:55) at com.pentaho.analyzer.service.impl.OlapMetaDataManager.getConnection(SourceFile:67) at com.pentaho.analyzer.service.impl.AnalysisAreaManager.createOlapConnection(SourceFile:116) at com.pentaho.analyzer.content.controller.p.a(SourceFile:165) at com.pentaho.analyzer.content.AnalyzerContentGenerator.createContent(SourceFile:152) at org.pentaho.platform.web.http.api.resources.GeneratorStreamingOutput.generateContent(GeneratorStreamingOutput.java:240) at org.pentaho.platform.web.http.api.resources.GeneratorStreamingOutput.write(GeneratorStreamingOutput.java:165) at org.pentaho.platform.web.http.api.resources.GeneratorStreamingOutputProvider.writeTo(GeneratorStreamingOutputProvider.java:57) at org.pentaho.platform.web.http.api.resources.GeneratorStreamingOutputProvider.writeTo(GeneratorStreamingOutputProvider.java:36) at com.sun.jersey.spi.container.ContainerResponse.write(ContainerResponse.java:302) at com.sun.jersey.server.impl.application.WebApplicationImpl._handleRequest(WebApplicationImpl.java:1510) at com.sun.jersey.server.impl.application.WebApplicationImpl.handleRequest(WebApplicationImpl.java:1419) at com.sun.jersey.server.impl.application.WebApplicationImpl.handleRequest(WebApplicationImpl.java:1409) at org.pentaho.platform.web.servlet.JAXRSServlet$InternalWebComponent.service(JAXRSServlet.java:288) at com.sun.jersey.spi.container.servlet.ServletContainer.service(ServletContainer.java:558) at com.sun.jersey.spi.container.servlet.ServletContainer.service(ServletContainer.java:733) at org.pentaho.platform.web.servlet.JAXRSServlet.service(JAXRSServlet.java:139) at javax.servlet.http.HttpServlet.service(HttpServlet.java:742) at org.pentaho.platform.web.servlet.JAXRSServlet.service(JAXRSServlet.java:144) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:231) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166) at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166) at org.pentaho.platform.web.http.filters.PentahoWebContextFilter.doFilter(PentahoWebContextFilter.java:235) at com.pentaho.platform.web.http.filters.PentahoEnterpriseWebContextFilter.doFilter(SourceFile:86) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166) at org.pentaho.platform.web.http.filters.PentahoRequestContextFilter.doFilter(PentahoRequestContextFilter.java:90) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166) at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:317) at org.pentaho.platform.web.http.filters.PreFlightReportingFilter.doFilter(PreFlightReportingFilter.java:50) at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:331) at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.invoke(FilterSecurityInterceptor.java:127) at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.doFilter(FilterSecurityInterceptor.java:91) at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:331) at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:115) at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:331) at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:137) at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:331) at org.springframework.security.web.authentication.AnonymousAuthenticationFilter.doFilter(AnonymousAuthenticationFilter.java:111) at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:331) at org.pentaho.platform.web.http.security.RequestParameterAuthenticationFilter.doFilter(RequestParameterAuthenticationFilter.java:194) at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:331) at org.springframework.security.web.authentication.www.BasicAuthenticationFilter.doFilterInternal(BasicAuthenticationFilter.java:158) at org.pentaho.platform.web.http.security.PentahoBasicProcessingFilter.doFilterInternal(PentahoBasicProcessingFilter.java:128) at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107) at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:331) at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:105) at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:331) at org.pentaho.platform.web.http.filters.HttpSessionPentahoSessionIntegrationFilter.doFilter(HttpSessionPentahoSessionIntegrationFilter.java:276) at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:331) at org.springframework.security.web.servletapi.SecurityContextHolderAwareRequestFilter.doFilter(SecurityContextHolderAwareRequestFilter.java:169) at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:331) at org.springframework.security.web.FilterChainProxy.doFilterInternal(FilterChainProxy.java:214) at org.springframework.security.web.FilterChainProxy.doFilter(FilterChainProxy.java:177) at org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:346) at org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:262) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166) at com.pentaho.ui.servlet.SystemStatusFilter.doFilter(SourceFile:87) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166) at org.pentaho.platform.web.http.filters.SetCharacterEncodingFilter.doFilter(SetCharacterEncodingFilter.java:117) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166) at org.pentaho.platform.web.http.filters.WebappRootForwardingFilter.doFilter(WebappRootForwardingFilter.java:73) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166) at org.pentaho.platform.web.http.filters.PentahoPathDecodingFilter.doFilter(PentahoPathDecodingFilter.java:54) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166) at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:199) at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:96) at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:504) at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:140) at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:81) at org.apache.catalina.valves.AbstractAccessLogValve.invoke(AbstractAccessLogValve.java:650) at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:87) at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:342) at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:803) at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:66) at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:790) at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1459) at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:49) at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149) at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624) at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61) at java.lang.Thread.run(Thread.java:748)Caused by: java.sql.SQLException: No suitable driver found for jdbc:mondrian4:Host=escher; dbname=DB{name='dwh'}; DataServicesProvider=com.pentaho.analysis.mongo.MongoDataServicesProvider; Catalog=C:/app/Pentaho/server/pentaho-server/pentaho-solutions/system/mongoDB6.xml at java.sql.DriverManager.getConnection(DriverManager.java:689) at java.sql.DriverManager.getConnection(DriverManager.java:208) at org.pentaho.platform.plugin.action.olap.impl.OlapServiceImpl.makeOlap4jConnection(OlapServiceImpl.java:811)

Outcomes