Confirmed "Compact footer" setting fixed the problem. Thanks a lot. -MJ
---Original--- From: "Alex Plehanov"<plehanov.a...@gmail.com> Date: Mon, Oct 18, 2021 21:34 PM To: "user"<user@ignite.apache.org>; Subject: Re: Problem with Cache KV Remote Query Hello, How was the entry inserted to the cache? You are trying to get this entry via thin client, if the entry was inserted via thick-client (Ignite node) you can face such a problem. Ignite thin-client and Ignite nodes have different default "Compact footer" property values, so POJO keys are marshalled in different ways and treated as different keys for thin-clients and Ignite nodes. Try to change "Compact footer" property for thin-client configuration: ClientConfiguration cfg = new ClientConfiguration().setBinaryConfiguration(new BinaryConfiguration().setCompactFooter(true)).setAddresses("127.0.0.1:10800"); пн, 18 окт. 2021 г. в 15:02, MJ <6733...@qq.com>: Hi, I experienced below problem when testing the “Affinity Colocation” functionality. The code is from https://ignite.apache.org/docs/latest/data-modeling/affinity-collocation#configuring-affinity-key . When I run the code in single jvm, it works perfect and successfully retrieved the cached object (personCache.get(new PersonKey(1, "company1"))) . But when I try to run the client code in another new JVM(meanwhile leave the server node run in local), something goes wrong (see below). Please can anyone elaborate why the first test case succeeded but the second one failed ? Logger log = LoggerFactory.getLogger(getClass()); //success @Test public void test_iterate() throws ClientException, Exception { ClientConfiguration cfg = new ClientConfiguration().setAddresses("127.0.0.1:10800"); try (IgniteClient client = Ignition.startClient(cfg)) { ClientCache<PersonKey, Person> cache = client.cache("persons"); try (QueryCursor<Cache.Entry<PersonKey, Person>> qryCursor = cache.query(new ScanQuery<>(null))) { qryCursor.forEach(entry -> System.out.println("Key = " + entry.getKey() + ", Value = " + entry.getValue())); } } } //fail @Test public void test_query() throws ClientException, Exception { ClientConfiguration cfg = new ClientConfiguration().setAddresses("127.0.0.1:10800"); try (IgniteClient client = Ignition.startClient(cfg)) { ClientCache<PersonKey, Person> cache = client.cache("persons"); Person row = cache.get(new PersonKey(1, "company1")); Assert.assertNotNull(row); // no data returned log.info("{}", row); } } Thanks, -MJ