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