OrientDB.Net - Gremlin API Gremlin() method is not working


#1

I am trying to write a c# program to send gremlin query to orientDB server using Gremlin() method. I am using OrientDB 3.0.11 GA Community Edition with Gremlin server integrated (orientdb-tp3-3.0.11). My C# program can connect to the DB server, and query the demo db using SQL. But once I issue Gremlin() command, server side give me below error:

Error on unmarshalling content. Class: com.orientechnologies.orient.graph.gremlin.OCommandGremlin
java.lang.ClassNotFoundException: com.orientechnologies.orient.graph.gremlin.OCommandGremlin
at java.base/jdk.internal.loader.BuiltinClassLoader.loadClass(BuiltinClassLoader.java:582)
at java.base/jdk.internal.loader.ClassLoaders$AppClassLoader.loadClass(ClassLoaders.java:190)
at java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:499)
at java.base/java.lang.Class.forName0(Native Method)
at java.base/java.lang.Class.forName(Class.java:291)
at com.orientechnologies.orient.core.serialization.serializer.stream.OStreamSerializerAnyStreamable.fromStream(OStreamSerializerAnyStreamable.java:84)
at com.orientechnologies.orient.client.remote.message.OCommandRequest.read(OCommandRequest.java:71)
at com.orientechnologies.orient.server.network.protocol.binary.ONetworkProtocolBinary.sessionRequest(ONetworkProtocolBinary.java:276)
at com.orientechnologies.orient.server.network.protocol.binary.ONetworkProtocolBinary.execute(ONetworkProtocolBinary.java:206)
at com.orientechnologies.common.thread.OSoftThread.run(OSoftThread.java:69)

I compared to the orientDB source code, there is a graphdb folder which will generate orientdb-graphdb-3.0.12-SNAPSHOT.jar. But this jar file is missing from orientdb-tp3-3.0.11/lib.

Is this a bug? Or do I miss anything when setting up orientdb-tp3-3.0.11 server?

Please advise.


#2

Hi @minjian.chen

The OrientDB.Net driver uses the old OrientDB protocol which only can serve Gremlin thinkerpop 2. But the support does not come with orientdb-tp3, which only supports TP3 and spawn a Gremlin Server also.

You have two solutions.

  1. Use OrientDB.Net with orientdb-tp2 distribution here.
  2. Use Gremlin.Net with orientdb-tp3 (Gremlin Server)

Let me know if it helps

Thanks


#3

Hi @wolf4ood,

Thank you for you quick reply.

I tried with Gremlin . Net solution, it is working.

Thank you again.