#1 2018-01-17 11:45:44

swapnil.solanki
Member
Registered: 2018-01-17
Posts: 4

Saiku report error while creating using Mondrian datasource

Hello,

I am dealing with a Postgresql database to create a new Mondrian DataSource. A relational  DataSource works fine adding to the Report Server lib path the Postgresql jdbc client JAR file and configuring database URL, user and password, I am able to create BIRT reports based on this relational DataSources. The problem comes when i try to create a new Mondrian Datasource based on a Star Schema Postgresql Database on the same Postgresql server as Relational one. I have created the OLAP schema with Pentaho Schema Workbench, i am able to navigate with the tool thorugh the Star Schema Database with the jdbc connection. I created the Mondrian Datasource with the following configuration:

            Name: Mondrian
            Username: tad Password: password (the same credentials that i use for relational database conection since both databases are in the same instance)

            URL: jdbc:postgresql://ip:port/database_name(I cant share ip and database name as per policy )
            Properties:

              type=OLAP
              name=Mondrian
              driver=mondrian.olap4j.MondrianOlap4jDriver
              jdbcDrivers=org.postgresql.Driver

             Schema: (Schema generated with Pentaho Schema Workbench)

When I click on apply i am not getting any Error (there is no test connection so i guess there is no reason why i should get any error) , but once i tried to create a new Saiku report using this Datasource, i get the following login failed error:
The server requested password-based authentication, but no password was provided.

net.datenwerke.gxtdto.client.servercommunication.exceptions.ServerCallFailedException: The server requested password-based authentication, but no password was provided.<br>    at net.datenwerke.rs.saiku.server.rest.SaikuRpcServiceImpl.loadCubesFor(SaikuRpcServiceImpl.java:103)<br>    at net.datenwerke.security.service.security.aop.SecurityCheckInterceptor.invoke(SecurityCheckInterceptor.java:109)<br>    at net.datenwerke.gf.service.gwtstacktrace.CatchStacktraceInterceptor.invoke(CatchStacktraceInterceptor.java:38)<br>    at sun.reflect.GeneratedMethodAccessor139.invoke(Unknown Source)<br>    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)<br>    at java.lang.reflect.Method.invoke(Method.java:498)<br>    at com.google.gwt.user.server.rpc.RPC.invokeAndEncodeResponse(RPC.java:587)<br>    at com.google.gwt.user.server.rpc.RemoteServiceServlet.processCall(RemoteServiceServlet.java:333)<br>    at net.datenwerke.security.service.security.aop.SecurityCheckInterceptor.invoke(SecurityCheckInterceptor.java:109)<br>    at net.datenwerke.gf.service.gwtstacktrace.CatchStacktraceInterceptor.invoke(CatchStacktraceInterceptor.java:38)<br>    at com.google.gwt.user.server.rpc.RemoteServiceServlet.processCall(RemoteServiceServlet.java:303)<br>    at net.datenwerke.security.service.security.aop.SecurityCheckInterceptor.invoke(SecurityCheckInterceptor.java:109)<br>    at net.datenwerke.gf.service.gwtstacktrace.CatchStacktraceInterceptor.invoke(CatchStacktraceInterceptor.java:38)<br>    at com.google.gwt.user.server.rpc.RemoteServiceServlet.processPost(RemoteServiceServlet.java:373)<br>    at com.google.gwt.user.server.rpc.AbstractRemoteServiceServlet.doPost(AbstractRemoteServiceServlet.java:62)<br>    at javax.servlet.http.HttpServlet.service(HttpServlet.java:650)<br>    at javax.servlet.http.HttpServlet.service(HttpServlet.java:731)<br>    at net.datenwerke.security.service.security.aop.SecurityCheckInterceptor.invoke(SecurityCheckInterceptor.java:109)<br>    at net.datenwerke.gf.service.gwtstacktrace.CatchStacktraceInterceptor.invoke(CatchStacktraceInterceptor.java:38)<br>    at com.google.inject.servlet.ServletDefinition.doService(ServletDefinition.java:263)<br>    at com.google.inject.servlet.ServletDefinition.service(ServletDefinition.java:178)<br>    at com.google.inject.servlet.ManagedServletPipeline.service(ManagedServletPipeline.java:91)<br>    at com.google.inject.servlet.FilterChainInvocation.doFilter(FilterChainInvocation.java:62)<br>    at com.google.inject.persist.PersistFilter.doFilter(PersistFilter.java:89)<br>    at com.google.inject.servlet.FilterDefinition.doFilter(FilterDefinition.java:163)<br>    at com.google.inject.servlet.FilterChainInvocation.doFilter(FilterChainInvocation.java:58)<br>    at com.google.inject.servlet.FilterDefinition.doFilter(FilterDefinition.java:168)<br>    at com.google.inject.servlet.FilterChainInvocation.doFilter(FilterChainInvocation.java:58)<br>    at com.google.inject.servlet.FilterDefinition.doFilter(FilterDefinition.java:168)<br>    at com.google.inject.servlet.FilterChainInvocation.doFilter(FilterChainInvocation.java:58)<br>    at com.google.inject.servlet.ManagedFilterPipeline.dispatch(ManagedFilterPipeline.java:118)<br>    at com.google.inject.servlet.GuiceFilter.doFilter(GuiceFilter.java:113)<br>    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:241)<br>    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208)<br>    at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:221)<br>    at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:122)<br>    at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:505)<br>    at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:169)<br>    at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:103)<br>    at org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:956)<br>    at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:116)<br>    at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:436)<br>    at org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:1078)<br>    at org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:625)<br>    at org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEndpoint.java:318)<br>    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)<br>    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)<br>    at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)<br>    at java.lang.Thread.run(Thread.java:748)<br>Caused by: org.postgresql.util.PSQLException: The server requested password-based authentication, but no password was provided.<br>    at org.postgresql.core.v3.ConnectionFactoryImpl.doAuthentication(ConnectionFactoryImpl.java:484)<br>    at org.postgresql.core.v3.ConnectionFactoryImpl.openConnectionImpl(ConnectionFactoryImpl.java:208)<br>    at org.postgresql.core.ConnectionFactory.openConnection(ConnectionFactory.java:66)<br>    at org.postgresql.jdbc.PgConnection.&lt;init&gt;(PgConnection.java:215)<br>    at org.postgresql.Driver.makeConnection(Driver.java:406)<br>    at org.postgresql.Driver.connect(Driver.java:274)<br>    at java.sql.DriverManager.getConnection(DriverManager.java:664)<br>    at java.sql.DriverManager.getConnection(DriverManager.java:208)<br>    at net.datenwerke.rs.saiku.service.saiku.OlapUtilServiceImpl.getOlapConnection(OlapUtilServiceImpl.java:187)<br>    at net.datenwerke.rs.saiku.service.saiku.OlapUtilServiceImpl.getCubes(OlapUtilServiceImpl.java:104)<br>    at net.datenwerke.rs.saiku.server.rest.SaikuRpcServiceImpl.loadCubesFor(SaikuRpcServiceImpl.java:100)<br>    ... 48 more<br>

