Zebronix_777
Zebronix_777

Reputation: 355

Unable to connect and load data from Oracle, using Ignite V2.0

I am trying to configure and read data from existing Oracle tables However, I get error message while calling cache.loadCache(); this line.

It shows error message as Message as

session:javax.cache.integration.CacheWriterException: Failed to start store
session [tx=null]Caused by: java.sql.SQLException: No suitable driver found
for jdbc:oracle:thin:@192.168.2.218:1521:xe at
org.h2.jdbcx.JdbcDataSource.getJdbcConnection(JdbcDataSource.java:190)  at
org.h2.jdbcx.JdbcDataSource.getXAConnection(JdbcDataSource.java:351)    at
org.h2.jdbcx.JdbcDataSource.getPooledConnection(JdbcDataSource.java:383)    at
org.h2.jdbcx.JdbcConnectionPool.getConnectionNow(JdbcConnectionPool.java:226)
at
org.h2.jdbcx.JdbcConnectionPool.getConnection(JdbcConnectionPool.java:198)
at




CacheConfiguration<String, TempClass> cacheCfg = new CacheConfiguration<String, TempClass>();
            cacheCfg.setName("Test_CacheConfig");
            IgniteConfiguration igniteConfig = new IgniteConfiguration();
            Factory<TempClassCacheStore> factory = FactoryBuilder.factoryOf(TempClassCacheStore.class);

            cacheCfg.setReadThrough(true);
            cacheCfg.setWriteThrough(true);
            cacheCfg.setIndexedTypes(String.class, TempClass.class);
            cacheCfg.setCacheStoreFactory(factory);
            cacheCfg.setCacheStoreSessionListenerFactories(new Factory<CacheStoreSessionListener>() {
                @Override
                public CacheStoreSessionListener create() {
                    CacheJdbcStoreSessionListener lsnr = new CacheJdbcStoreSessionListener();
                    lsnr.setDataSource(JdbcConnectionPool.create("jdbc:oracle:thin:@192.168.2.218:1521:xe", "test", "test"));
                    return lsnr;
                }
            });
Ignite ignite = Ignition.start(igniteConfig);
            IgniteCache<String, TempClass> cache = ignite.getOrCreateCache(cacheCfg);
            cache.loadCache(null);
            SqlFieldsQuery sql = new SqlFieldsQuery("SELECT ID_, NAME_  FROM TEST_TABLE");

            QueryCursor<List<?>> cursor = cache.query(sql);

I have configured CacheStore for TempClass also as shown in https://apacheignite.readme.io/docs/persistent-store#cachestore Any help will be highly appreciated

Upvotes: 1

Views: 512

Answers (1)

Evgenii Zhuravlev
Evgenii Zhuravlev

Reputation: 3017

As you're trying to load data from oracle to Ignite, you need to have Oracle JDBC Driver in classpath. Just put the driver JAR into IGNITE_HOME/libs folder prior to starting the nodes and run loading again.

Upvotes: 2

Related Questions