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/