Offline

#2 2018-01-18 08:21:12

jalbrecht
Administrator
Registered: 2016-10-21
Posts: 123

Re: Saiku report error while creating using Mondrian datasource

Hi swapnil,

we look into it and get back to you.

wbr jan

Offline

#3 2018-01-23 10:28:53

eduardo
Administrator
Registered: 2016-11-01
Posts: 719

Re: Saiku report error while creating using Mondrian datasource

Hi swapnil.solanki,

could you please try with this url:

jdbc:mondrian:Jdbc=jdbc:postgresql://IP:port/DBNAME

Mondrian datasources have a "jdbc:mondrian:Jdbc=" prefix, after which the "normal" jdbc-URL is written. Please note that JDBC properties are written also with a prefix:

Example property: jdbc.databaseName=yourDB instead of the "normal" databaseName=yourDB property. This property is just an example, with PostgreSQL you write the DBName in the URL, so for your case:

jdbc:mondrian:Jdbc=jdbc:postgresql://IP:port/DBNAME

Please let us know if this works for you.

Regards,

Eduardo

Offline

#4 2018-01-25 08:18:40

swapnil.solanki
Member
Registered: 2018-01-17
Posts: 4

Re: Saiku report error while creating using Mondrian datasource

Dear Eduardo,

Ya it worked thanks

Offline

#5 2018-01-25 08:46:42

eduardo
Administrator
Registered: 2016-11-01
Posts: 719

Re: Saiku report error while creating using Mondrian datasource

For completeness:

The correct URL for selecting the schema is:
jdbc:mondrian:Jdbc=jdbc:postgresql://IP:port/DBNAME?currentSchema="myschema"

Regards,
Eduardo

Offline

Board footer

Powered by FluxBB