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
>
>

Reply via email to