ignite-user mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Tathagata Roy <Tathagata....@RaymondJames.com>
Subject Hibernate 2nd Level query cache with Ignite
Date Wed, 26 Aug 2020 21:26:01 GMT
Hi,

I am trying to do a POC on hibernate 2nd level cache with Apache Ignite. With this configuration
I was able to make it work

spring.jpa.properties.hibernate.cache.use_second_level_cache=true
spring.jpa.properties.hibernate.cache.use_query_cache=true
spring.jpa.properties.hibernate.generate_statistics=false
spring.jpa.properties.hibernate.cache.region.factory_class=org.apache.ignite.cache.hibernate.HibernateRegionFactory
spring.jpa.properties.org.apache.ignite.hibernate.default_access_type=READ_ONLY



<dependency>
     <groupId>org.gridgain</groupId>
     <artifactId>ignite-hibernate_5.3</artifactId>
     <version>8.7.23</version>
     <exclusions>
         <exclusion>
             <groupId>org.hibernate</groupId>
             <artifactId>hibernate-core</artifactId>
         </exclusion>
     </exclusions>
 </dependency>



@Bean
@ConditionalOnMissingBean
public IgniteConfiguration igniteConfiguration(DiscoverySpi discoverySpi, CommunicationSpi
communicationSpi) {
    IgniteConfiguration igniteConfiguration = new IgniteConfiguration();
    igniteConfiguration.setClientMode(clientMode);
    igniteConfiguration.setMetricsLogFrequency(0);

    igniteConfiguration.setGridLogger(new Slf4jLogger());

    igniteConfiguration.setDiscoverySpi(discoverySpi);
    igniteConfiguration.setCommunicationSpi(communicationSpi);
    igniteConfiguration.setFailureDetectionTimeout(failureDetectionTimeout);

    CacheConfiguration<String, ?> cc = new CacheConfiguration<>();
    cc.setName("Entity1");
    cc.setCacheMode(CacheMode.REPLICATED);



    CacheConfiguration<String, ?> cc1 = new CacheConfiguration<>();
    cc1.setName("default-query-results-region");
    cc1.setCacheMode(CacheMode.REPLICATED);



    CacheConfiguration<String, ?> cc2 = new CacheConfiguration<>();
    cc2.setName("default-update-timestamps-region");
    cc2.setCacheMode(CacheMode.REPLICATED);

    igniteConfiguration.setCacheConfiguration(cc);



    return igniteConfiguration;
}




I am testing this with external ignite node, but if the external ig node is restarted , I
see the error when trying to access Entity1

"errorMessage": "class org.apache.ignite.internal.processors.cache.CacheStoppedException:
Failed to perform cache operation (cache is stopped): Entity1; nested exception is java.lang.IllegalStateException:
class org.apache.ignite.internal.processors.cache.CacheStoppedException: Failed to perform
cache operation (cache is stopped): Entity1",

It looks like the issue is as reported here ,

https://stackoverflow.com/questions/46053089/ignite-cache-reconnection-issue-cache-is-stopped
https://issues.apache.org/jira/browse/IGNITE-5789


Are there any other way without restaring the client application we can make it work?

Mime
View raw message