Hello,

I have a strange problem for which I can't find the reason.

I made a cache (key/value cache) with a custom key type that is called 
"IgniteBinaryData".

I have a C++ thin client that calls the server and execute a Java 
ComputeTaskAdapter<CustomType1,CustomType2> that I made (let's call it "Task1").
This Task1 writes data in the cache with the custom key type "IgniteBinaryData".

But the issue is that when I request the same cache from the C++ thin client, 
the key is not found.

What is strange is that I can then add the key with a "Put" from the C++, and 
when I look at the deserialized keys in the java code, there does not seem to 
be any difference between the 2 "different" keys, which are both present in the 
cache.

What I saw is that when I do a "Get" from the C++, the key is not deserialized 
(Ignite looks only at the serialized data of the keys).

So I think there might be a difference in the serialization of the key between 
the Java code and the C++, but not visible when deserialized.

But looking at all the entries in the cache with an iterator, I found no 
differences. I tried using the".withKeepBinary();" method to access the keys 
without deserialization, but I can't find a way to get the "bytes[]" 
corresponding to the key from the BinaryObject.

So, my question would be : how to get the "bytes[]" corresponding to a custom 
key ?
And also, is there a known issue that could arise when doing this ? I carefully 
followed 
https://ignite.apache.org/docs/latest/cpp-specific/cpp-platform-interoperability
 and I have no problem of deserialization...

Best regards,

Louis C.

Reply via email to