2017-05-26 31 views
1

我试图从现有的Oracle表中配置和读取数据 但是,在调用cache.loadCache();此行时收到错误消息。无法使用Ignite V2.0连接并从Oracle加载数据

它显示错误消息 消息

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); 

如图 https://apacheignite.readme.io/docs/persistent-store#cachestore 任何帮助将高度赞赏

回答

2

当你试图加载数据我已经配置CacheStoreTempClass也从oracle到Ignite,您需要在classpath中具有Oracle JDBC Driver。只需将驱动程序JAR放入IGNITE_HOME/libs文件夹,然后再启动节点并再次加载。

+0

感谢@Evgenii它的一种混乱我开始从java程序本身点燃服务器,我认为它与我已经存储在本地计算机上的点燃二进制文件无关,我甚至没有设置我的点火回家。 所以我很困惑它如何访问存储在我的本地计算机上的点燃实例?是的,我的项目班级路径中已经有了oracle jar。 –

+0

我不理解你,你在哪里以及如何开始点燃服务器?服务器的类路径中有库吗? –

+0

我在我的java项目的maven配置中显示了ingine库,如下所示。 https://apacheignite.readme.io/docs/getting-started#get-it-with-maven并使用上面的代码,我开始点燃实例。我没有任何其他节点在我的电脑上运行或设置。即我不使用/ignite.bat文件启动服务器。 –

相关问题