saiku mongo connection using optiq

709 views
Skip to first unread message

Yogesh Jagtap

unread,
Apr 16, 2014, 2:58:40 PM4/16/14
to opti...@googlegroups.com
Hi,
I clone optiq from following link https://github.com/julianhyde/optiq.git and follow this command mvn install then it builds successfully all the packages and creates jar like  optiq-core-0.7-SNAPSHOT.jar , optiq-mongodb-0.7-SNAPSHOT.jar.
When I created saiku reports using optiq I copy all jar to saiku tomcat lib and saiku webapp WEB-INF/lib folder and my saiku configuration as below 
type=OLAP
name=optiqmongo
driver=mondrian.olap4j.MondrianOlap4jDriver
location=jdbc:mondrian:Jdbc=jdbc:optiq:model=file:/home/yogesh/optiq/mongodb/target/test-classes/mongo-zips-model.json;Catalog=res:optiqmongo/OptiqMongo.xml;JdbcDrivers=net.hydromatic.optiq.jdbc.Driver
 
then it shows me following error

name:optiqmongo
driver:mondrian.olap4j.MondrianOlap4jDriver
url:jdbc:mondrian:Jdbc=jdbc:optiq:model=file:/home/yogesh/optiq/mongodb/target/test-classes/mongo-zips-model.json;Catalog=res:optiqmongo/OptiqMongo.xml;JdbcDrivers=net.hydromatic.optiq.jdbc.Driver
00:23:44,435 WARN  [RolapUtil] Mondrian: Warning: JDBC driver net.hydromatic.optiq.jdbc.Driver not found
00:23:44,447 WARN  [RolapUtil] Mondrian: Warning: JDBC driver oracle.jdbc.OracleDriver not found
mondrian.olap.MondrianException: Mondrian Error:Internal error: loading schema from url res:optiqmongo/OptiqMongo.xml
at mondrian.resource.MondrianResource$_Def0.ex(MondrianResource.java:972)
at mondrian.olap.Util.newInternal(Util.java:2421)
at mondrian.olap.Util.newError(Util.java:2437)
at mondrian.rolap.RolapSchemaPool.getSchemaContent(RolapSchemaPool.java:286)
at mondrian.rolap.RolapSchemaPool.get(RolapSchemaPool.java:134)
at mondrian.rolap.RolapSchemaPool.get(RolapSchemaPool.java:66)
at mondrian.rolap.RolapConnection.<init>(RolapConnection.java:160)
at mondrian.rolap.RolapConnection.<init>(RolapConnection.java:90)
at mondrian.olap.DriverManager.getConnection(DriverManager.java:112)
at mondrian.olap.DriverManager.getConnection(DriverManager.java:68)
at mondrian.olap4j.MondrianOlap4jConnection.<init>(MondrianOlap4jConnection.java:140)
at mondrian.olap4j.FactoryJdbc4Plus$AbstractConnection.<init>(FactoryJdbc4Plus.java:323)
at mondrian.olap4j.FactoryJdbc41Impl$MondrianOlap4jConnectionJdbc41.<init>(FactoryJdbc41Impl.java:118)
at mondrian.olap4j.FactoryJdbc41Impl.newConnection(FactoryJdbc41Impl.java:32)
at mondrian.olap4j.MondrianOlap4jDriver.connect(MondrianOlap4jDriver.java:132)
at java.sql.DriverManager.getConnection(DriverManager.java:571)
at java.sql.DriverManager.getConnection(DriverManager.java:215)
at org.saiku.datasources.connection.SaikuOlapConnection.connect(SaikuOlapConnection.java:75)
at org.saiku.datasources.connection.SaikuOlapConnection.connect(SaikuOlapConnection.java:46)
at org.saiku.datasources.connection.SaikuConnectionFactory.getConnection(SaikuConnectionFactory.java:29)
at org.saiku.web.impl.SecurityAwareConnectionManager.connect(SecurityAwareConnectionManager.java:265)
at org.saiku.web.impl.SecurityAwareConnectionManager.getInternalConnection(SecurityAwareConnectionManager.java:80)
at org.saiku.datasources.connection.AbstractConnectionManager.getConnection(AbstractConnectionManager.java:93)
at org.saiku.datasources.connection.AbstractConnectionManager.getAllConnections(AbstractConnectionManager.java:119)
at org.saiku.web.impl.SecurityAwareConnectionManager.init(SecurityAwareConnectionManager.java:57)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:606)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.invokeCustomInitMethod(AbstractAutowireCapableBeanFactory.java:1536)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.invokeInitMethods(AbstractAutowireCapableBeanFactory.java:1477)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1409)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:519)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:456)
at org.springframework.beans.factory.support.AbstractBeanFactory$1.getObject(AbstractBeanFactory.java:291)
at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:222)
at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:288)
at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:190)
at org.springframework.beans.factory.support.DefaultListableBeanFactory.preInstantiateSingletons(DefaultListableBeanFactory.java:574)
at org.springframework.context.support.AbstractApplicationContext.finishBeanFactoryInitialization(AbstractApplicationContext.java:895)
at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:425)
at org.springframework.web.context.ContextLoader.createWebApplicationContext(ContextLoader.java:276)
at org.springframework.web.context.ContextLoader.initWebApplicationContext(ContextLoader.java:197)
at org.springframework.web.context.ContextLoaderListener.contextInitialized(ContextLoaderListener.java:47)
at org.apache.catalina.core.StandardContext.listenerStart(StandardContext.java:3972)
at org.apache.catalina.core.StandardContext.start(StandardContext.java:4467)
at org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase.java:791)
at org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:771)
at org.apache.catalina.core.StandardHost.addChild(StandardHost.java:526)
at org.apache.catalina.startup.HostConfig.deployDirectory(HostConfig.java:1041)
at org.apache.catalina.startup.HostConfig.deployDirectories(HostConfig.java:964)
at org.apache.catalina.startup.HostConfig.deployApps(HostConfig.java:502)
at org.apache.catalina.startup.HostConfig.start(HostConfig.java:1277)
at org.apache.catalina.startup.HostConfig.lifecycleEvent(HostConfig.java:321)
at org.apache.catalina.util.LifecycleSupport.fireLifecycleEvent(LifecycleSupport.java:119)
at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1053)
at org.apache.catalina.core.StandardHost.start(StandardHost.java:722)
at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1045)
at org.apache.catalina.core.StandardEngine.start(StandardEngine.java:443)
at org.apache.catalina.core.StandardService.start(StandardService.java:516)
at org.apache.catalina.core.StandardServer.start(StandardServer.java:710)
at org.apache.catalina.startup.Catalina.start(Catalina.java:593)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:606)
at org.apache.catalina.startup.Bootstrap.start(Bootstrap.java:289)
at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:414)
Caused by: org.apache.commons.vfs.FileSystemException: Badly formed URI "res:optiqmongo/OptiqMongo.xml".
at org.apache.commons.vfs.provider.res.ResourceFileProvider.findFile(ResourceFileProvider.java:72)
at org.apache.commons.vfs.impl.DefaultFileSystemManager.resolveFile(DefaultFileSystemManager.java:641)
at org.apache.commons.vfs.impl.DefaultFileSystemManager.resolveFile(DefaultFileSystemManager.java:602)
at org.apache.commons.vfs.impl.DefaultFileSystemManager.resolveFile(DefaultFileSystemManager.java:593)
at mondrian.olap.Util.readVirtualFile(Util.java:3343)
at mondrian.olap.Util.readVirtualFileAsString(Util.java:3388)
at mondrian.rolap.RolapSchemaPool.getSchemaContent(RolapSchemaPool.java:284)
... 64 more



