The usual method of setting remote filter in continuous queries is just like qry.setRemoteFilterFactory(new Factory<CacheEntryEventFilter<Integer, String>>() { @Override public CacheEntryEventFilter<Integer, String> create() { return new CacheEntryFilter(); } });
But I need send an additional parameter "name" to it, so I have to write a Factory class with a parameter to implements Factory<CacheEntryEventFilter<Integer, String>>, just like following: public class CacheEntryEventFilterFactory implements Factory<CacheEntryEventFilter<Integer, String>> { private String name; public CacheEntryEventFilterFactory() { } public CacheEntryEventFilterFactory(String name){ this.name=name; } /* * @see javax.cache.configuration.Factory#create() */ @Override public CacheEntryEventFilter<Integer, String> create() { // TODO Auto-generated method stub return new CacheEntryNewAlarmFilter(name); } @IgniteAsyncCallback private class CacheEntryNewAlarmFilter implements CacheEntryEventFilter<Integer, String> { private String name; public CacheEntryNewAlarmFilter(String name) { this.name = name; } /** {@inheritDoc} */ @Override public boolean evaluate(CacheEntryEvent<? extends Integer, ? extends String> e) throws CacheEntryListenerException { if (e.getValue().equals(name)){ System.out.println(">>>Remote Updated entry [key=" + e.getKey() + ", val=" + e.getValue() + "]" + "name = " + name); return true; } return false; } } } And I set remote filter as qry.setRemoteFilterFactory(new CacheEntryEventFilterFactory(name)); After my modification, when one client is doing continuous queries, another client can not join the cluster to do continuous queries. But when I use qry.setRemoteFilterFactory(new Factory<CacheEntryEventFilter<Integer, String>>() It can let more than one client to do continuous queries at the same time. -- View this message in context: http://apache-ignite-users.70518.x6.nabble.com/Cluster-can-not-let-more-than-one-client-to-do-continuous-queries-tp9124.html Sent from the Apache Ignite Users mailing list archive at Nabble.com.