You are not logged in.
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.<init>(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
Hi swapnil,
we look into it and get back to you.
wbr jan
Offline
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
Dear Eduardo,
Ya it worked thanks
Offline
For completeness:
The correct URL for selecting the schema is:
jdbc:mondrian:Jdbc=jdbc:postgresql://IP:port/DBNAME?currentSchema="myschema"
Regards,
Eduardo
Offline