Julian Hyde

unread,
Apr 16, 2014, 3:02:16 PM4/16/14
to opti...@googlegroups.com, t...@analytical-labs.com, Paul Stoellberger
Sounds like an Apache-VFS config problem, not Optiq directly. The Saiku guys would know (added to To:).

Julian

--
You received this message because you are subscribed to the Google Groups "optiq-dev" group.
To unsubscribe from this group and stop receiving emails from it, send an email to optiq-dev+...@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

Paul Stoellberger

unread,
Apr 16, 2014, 5:28:52 PM4/16/14
to opti...@googlegroups.com
I'm on this mailing list anyway ;-)

The VFS url res:optiqmongo/OptiqMongo.xml assumes that you have this file: webapps/saiku/WEB-INF/classes/optiqmongo/OptiqMongo.xml
res: points to web-inf/classes/ in this case, so just make sure that folder and file is there, or try without the optiqmongo folder.

You could also use the same kind of syntax like you use for the model.json .. using file: instead using an absolute path

-Paul

Yogesh Jagtap

unread,
Apr 19, 2014, 2:44:37 AM4/19/14
to opti...@googlegroups.com
Hi all,
I do all things from scratch, and my saiku config file as below

name:optiqmongo
driver:mondrian.olap4j.MondrianOlap4jDriver
url:jdbc:mondrian:Jdbc=jdbc:optiq:model=file:/home/yogesh/optiq/mongodb/target/test-classes/mongo-zips-model.json;Catalog=res:optiqmongo/OptiqMongo.xml;JdbcDrivers=net.hydromatic.optiq.impl.mongodb.MongoSchemaFactory;

