Hi,

I am working on implementing ignite in AWS as EC2 cluster and I am following
documentation from
"https://www.gridgain.com/docs/latest/installation-guide/aws/manual-install-on-ec2";
for my POC. I am using three EC2 instances to form a cluster with
gridgain-community-8.8.1 package ("./gridgain-community-8.8.1/bin/ignite.sh
aws-static-ip-finder.xml"). I am able to start ignite as cluster, load data
in ignite cache and print the cache entries. Below is my code snippet:

public class ConnectAndExecuteTestDataInJava {
   public static void main(String args[]) throws Exception {
        ConnectAndExecuteTestDataInJava igniteTestObj = new
ConnectAndExecuteTestDataInJava();
        igniteTestObj .connectToIgniteClusterAndExecuteData();  //working
fine
        igniteTestObj .printIgniteCache();  //working fine
        igniteTestObj .queryIgniteCache();  //not working
    }

   private void connectToIgniteClusterAndExecuteData() {
        try {
            System.out.println("Starting the client Program");
            ClientConfiguration cfg = new
ClientConfiguration().setAddresses("XX.XXX.XX.XXX:10800");
            IgniteClient client = Ignition.startClient(cfg);
            System.out.println("Connection successfull");

            ClientCache<Integer, String> cache =
client.getOrCreateCache("myCache");

            System.out.println("Caching data");
            for (int i = 0; i <= 100; ++i) {
                cache.put(i, "String -" + i);
            }

            System.out.println("Cache created with 100 sample data");
            client.close();
        } catch (Exception excp) {
            excp.printStackTrace();
        }
    }

    private void printIgniteCache() {
        System.out.println("Creating client connection");
        ClientConfiguration cfg = new
ClientConfiguration().setAddresses("XX.XXX.XX.XXX:10800");
        System.out.println("Connection successful");
        try (IgniteClient client = Ignition.startClient(cfg)) {
            System.out.println("Getting data from the cache....");
            ClientCache<Integer, String> cache = client.cache("myCache");
            System.out.println("Data retrieving....");

            // Get data from the cache
            for(int i = 0; i < cache.size(); ++i){
                System.out.println(cache.get(i));  //printing the cache like
"String -11"
            }
            System.out.println("Data retrieved....");
        } catch (Exception e) {
            System.out.println("Error connecting to client, program will
exit");
            e.printStackTrace();
        }
    }

    private void queryIgniteCache() {
        System.out.println("Creating client connection to query");
        ClientConfiguration cfg = new
ClientConfiguration().setAddresses("XX.XXX.XX.XXX:10800");
        System.out.println("Connection successful");
        try (IgniteClient client = Ignition.startClient(cfg)) {
            System.out.println("Init cache....");
            ClientCache<Integer, String> cache =
client.getOrCreateCache("myCache");

            System.out.println("Creating filter 1");
            IgniteBiPredicate<Integer, String> filter1 = (key, p) ->
key.equals(new Integer(31));
            System.out.println("Applying filter 1");
            QueryCursor<Cache.Entry&lt;Integer, String>> qryCursor1 =
cache.query(new ScanQuery<>(filter1));
            System.out.println("Printing filter 1");
            qryCursor1.forEach(
                    entry -> System.out.println("Key1 = " + entry.getKey() +
", Value1 = " + entry.getValue()));  //throwing exception here
            qryCursor1.close();

            
            System.out.println("Filter data retrieved....");

        } catch (Exception e) {
            System.out.println("Error connecting to client, program will
exit");
            e.printStackTrace();
        }
    }
}

Now in the above codes, connecting to ignite cache and printing of the cache
using for loop is working as expected, but while using Cache.Entry<Integer,
String> in queryIgniteCache() method, its throwing "Failed to deserialize
object" exception, I am running the program from another EC2 instance's
session manager terminal, below is exception stack-trace:

Applying filter 1
Printing filter 1
Error connecting to client, program will exit
org.apache.ignite.client.ClientException: Ignite failed to process request
[2]: Failed to deserialize object
[typeName=java.lang.invoke.SerializedLambda] (server status code [1])
        at
org.apache.ignite.internal.client.thin.TcpClientChannel.convertException(TcpClientChannel.java:365)
        at
org.apache.ignite.internal.client.thin.TcpClientChannel.receive(TcpClientChannel.java:326)
        at
org.apache.ignite.internal.client.thin.TcpClientChannel.service(TcpClientChannel.java:242)
        at
org.apache.ignite.internal.client.thin.ReliableChannel.lambda$service$1(ReliableChannel.java:193)
        at
org.apache.ignite.internal.client.thin.ReliableChannel.applyOnDefaultChannel(ReliableChannel.java:807)
        at
org.apache.ignite.internal.client.thin.ReliableChannel.applyOnDefaultChannel(ReliableChannel.java:775)
        at
org.apache.ignite.internal.client.thin.ReliableChannel.service(ReliableChannel.java:192)
        at
org.apache.ignite.internal.client.thin.GenericQueryPager.next(GenericQueryPager.java:72)
        at
org.apache.ignite.internal.client.thin.ClientQueryCursor$1.nextPage(ClientQueryCursor.java:92)
        at
org.apache.ignite.internal.client.thin.ClientQueryCursor$1.hasNext(ClientQueryCursor.java:75)
        at java.lang.Iterable.forEach(Iterable.java:74)
        at
ConnectAndExecuteTestDataInJava.queryIgniteCache(ConnectAndExecuteTestDataInJava.java:77)
        at
ConnectAndExecuteTestDataInJava.main(ConnectAndExecuteTestDataInJava.java:19)
Caused by: org.apache.ignite.internal.client.thin.ClientServerError: Ignite
failed to process request [2]: Failed to deserialize object
[typeName=java.lang.invoke.SerializedLambda] (server status code [1])
        at
org.apache.ignite.internal.client.thin.TcpClientChannel.processNextMessage(TcpClientChannel.java:481)
        at
org.apache.ignite.internal.client.thin.TcpClientChannel.lambda$initReceiverThread$1(TcpClientChannel.java:406)
        at java.lang.Thread.run(Thread.java:748)



Also, below stack-trace I am getting from one of the three EC2 ignite node
instances:

[17:02:01] Topology snapshot [ver=3, locNode=04111d3b, servers=3, clients=0,
state=ACTIVE, CPUs=6, offheap=2.3GB, heap=2.6GB]
[17:02:01]   ^-- Baseline [id=0, size=3, online=3, offline=0]
[17:02:11] New version is available at gridgain.com: 8.8.2
[17:03:33,207][SEVERE][client-connector-#73][BinaryContext] Failed to
deserialize object [typeName=java.lang.invoke.SerializedLambda]
class org.apache.ignite.binary.BinaryObjectException: Failed to read field
[name=capturingClass]
        at
org.apache.ignite.internal.binary.BinaryFieldAccessor.read(BinaryFieldAccessor.java:191)
        at
org.apache.ignite.internal.binary.BinaryClassDescriptor.read(BinaryClassDescriptor.java:931)
        at
org.apache.ignite.internal.binary.BinaryReaderExImpl.deserialize0(BinaryReaderExImpl.java:1767)
        at
org.apache.ignite.internal.binary.BinaryReaderExImpl.deserialize(BinaryReaderExImpl.java:1719)
        at
org.apache.ignite.internal.binary.BinaryObjectImpl.deserializeValue(BinaryObjectImpl.java:895)
        at
org.apache.ignite.internal.binary.BinaryObjectImpl.deserialize(BinaryObjectImpl.java:736)
        at
org.apache.ignite.internal.processors.platform.client.cache.ClientCacheScanQueryRequest.createFilter(ClientCacheScanQueryRequest.java:116)
        at
org.apache.ignite.internal.processors.platform.client.cache.ClientCacheScanQueryRequest.process(ClientCacheScanQueryRequest.java:82)
        at
org.apache.ignite.internal.processors.platform.client.ClientRequestHandler.handle(ClientRequestHandler.java:92)
        at
org.apache.ignite.internal.processors.odbc.ClientListenerNioListener.onMessage(ClientListenerNioListener.java:201)
        at
org.apache.ignite.internal.processors.odbc.ClientListenerNioListener.onMessage(ClientListenerNioListener.java:57)
        at
org.apache.ignite.internal.util.nio.GridNioFilterChain$TailFilter.onMessageReceived(GridNioFilterChain.java:278)
        at
org.apache.ignite.internal.util.nio.GridNioFilterAdapter.proceedMessageReceived(GridNioFilterAdapter.java:108)
        at
org.apache.ignite.internal.util.nio.GridNioAsyncNotifyFilter$3.body(GridNioAsyncNotifyFilter.java:135)
        at
org.apache.ignite.internal.util.worker.GridWorker.run(GridWorker.java:119)
        at
org.apache.ignite.internal.util.worker.GridWorkerPool$1.run(GridWorkerPool.java:69)
        at
java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
        at
java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
        at java.lang.Thread.run(Thread.java:748)
Caused by: class org.apache.ignite.binary.BinaryInvalidTypeException:
ConnectAndExecuteTestDataInJava
        at
org.apache.ignite.internal.binary.BinaryContext.descriptorForTypeId(BinaryContext.java:697)
        at
org.apache.ignite.internal.binary.BinaryUtils.doReadClass(BinaryUtils.java:1640)
        at
org.apache.ignite.internal.binary.BinaryUtils.doReadClass(BinaryUtils.java:1577)
        at
org.apache.ignite.internal.binary.BinaryUtils.doReadClass(BinaryUtils.java:1554)
        at
org.apache.ignite.internal.binary.BinaryReaderExImpl.readClass(BinaryReaderExImpl.java:381)
        at
org.apache.ignite.internal.binary.BinaryFieldAccessor$DefaultFinalClassAccessor.readFixedType(BinaryFieldAccessor.java:906)
        at
org.apache.ignite.internal.binary.BinaryFieldAccessor$DefaultFinalClassAccessor.read0(BinaryFieldAccessor.java:702)
        at
org.apache.ignite.internal.binary.BinaryFieldAccessor.read(BinaryFieldAccessor.java:187)
        ... 18 more
Caused by: java.lang.ClassNotFoundException: ConnectAndExecuteTestDataInJava
        at java.net.URLClassLoader.findClass(URLClassLoader.java:382)
        at java.lang.ClassLoader.loadClass(ClassLoader.java:418)
        at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:352)
        at java.lang.ClassLoader.loadClass(ClassLoader.java:351)
        at java.lang.Class.forName0(Native Method)
        at java.lang.Class.forName(Class.java:348)
        at
org.apache.ignite.internal.util.IgniteUtils.forName(IgniteUtils.java:9224)
        at
org.apache.ignite.internal.util.IgniteUtils.forName(IgniteUtils.java:9167)
        at
org.apache.ignite.internal.MarshallerContextImpl.getClass(MarshallerContextImpl.java:325)
        at
org.apache.ignite.internal.binary.BinaryContext.descriptorForTypeId(BinaryContext.java:673)
        ... 25 more
[17:03:33,210][SEVERE][client-connector-#73][ClientListenerNioListener]
Failed to process client request
[req=o.a.i.i.processors.platform.client.cache.ClientCacheScanQueryRequest@6385a4b0]
class org.apache.ignite.binary.BinaryObjectException: Failed to deserialize
object [typeName=java.lang.invoke.SerializedLambda]
        at
org.apache.ignite.internal.binary.BinaryClassDescriptor.read(BinaryClassDescriptor.java:970)
        at
org.apache.ignite.internal.binary.BinaryReaderExImpl.deserialize0(BinaryReaderExImpl.java:1767)
        at
org.apache.ignite.internal.binary.BinaryReaderExImpl.deserialize(BinaryReaderExImpl.java:1719)
        at
org.apache.ignite.internal.binary.BinaryObjectImpl.deserializeValue(BinaryObjectImpl.java:895)
        at
org.apache.ignite.internal.binary.BinaryObjectImpl.deserialize(BinaryObjectImpl.java:736)
        at
org.apache.ignite.internal.processors.platform.client.cache.ClientCacheScanQueryRequest.createFilter(ClientCacheScanQueryRequest.java:116)
        at
org.apache.ignite.internal.processors.platform.client.cache.ClientCacheScanQueryRequest.process(ClientCacheScanQueryRequest.java:82)
        at
org.apache.ignite.internal.processors.platform.client.ClientRequestHandler.handle(ClientRequestHandler.java:92)
        at
org.apache.ignite.internal.processors.odbc.ClientListenerNioListener.onMessage(ClientListenerNioListener.java:201)
        at
org.apache.ignite.internal.processors.odbc.ClientListenerNioListener.onMessage(ClientListenerNioListener.java:57)
        at
org.apache.ignite.internal.util.nio.GridNioFilterChain$TailFilter.onMessageReceived(GridNioFilterChain.java:278)
        at
org.apache.ignite.internal.util.nio.GridNioFilterAdapter.proceedMessageReceived(GridNioFilterAdapter.java:108)
        at
org.apache.ignite.internal.util.nio.GridNioAsyncNotifyFilter$3.body(GridNioAsyncNotifyFilter.java:135)
        at
org.apache.ignite.internal.util.worker.GridWorker.run(GridWorker.java:119)
        at
org.apache.ignite.internal.util.worker.GridWorkerPool$1.run(GridWorkerPool.java:69)
        at
java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
        at
java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
        at java.lang.Thread.run(Thread.java:748)
Caused by: class org.apache.ignite.binary.BinaryObjectException: Failed to
read field [name=capturingClass]
        at
org.apache.ignite.internal.binary.BinaryFieldAccessor.read(BinaryFieldAccessor.java:191)
        at
org.apache.ignite.internal.binary.BinaryClassDescriptor.read(BinaryClassDescriptor.java:931)
        ... 17 more
Caused by: class org.apache.ignite.binary.BinaryInvalidTypeException:
ConnectAndExecuteTestDataInJava
        at
org.apache.ignite.internal.binary.BinaryContext.descriptorForTypeId(BinaryContext.java:697)
        at
org.apache.ignite.internal.binary.BinaryUtils.doReadClass(BinaryUtils.java:1640)
        at
org.apache.ignite.internal.binary.BinaryUtils.doReadClass(BinaryUtils.java:1577)
        at
org.apache.ignite.internal.binary.BinaryUtils.doReadClass(BinaryUtils.java:1554)
        at
org.apache.ignite.internal.binary.BinaryReaderExImpl.readClass(BinaryReaderExImpl.java:381)
        at
org.apache.ignite.internal.binary.BinaryFieldAccessor$DefaultFinalClassAccessor.readFixedType(BinaryFieldAccessor.java:906)
        at
org.apache.ignite.internal.binary.BinaryFieldAccessor$DefaultFinalClassAccessor.read0(BinaryFieldAccessor.java:702)
        at
org.apache.ignite.internal.binary.BinaryFieldAccessor.read(BinaryFieldAccessor.java:187)
        ... 18 more
Caused by: java.lang.ClassNotFoundException: ConnectAndExecuteTestDataInJava
        at java.net.URLClassLoader.findClass(URLClassLoader.java:382)
        at java.lang.ClassLoader.loadClass(ClassLoader.java:418)
        at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:352)
        at java.lang.ClassLoader.loadClass(ClassLoader.java:351)
        at java.lang.Class.forName0(Native Method)
        at java.lang.Class.forName(Class.java:348)
        at
org.apache.ignite.internal.util.IgniteUtils.forName(IgniteUtils.java:9224)
        at
org.apache.ignite.internal.util.IgniteUtils.forName(IgniteUtils.java:9167)
        at
org.apache.ignite.internal.MarshallerContextImpl.getClass(MarshallerContextImpl.java:325)
        at
org.apache.ignite.internal.binary.BinaryContext.descriptorForTypeId(BinaryContext.java:673)
        ... 25 more
[17:07:01] Topology snapshot [ver=4, locNode=04111d3b, servers=2, clients=0,
state=ACTIVE, CPUs=4, offheap=1.5GB, heap=1.7GB]
[17:07:01]   ^-- Baseline [id=0, size=2, online=2, offline=0]


Any suggestion/help in resolving this issue is greatly appreciated. Thank
you.

Chandan




--
Sent from: http://apache-ignite-users.70518.x6.nabble.com/

Reply via email to