Hi,

I am using Ignite 2.4 version. Please find attached the log files. Log file
agms-web is a client node log and agms-core is server node log.

Ignite configuration on client node is as follows. When I try to get the
cache contents on client node after data push operation, my request hangs
on ignite.cache(getCacheName()) code and throws following exception. But if
I fire the same request again, code  ignite.cache(getCacheName())  for
cache "IP_CONTAINER_IPV4_CACHE" returns null.  When I debugged on server
node, this cache is present and data is being pushed to this cache by
ignite runnable task.


Exception on first request :

2018-07-05 18:18:34,127 108076 [exchange-worker-#37%springDataNode%] ERROR
o.a.i.i.p.c.GridCachePartitionExchangeManager - Failed to process custom
exchange task: ClientCacheChangeDummyDiscoveryMessage
[reqId=23767a7f-3437-4d20-9993-36d5d88a8860, cachesToClose=null,
startCaches=[IP_CONTAINER_IPV4_CACHE]]
org.apache.ignite.IgniteException: Spring application context resource is
not injected.
 at
com.qualys.agms.grid.cache.loader.factory.CacheStoreSessionListenerFactory.create(CacheStoreSessionListenerFactory.java:30)
 at
com.qualys.agms.grid.cache.loader.factory.CacheStoreSessionListenerFactory.create(CacheStoreSessionListenerFactory.java:12)
 at
org.apache.ignite.internal.processors.cache.GridCacheUtils.startStoreSessionListeners(GridCacheUtils.java:1403)
 at
org.apache.ignite.internal.processors.cache.store.GridCacheStoreManagerAdapter.start0(GridCacheStoreManagerAdapter.java:241)
 at
org.apache.ignite.internal.processors.cache.store.CacheOsStoreManager.start0(CacheOsStoreManager.java:64)


@Configuration
@Profile({"prod", "default"})
public class IgniteAppConfig {

  @Value("${ignite.data_storage_path}")
  private String dataStoragePath;

  @Bean
  public IgniteSpringBean igniteInstance() {
    IgniteSpringBean ignite = new IgniteSpringBean();

    ignite.setConfiguration(getIgniteConfiguration(ignite));

    return ignite;
  }

  private IgniteConfiguration getIgniteConfiguration(IgniteSpringBean ignite) {

    String HOST = "127.0.0.1:47500..47509";
    TcpDiscoveryVmIpFinder ipFinder = new TcpDiscoveryVmIpFinder();
    ipFinder.setAddresses(Collections.singletonList(HOST));

    TcpDiscoverySpi discoSpi = new TcpDiscoverySpi();
    discoSpi.setIpFinder(ipFinder);

    IgniteConfiguration cfg = new IgniteConfiguration();
    cfg.setDiscoverySpi(discoSpi);
    cfg.setIgniteInstanceName("springDataNode");
    cfg.setPeerClassLoadingEnabled(false);
    cfg.setRebalanceThreadPoolSize(4);
    //cfg.setLifecycleBeans(new IgniteLifeCycleBean());
    cfg.setClientMode(true);

    return cfg;
  }

}



@Override
public FieldsQueryCursor<List<?>>
getFieldResultsByCriteria(Serializable customCriteria) {
  QueryCriteria criteria = (QueryCriteria) customCriteria;
  SqlFieldsQuery sqlFieldsQuery = new
SqlFieldsQuery(criteria.getStatement()).setArgs(criteria.getArgs());
  sqlFieldsQuery.setDistributedJoins(criteria.isDistributeJoins());
  return cache().query(sqlFieldsQuery);
}

protected abstract String getCacheName();

protected IgniteCache<K, T> cache() {
  return ignite.cache(getCacheName());
}


IP_CONTAINER_IPV4_CACHE

private CacheConfiguration ipContainerIPV4CacheCfg() {

  CacheConfiguration ipContainerIpV4CacheCfg = new
CacheConfiguration<>(CacheName.IP_CONTAINER_IPV4_CACHE.name());
  ipContainerIpV4CacheCfg.setAtomicityMode(CacheAtomicityMode.TRANSACTIONAL);
  ipContainerIpV4CacheCfg.setWriteThrough(true);
  ipContainerIpV4CacheCfg.setReadThrough(false);
  ipContainerIpV4CacheCfg.setRebalanceMode(CacheRebalanceMode.ASYNC);
  
ipContainerIpV4CacheCfg.setWriteSynchronizationMode(CacheWriteSynchronizationMode.FULL_SYNC);
  ipContainerIpV4CacheCfg.setBackups(1);
  //SpringCacheStoreFactory springCacheStoreFactory = new
SpringCacheStoreFactory(DefaultCacheLoader.class);
  Factory<IpContainerIpV4CacheLoader> storeFactory =
FactoryBuilder.factoryOf(IpContainerIpV4CacheLoader.class);
  ipContainerIpV4CacheCfg.setCacheStoreFactory(storeFactory);
  ipContainerIpV4CacheCfg.setIndexedTypes(DefaultDataAffinityKey.class,
IpContainerIpV4Data.class);
  
ipContainerIpV4CacheCfg.setCacheStoreSessionListenerFactories(cacheStoreSessionListenerFactory());

  RendezvousAffinityFunction affinityFunction = new
RendezvousAffinityFunction();
  affinityFunction.setExcludeNeighbors(true);
  ipContainerIpV4CacheCfg.setAffiy(affinityFunction);

  return ipContainerIpV4CacheCfg;
}

@Bean
public CacheStoreSessionListenerFactory cacheStoreSessionListenerFactory() {
  return new CacheStoreSessionListenerFactory(CacheStoreSessionListener.class);
}




Thanks
Prasad

On Thu, Jul 5, 2018 at 5:57 PM slava.koptilin <slava.kopti...@gmail.com>
wrote:

> Hello Prasad,
>
> I cannot reproduce the behavior that you described.
> Please share the code that the community can use in order to reproduce the
> issue.
> It would be nice to have log files from both nodes (client and server).
>
> One more thing. Could you please share the version of Apache Ignite that
> you
> are using?
>
> Thanks!
>
>
>
> --
> Sent from: http://apache-ignite-users.70518.x6.nabble.com/
>

Attachment: agm-web.log
Description: Binary data

Attachment: agm-core.log
Description: Binary data

Reply via email to