I copied following lists of jar in tomcat/lib and saiku/WEB-INF/lib folder
optiq-core-0.7-SNAPSHOT.jar
optiq-core-0.7-SNAPSHOT-sources.jar
optiq-core-0.7-SNAPSHOT-tests.jar
optiq-core-0.7-SNAPSHOT-test-sources.jar
optiq-mongodb-0.7-SNAPSHOT.jar
optiq-mongodb-0.7-SNAPSHOT-sources.jar
optiq-mongodb-0.7-SNAPSHOT-tests.jar
optiq-mongodb-0.7-SNAPSHOT-test-sources.jar
optiq-spark-0.7-SNAPSHOT.jar
optiq-spark-0.7-SNAPSHOT-sources.jar
optiq-spark-0.7-SNAPSHOT-tests.jar
optiq-spark-0.7-SNAPSHOT-test-sources.jar
optiq-splunk-0.7-SNAPSHOT.jar
optiq-splunk-0.7-SNAPSHOT-sources.jar
optiq-splunk-0.7-SNAPSHOT-test-sources.jar

when I started saiku server it shows following error in catelina.out file
name:optiqmongo
driver:mondrian.olap4j.MondrianOlap4jDriver
url:jdbc:mondrian:Jdbc=jdbc:optiq:model=file:/home/yogesh/optiq/mongodb/target/test-classes/mongo-zips-model.json;Catalog=res:optiqmongo/OptiqMongo.xml;JdbcDrivers=net.hydromatic.optiq.impl.mongodb.MongoSchemaFactory;
23:33:24,872 WARN  [RolapUtil] Mondrian: Warning: JDBC driver oracle.jdbc.OracleDriver not found
mondrian.olap.MondrianException: Mondrian Error:Internal error: Error while creating SQL connection: Jdbc=jdbc:optiq:model=file:/home/yogesh/optiq/mongodb/target/test-classes/mongo-zips-model.json

    at mondrian.resource.MondrianResource$_Def0.ex(MondrianResource.java:972)
    at mondrian.olap.Util.newInternal(Util.java:2421)
    at mondrian.olap.Util.newError(Util.java:2437)
    at mondrian.rolap.RolapConnection.<init>(RolapConnection.java:246)
    at mondrian.rolap.RolapSchema.<init>(RolapSchema.java:187)
    at mondrian.rolap.RolapSchema.<init>(RolapSchema.java:215)
    at mondrian.rolap.RolapSchemaPool.get(RolapSchemaPool.java:214)
Caused by: java.sql.SQLException: No suitable driver found for jdbc:optiq:model=file:/home/yogesh/optiq/mongodb/target/test-classes/mongo-zips-model.json
    at java.sql.DriverManager.getConnection(DriverManager.java:596)
    at java.sql.DriverManager.getConnection(DriverManager.java:187)
    at org.apache.commons.dbcp.DriverManagerConnectionFactory.createConnection(DriverManagerConnectionFactory.java:68)
    at org.apache.commons.dbcp.PoolableConnectionFactory.makeObject(PoolableConnectionFactory.java:294)
    at org.apache.commons.pool.impl.GenericObjectPool.borrowObject(GenericObjectPool.java:974)
    at org.apache.commons.dbcp.PoolingDataSource.getConnection(PoolingDataSource.java:96)
    at mondrian.rolap.RolapConnection.<init>(RolapConnection.java:226)
    ... 66 more


and if I also changed following saiku config

INFO: Deploying web application directory saiku
name:optiqmongo
driver:mondrian.olap4j.MondrianOlap4jDriver
url:jdbc:mondrian:Jdbc=jdbc:optiq:model=file:/home/yogesh/optiq/mongodb/target/test-classes/mongo-zips-model.json;Catalog=res:optiqmongo/OptiqMongo.xml;JdbcDrivers=net.hydromatic.optiq.jdbc.Driver;

then it shows following error

