Hello,

You can use as query filter only classes that already deployed to the
server. In your case, class ConnectAndExecuteTestDataInJava only exists on
the client-side and the server knows nothing about it. Unlike Ignite nodes,
Ignite thin clients don't have a P2P class deployment feature.

пн, 1 мар. 2021 г. в 21:05, ChandanS <[email protected]>:

> 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