2017-05-26 20 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文件啓動服務器。 –

相關問題