INFO: Deploying web application directory saiku
name:optiqmongo
driver:mondrian.olap4j.MondrianOlap4jDriver
url:jdbc:mondrian:Jdbc=jdbc:optiq:model=file:/home/yogesh/optiq/mongodb/target/test-classes/mongo-zips-model.json;Catalog=res:optiqmongo/OptiqMongo.xml;JdbcDrivers=net.hydromatic.optiq.jdbc.Driver;
11:27:58,092 ERROR [ContextLoader] Context initialization failed
org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'connectionManager' defined in ServletContext resource [/WEB-INF/saiku-beans.xml]: Invocation of init method failed; nested exception is java.lang.NoClassDefFoundError: net/hydromatic/avatica/UnregisteredDriver
    at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1412)
Caused by: java.lang.NoClassDefFoundError: net/hydromatic/avatica/UnregisteredDriver
    at java.lang.ClassLoader.defineClass1(Native Method)
    at java.lang.ClassLoader.defineClass(ClassLoader.java:792)
    at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:142)
    at org.apache.catalina.loader.WebappClassLoader.findClassInternal(WebappClassLoader.java:2331)
    at org.apache.catalina.loader.WebappClassLoader.findClass(WebappClassLoader.java:976)
    at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1451)
    at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1329)
    at java.lang.Class.forName0(Native Method)
    at java.lang.Class.forName(Class.java:190)
    at mondrian.rolap.RolapUtil.loadDrivers(RolapUtil.java:389)
    at mondrian.rolap.RolapConnection.createDataSource(RolapConnection.java:362)
    at mondrian.rolap.RolapConnection.<init>(RolapConnection.java:134)
    ... 36 more
Caused by: java.lang.ClassNotFoundException: net.hydromatic.avatica.UnregisteredDriver
    at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1484)
    at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1329)
    ... 73 more

now it not shows any apache vfs error. So how can I resolve this error or here any problem in optiq driver at build time ?

 


Best Regards,

Yogesh Jagtap



Mob no : 8698002449





--
You received this message because you are subscribed to a topic in the Google Groups "optiq-dev" group.
To unsubscribe from this topic, visit https://groups.google.com/d/topic/optiq-dev/AWdejwLvqPA/unsubscribe.
To unsubscribe from this group and all its topics, send an email to optiq-dev+...@googlegroups.com.

Julian Hyde

unread,
Apr 19, 2014, 6:37:26 PM4/19/14
to opti...@googlegroups.com
On Apr 18, 2014, at 11:44 PM, Yogesh Jagtap <yogesh...@rahisystems.co.in> wrote:

Caused by: java.lang.NoClassDefFoundError: net/hydromatic/avatica/UnregisteredDriver

Add optiq-avatica-0.7-SNAPSHOT.jar to your saiku/WEB-INF/lib.

Julian

Yogesh Jagtap

unread,
Apr 22, 2014, 10:56:40 AM4/22/14
to opti...@googlegroups.com
Hi Julian , 
sorry for late reply I followed your above instructions and copied   optiq-avatica-0.7-SNAPSHOT.jar in saiku/WEB-INF/lib folder and restarted saiku but still it shows following error 

 name:optiqmongo
driver:mondrian.olap4j.MondrianOlap4jDriver
url:jdbc:mondrian:Jdbc=jdbc:optiq:model=file:/home/yogesh/optiq/mongodb/target/test-classes/mongo-zips-model.json;Catalog=res:optiqmongo/OptiqMongo.xml;JdbcDrivers=net.hydromatic.optiq.jdbc.Driver;
20:21:54,297 ERROR [ContextLoader] Context initialization failed
org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'connectionManager' defined in ServletContext resource [/WEB-INF/saiku-beans.xml]: Invocation of init method failed; nested exception is java.lang.NoClassDefFoundError: Could not initialize class net.hydromatic.optiq.jdbc.Driver
Caused by: java.lang.NoClassDefFoundError: Could not initialize class net.hydromatic.optiq.jdbc.Driver

Best Regards,

Yogesh Jagtap



Mob no : 8698002449





--

Julian Hyde

unread,
Apr 22, 2014, 1:15:51 PM4/22/14
to opti...@googlegroups.com
Now it looks as if you're missing optiq-core-0.7-SNAPSHOT.jar.


--
You received this message because you are subscribed to the Google Groups "optiq-dev" group.
To unsubscribe from this group and stop receiving emails from it, send an email to optiq-dev+...@googlegroups.com.

Yogesh Jagtap

unread,
Apr 22, 2014, 1:47:05 PM4/22/14
to opti...@googlegroups.com
Hi Julian ,

I already copied optiq-core-0.7-SNAPSHOT.jar in saiku/tomcat/lib and saiku/tomcat/webapps/saiku/WEB-INF/lib but still it shows above errors.
Reply all
Reply to author
Forward
0 new messages