Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/359.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/angularjs/25.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用Oracle、Java和;安格拉斯_Java_Angularjs_Json_Oracle - Fatal编程技术网

使用Oracle、Java和;安格拉斯

使用Oracle、Java和;安格拉斯,java,angularjs,json,oracle,Java,Angularjs,Json,Oracle,这是我的第一篇堆栈溢出帖子,如果我不够具体,请忽略/原谅。我相信我会逐渐了解这个过程 我已经构建了一个JSON以显示在角度数据网格中。此JSON来自对物化视图的复杂查询。我的想法是在底层数据更改时刷新JSON,如下所示: a) 在应用程序启动时为Oracle CQRN(Oracle连续查询结果更改通知)注册查询 b) 当底层数据发生更改时,Java端的Oracle数据库更改侦听器将被调用,Ire将查询数据(带有更改)并将其推送到套接字端点。这样,JSON就可以使用最新的数据进行更改 这适用于简单

这是我的第一篇堆栈溢出帖子,如果我不够具体,请忽略/原谅。我相信我会逐渐了解这个过程

我已经构建了一个JSON以显示在角度数据网格中。此JSON来自对物化视图的复杂查询。我的想法是在底层数据更改时刷新JSON,如下所示: a) 在应用程序启动时为Oracle CQRN(Oracle连续查询结果更改通知)注册查询 b) 当底层数据发生更改时,Java端的Oracle数据库更改侦听器将被调用,Ire将查询数据(带有更改)并将其推送到套接字端点。这样,JSON就可以使用最新的数据进行更改

这适用于简单查询

问题是: a) 在我的例子中,查询非常复杂,涉及多个具有UNION ALL和复杂联接的物化视图。CQRN不支持查询结果更改的物化视图注册

b) 我在启动时注册的查询(用于查询结果更改通知)是相当静态的。它不能满足数据网格后面各种不同参数化查询的要求

任何人都可以建议任何其他替代方案,例如在中间轮胎中缓存网格数据,并在基础网格数据更改时使用更新的数据刷新缓存。当底层网格数据发生更改时,应该通知我,因此我将重新查询并将更新的数据发送到套接字端点,套接字端点将刷新网格

我必须实时显示网格数据的变化,所以我使用了JavaWebSocket(JSR356)

技术堆栈: 用户界面:Javascaipt/AngularJS 中间层:Java1.7 服务器:Jetty 9.2 数据库:Oracle 11g R2 构建平台:Maven 3.3

对于任何其他合适方法的建议也将不胜感激

谢谢和问候,
-Joy

虽然没有直接回答您的问题,但我们只是实现了一个包含多个数据源和CQRN的实时数据网格。此内置项基于表的更改。我们的技术是:

  • 向基表添加插入触发器(数据馈送是实时的,没有删除,没有更新)
  • 调用存储过程来操作数据。您将在物化视图中使用逻辑。该过程将数据插入到目标表中。它有一个调用CQRN的触发器
  • 通常使用realtime时,您需要删除旧数据,以便一切都保持快速