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)。似乎没有任何东西可以帮助完成这项工作,还有像“从帐户中实时选择”这样的查询(没有......)。
还有什么想法吗?谢谢。
答案 0 :(得分:0)
目前实时查询不支持您在查询中包含的WHERE子句。
您只能选择整个集合或V和E(我用它来获取所有更新)
如果你想在那里过滤,你必须自己在代码中编写它。
答案 1 :(得分:0)
回答米奇肯的谢谢!幸运的是,我发现了这个错误。从客户端到数据库的TCP连接处于错误状态(必须始终在waitforreadyread中)。