Orientdb:执行实时查询订阅者时出错

时间:2018-02-24 23:34:41

标签: orientdb livequery

Orientdb在Nullpointer异常之后使用二进制协议l抛出每个实时查询订阅:

执行实时查询订阅者时出错。 com.orientechnologies.orient.server.network.protocol.binary.OLiveCommandResultListener.onLiveResult(OLiveCommandResultListener.java:113)中的java.lang.NullPointerException     在com.orientechnologies.orient.core.sql.OCommandExecutorSQLLiveSelect $ 2.call(OCommandExecutorSQLLiveSelect.java:134)     at com.orientechnologies.orient.core.sql.OCommandExecutorSQLLiveSelect.execInSeparateDatabase(OCommandExecutorSQLLiveSelect.java:144)     在com.orientechnologies.orient.core.sql.OCommandExecutorSQLLiveSelect.onLiveResult(OCommandExecutorSQLLiveSelect.java:131)     at com.orientechnologies.orient.core.query.live.OLiveQueryQueueThread.run(OLiveQueryQueueThread.java:69)

实时查询由一个客户订阅:“从Account中实时选择CheckInDateTime如”2018-02-25%“”,Orientdb也优雅地返回实时请求令牌ID。但是当另一个客户端更新帐户时,“更新帐户设置CheckInDateTime =”2018-02-25 13:00:00“”将引发提到的NullPointerexception。我尝试使用版本2.2.30和2.2.32 Comunity,DB Administrator和Server Administrator帐户。加载插件似乎也不起作用(即使使用的版本是2.2.30和2.2.32,默认情况下应该在服务器上启用Live Query)。似乎没有任何东西可以帮助完成这项工作,还有像“从帐户中实时选择”这样的查询(没有......)。

还有什么想法吗?谢谢。

2 个答案:

答案 0 :(得分:0)

目前实时查询不支持您在查询中包含的WHERE子句。

您只能选择整个集合或V和E(我用它来获取所有更新)

如果你想在那里过滤,你必须自己在代码中编写它。

答案 1 :(得分:0)

回答米奇肯的谢谢!幸运的是,我发现了这个错误。从客户端到数据库的TCP连接处于错误状态(必须始终在waitforreadyread中)。