Hi!

Try commenting out this line: configuration.setWriteBehindEnabled(true);
Write behind mode makes a cache wait for a moment, when there is enough
updates to write them in a batch. Disabling this mode should help.

Denis

вт, 26 сент. 2017 г. в 16:09, elopez779 <[email protected]>:

> Hello, Although I've read many topics on this subject, I haven't found a
> solution to my problem. First of all, I'm a beginner with Ignite and I'm a
> just arrived to my project. I need to use Ignite as a memory cache for
> Cassandra and I have tried an example applicaction to prove it.
>
> We cannot use Spring config files so, I have to configure Ignite
> programmatically. The example I've tried is closely related with the
> example
> explained by Riccardo Iacomini in
>
>
> https://medium.com/@iacomini.riccardo/how-to-use-apache-ignite-as-cassandra-cache-layer-e24659e31243
>
> I think the persistence XML file is standard and there is nothing wrong in
> it:
>
> <persistence keyspace="pruebasenrique" table="tablaprueba">
>     <keyspaceOptions>
>         REPLICATION = {'class' : 'SimpleStrategy', 'replication_factor' :
> 1}
>         AND DURABLE_WRITES = true
>     </keyspaceOptions>
>     <tableOption>
>         comment = 'Cache test'
>         AND read_repair_chance = 0.2
>     </tableOption>
>     <keyPersistence class="java.lang.String" strategy="PRIMITIVE"
> column="key" />
>     <valuePersistence class="com.ejemploIgnite.EjemploIgnite.ClaseLectura"
> strategy="POJO" />
> </persistence>
>
>
> And finally the code. Practically all the code is inserted in a class
> because this wanted to be a quick test:
>
> ---------------------------------------------------------------------------
>
> IgniteConfiguration cfg = new IgniteConfiguration();
> CacheConfiguration configuration = new CacheConfiguration();
> configuration.setName("cache-prueba");
>
> // Access to Cassandra through SSL
> String truststorePath = "C:\\certificates\\cassandra.keystore";
> String truststorePassword = "XXXXXXXX";
> String keystorePath = "C:\\certificates\\cliente-cert.p12";
> String keystorePassword = "XXXXXXX";
>
> SSLContext context = getSSLContext(truststorePath, truststorePassword,
> keystorePath, keystorePassword);
> String [] cipherSuites =
>
> {"TLS_RSA_WITH_AES_128_CBC_SHA","TLS_DHE_RSA_WITH_AES_128_CBC_SHA","TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA"};
>
> DataSource dataSource = new DataSource();
> dataSource.setContactPoints("192.168.4.167");
> dataSource.setPort(9042);
>
> SSLOptions sslOptions = new SSLOptions(context, cipherSuites);
> dataSource.setSslOptions(sslOptions);
> dataSource.setUseSSL(true);
>
> RoundRobinPolicy robinPolicy = new RoundRobinPolicy();
> dataSource.setLoadBalancingPolicy(robinPolicy);
> dataSource.setReadConsistency("ONE");
> dataSource.setWriteConsistency("ONE");
>
> String persistenceSettingsXml = FileUtils.readFileToString(new
> File("C:\\01\\cache-prueba.xml"), "utf-8");
> KeyValuePersistenceSettings persistenceSettings = new
> KeyValuePersistenceSettings(persistenceSettingsXml);
> CassandraCacheStoreFactory cacheStoreFactory = new
> CassandraCacheStoreFactory();
> cacheStoreFactory.setDataSource(dataSource);
> cacheStoreFactory.setPersistenceSettings(persistenceSettings);
> configuration.setCacheStoreFactory(cacheStoreFactory);
> configuration.setWriteThrough(true);
> configuration.setWriteBehindEnabled(true);
> configuration.setReadThrough(true);
>
> //  Sets the cache configuration
> cfg.setCacheConfiguration(configuration);
>
> //  Starting Ignite
> Ignition.setClientMode(true);
> Ignite ignite = Ignition.start(cfg);
>
> final IgniteCache<String, ClaseLectura> cache =
> ignite.getOrCreateCache("cache-prueba");
>
> for (int i = 0; i < 50; i++)
> {
>     cache.put(String.valueOf(i), new ClaseLectura("AAA", 10));
> }
>
> ---------------------------------------------------------------------------
>
> ClaseLectura is as follows:
>
> public class ClaseLectura implements Serializable {
>         private String value1;
>         private int value2;
>
>         public ClaseLectura() {
>                 super();
>         }
>
>         public ClaseLectura(String v1, int v2) {
>                 this.value1 = v1;
>                 this.value2 = v2;
>         }
>
>         public String getValue1() { return value1; }
>         public int getValue2() { return value2; }
>
>         public void setValue1(String v1) { value1 = v1; }
>         public void setValue2(int v2) { value2 = v2; }
>
>         public String toString() {
>                 return value1 + " ; " + String.valueOf(value2);
>         }
> }
>
> cache-prueba.xml (the persistence description) is read correctly as I can
> see while debugging.
>
> I start an Ignite server (ignite.bat) and I start the application (which
> starts Ignite client) and everything seems OK. The for loop is executed
> correctly but I don't see any result in the cassandra table. The SSL
> connection is Ok because I've tried it with another app connecting directly
> to Cassandra. I've read many many topics but I don't find where is my error
> (As said before, I'm a beginner). Sorry for my really long mail and for my
> broken english. Please, any kind of help will be really appreciated.
> Thanks.
>
>
>
> --
> Sent from: http://apache-ignite-users.70518.x6.nabble.com/
>

Reply via email to